0
私はelasticsearchインデックスに複数の値を持つフィールドfavSports
(分析されていない)を持っている:私はサッカーやテニスの両方が好きな人物を見つけるクエリを書きたいElasticsearchは、「より短くて良い」スコアリングを使用して多値フィールドをクエリする方法を教えてください。
{"name":"Mike","favSports":["soccer","tennis"],...}
{"name":"Joe","favSports":["soccer","tennis","basketball"],...}
、これは私のクエリです:
"query": {
"bool": {
"must": [
{ "term": { "favSports": "soccer" } },
{ "term": { "favSports": "tennis" } }
],
"must": {
"query_string": {
.....(Other query criteria)
}
}
}
}
上記の質問では、"favSports":"soccer/tennis"
のスコアは、MikeとJoeで同じです。
Mikeが完全一致のsoccer/tennis
となり、Joeがさらにbasketball
を持っているため、MikeのスコアがJoeより高いという質問を書きたいと思いますが、どうやってそのようなクエリを書くことができますか?
もう1つの質問:「サッカー」と「テニス」のみ(サッカーやテニス以外のスポーツの場合、彼はクエリ結果に含まれません)