ElasticSearch模糊查询和大小写敏感性

3

我刚开始研究ElasticSearch,对模糊查询有些疑问。假设我有一个像这样的文档:

{ "name": "Frankie's Hot Dogs" }

使用模糊查询,如果我使用以下参数进行搜索,将不会收到任何结果:
"fuzzy": {
  "name": {
    "value": "FRANKIES",
    "fuzziness": 2
  }
}

这是预期的行为吗?我认为由于该字段默认为标准分析器,因此名称字段将被分词并转换为类似以下内容的小写形式:

["frankie's", "hot", "dogs"]

那么模糊查询是否会自动将搜索词转换为小写?或者这不是这种情况吗?

最后,有人有关于如何查询数据以使FRANKIES实际返回结果的建议吗?

提前感谢。

1个回答

2

使用fuzzy_like_this查询

 "query": {
    "fuzzy_like_this" : {
        "fields" : ["name"],
        "like_text" : "FRANKIES"
    }
}

4
谢谢!这个方法有效。你能否解释一下为什么这种方法有效,而普通的模糊查询则无法生效? - Robert
1
对于阅读此答案的人,您应该注意到在ElasticSearch 1.6中,fuzzy_like_this查询以及fuzzy_like_this_filed查询已被弃用。 - Yuval Herziger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接