2016-03-25 7 views
0

私は、検索エンジンに大きく依存するいくつかのウェブサイトを構築しており、最も関連性の高い結果を顧客のニーズに表示するためにElasticsearchを使用することを検討します。elasticsearchクエリ/結果を正規化します。

重要な機能の1つは、Airbnbで見つけられるような価格フィルタを使用して結果を絞り込むことです。私が持っている問題は、私のオブジェクトが統一されていないということです。つまり、1人あたりの価格、1時間当たりの価格などが異なるため、ユーザーが選択する追加パラメータによって異なります。

私の質問は、ElasticSearch(これはそうだと思います)と、そのような結果を表示する方法についてです。エンジンはそれを処理できますか、それをElasticにプッシュする前に何とか正規化しようとするべきですか? 私が見つけたのは、スクリプトフィルタがあります。ここでは数学演算を行うことができますが、これは良いアプローチであるとは確信できません。

答えて

1

スクリプトはクエリのスコア、リアルタイムの計算を計算するのに適していますが、データを正規化するためには、私の経験からESに送られる前に正規化する方が良いです。だから私の経験に基づいて私の提案は、データをESに送る前に正規化を行うことです。

最後に正規化を行うコードがあります。あるケースでは、ESスクリプト言語(groovy)で実装する必要があり、もう1つはESにデータを送信するために使用する言語です。だからあなたはそれを実装するのは簡単だろうし、異なる種類の正規化をすることもできます。