所以我看到了这两个查询。 第一个是带有模糊选项的匹配
{
"query": {
"match": {
"user": {
"query": "ki",
"fuzziness": "AUTO"
}
}
}
}
第二个是常规模糊搜索
{
"query": {
"fuzzy": {
"user": {
"value": "ki"
}
}
}
}
结果几乎相同。但是我的问题是,查询是否真的具有相同的结构?以及哪种方法可用于最佳实践?
答案 0 :(得分:0)
在您的示例中,结果是相同的。但是,模糊查询的行为类似于术语查询,因此它不会预先执行分析,而匹配查询会执行。
因此,如果您搜索包含pigeon street
的地址字段并使用标准分析器建立索引,则此查询将有效
GET my-index/_search
{
"query": {
"match": {
"address": {
"query": "wigeon street",
"fuzziness": 1
}
}
}
}
但是这个不会:
GET my-index/_search
{
"query": {
"fuzzy": {
"address": {
"value": "wigeon street"
}
}
}
}