elasticsearchでカスタムソートが可能かどうかは知っていますか?Elasticsearchでのカスタムソート
カテゴリフィールドに並べ替えがあります。すべてのレコードをカテゴリ別にグループ化します。これは素晴らしいです。
しかし、車、書籍、食べ物などのリストを並べ替えることができます。
それから、車が最初に表示され、次に本と最後に食べ物が表示されますか?
elasticsearchでカスタムソートが可能かどうかは知っていますか?Elasticsearchでのカスタムソート
カテゴリフィールドに並べ替えがあります。すべてのレコードをカテゴリ別にグループ化します。これは素晴らしいです。
しかし、車、書籍、食べ物などのリストを並べ替えることができます。
それから、車が最初に表示され、次に本と最後に食べ物が表示されますか?
あなたはfunction_score query、このようなものを使用することができます:あなたがあなたの代わりにmatch_all
クエリの今使用しているクエリ方はもちろん、置いて、デフォルトはである(sort
をオフのままに
{
"query": {
"function_score": {
"query": { "match_all": {} },
"boost": "5",
"functions": [
{
"filter": { "match": { "category": "cars" } },
"weight": 100
},
{
"filter": { "match": { "category": "books" } },
"weight": 50
},
{
"filter": { "match": { "category": "food" } },
"weight": 1
}
],
"score_mode": "max",
"boost_mode": "replace"
}
}
}
スコア、あなたがここで欲しいものです)。
これは、通常生成するscore elasticsearchを、各カテゴリのカスタムスコアで置き換えます。あなたは他のboost_mode
で試して、カテゴリ内で妥当なランク付けをすることができます。スコアリングで何が起こっているのかを理解する必要がある場合は、最上位のクエリに"explain": true
を追加できます。
カスタムスクリプトを使用して独自のスコアリングを行うことができます。スクリプトベースのソートセクションでの
詳細:あなたが持っていると何を実行しているクエリのタイプ、データモデルのどのような私たちを見るしてくださいすることができhttps://www.elastic.co/guide/en/elasticsearch/reference/5.5/search-request-sort.html
、間違いなくfunction_scoreはあなたの問題を解決しますが、我々は得ることができます私はモデルとクエリを見ることができれば、よりパフォーマンスの高いソリューションです。 – user3775217
車、書籍、食品の内容を理解するためのサンプル文書を投稿してください:/ –