1
I以下のブールクエリがあります。私が渡した結果の優先順位をつけるにはどうしたらいいですか?
POST _search
{
"query": {
"bool" : {
"must" : {
"term" : { "title" : "technology" }
},
"should" : [
{ "term" : { "text" : "companies that produce hardware" } }
]
}
}
}
が、これは(順番に)以下の文書idを返すと仮定します。このクエリは、私は別のデータベースを照会し、次のような結果を得ることが起こる前に
1. netflix
2. google
3. microsoft
4. dell
5. intel
を(順番に):
1. intel
2. amazon
3. dell
次の結果が得られるように、私はelasticsearchのデータベースよりも結果を優先したいと考えています。
1. intel
2. dell
3. netflix
4. google
5. microsoft
(私たちは空中からelasticsearchドキュメントを作成しようとしていないので、Amazonが表示されないことに注意してください)。
スイッチとは何ですか? 「会社」とは何ですか?代わりに "id"を使うことができますか? –
「else return 3」は残りのドキュメントをそのままにしますか?例えば、残りのドキュメントの並べ替えを混乱させることはありませんか? –
@MarissaLevy Nevermind、私は答えからswitch文の部分を削除しました。 このスクリプトでは、ドキュメントの内容は変更されず、この特定のクエリでの結果の並べ替えにのみ影響します。私はESソーティングのドキュメントへのリンクを追加しました。 "else return 3"は、ドキュメントが 'if文'のいずれにも当てはまらない場合、その優先順位値が最も高く、最後に配置されることを保証します。 「_id」フィールドについての情報を追加しました:) – YoavBZ