0
私はフィルターにquery_string
を変更したい単純なクエリelasticsearchのフィルタでquery_stringを使用するにはどうすればよいですか?
GET data/_search
{
"query": {
"bool": {
"must": [
{
"prefix": {
"last_name": "test"
}
},
{
"bool": {
"should": {
"query_string": {
"query": "henderson OR Boulder City OR Sloan",
"fields": [
"city_*"
]
}
}
}
}
]
}
}
}
を持っています。私は
"filter": {
"query_string": {
"query": "henderson OR Boulder City OR Sloan",
"fields": [
"city_*"
]
}
}
のようなものに
{
"bool": {
"should": {
"query_string": {
"query": "henderson OR Boulder City OR Sloan",
"fields": [
"city_*"
]
}
}
}
}
を変換し、それがhenderson OR Boulder City OR Sloan
このすべての都市で、すべてこの分野city_*.keyword
任意のアイデアによってフィルタを確認してくださいするかどうかはわかりませんか?
それは私に同じ結果をもたらします。私の考えは 'filter'を使うことでしたクエリを少し速くしますが、それは同じ時間かかると思われます。 – Patrioticcow
フィルタと同様に、あなたが提供した例では、同じ結果を与えるでしょう(と私はほぼ同じ費用になると仮定します)。唯一の違いは、スコアリングされるべきであり、フィルタはされないことです。 – Miek
@Patrioticcowこれは、フィルタとして機能するように既存のクエリを更新するだけではなく、若干異なる質問ですが、いくつかのアプローチがあります。クエリ文字列操作を完全にスワップし、個々の用語を配列として検索することが最善の方法です。 – Miek