Multi_matchクエリにあいまいさを追加するにはどうすればよいですか?したがって、誰かが「野球」を検索する場合でも、「野球」の記事が見つかります。現在、私のクエリは次のようになっています。
POST /newspaper/articles/_search
{
"query": {
"function_score": {
"query": {
"multi_match": {
"query": "baseball",
"type": "phrase",
"fields": [
"subject^3",
"section^2.5",
"article^2",
"tags^1.5",
"notes^1"
]
}
}
}
}
}
私が見ていた1つのオプションは、このようなことをすることです。これが最良のオプションかどうかはわかりません。スコアに基づいて並べ替えを維持することが重要です。
"query" : {
"query_string" : {
"query" : "subject:basball^3 section:basball^2.5 article:basball^2",
"fuzzy_prefix_length" : 1
}
}
提案?
マルチクエリにあいまいさを追加するには、ここで説明するようにあいまいさプロパティを追加する必要があります。
{
"query": {
"function_score": {
"query": {
"multi_match": {
"query": "baseball",
"type": "phrase",
"fields": [
"subject^3",
"section^2.5",
"article^2",
"tags^1.5",
"notes^1"
],
"fuzziness" : "AUTO",
"prefix_length" : 2
}
}
}
}
}
prefix_lengthがドキュメントで次のように説明されていることに注意してください。
「ファジー化」されない最初の文字の数。これは、調査する必要のある用語の数を減らすのに役立ちます。デフォルトは0です。
fuzzinessの可能な値を確認するには、 ES docs にアクセスしてください。