完全一致で文書に結果を制限:Elasticsearch:現在、私は次のクエリとElasticsearch(5.4)の結果を制限しようとしている
{
"query": {
"bool": {
"must": {
"multi_match": {
"query": "apache log Linux",
"type": "most_fields",
"fields": [
"message",
"type"
]
}
},
"filter": {
"term": {
"client": "test"
}
}
}
}
}
をこれが「"apache"
が含まれているすべての文書、"log
を返し、または"linux"
I。 正確なの指定値の場合は"test"
のフィールド "client"を持つ文書に結果を制限したいが、このクエリは "test"を値として含むすべての文書を返す。"client": "test client"
の文書もまた 私は厳密に制限したいので"client": "test"
の文書のみが返され、"client": "test client"
は返されません。
さまざまなクエリと多数の検索をテストした後、私の問題の解決策を見つけることができません。私は何が欠けていますか?
フィールド 'client.keyword'は結果を返しません。私は私のインデックスのマッピングを調べて、 'client.raw'が' keyword'とタイプされていることを発見しました。したがって、5.xがキーワードをデフォルトとしてマップするのは事実です。したがって、 'client.raw'を使うと私の問題は解決します。ありがとう! – Yokovaski