请注意:
当前我们正在为这本书更新至最新的版本,有些内容可能已经过时。
当前我们正在为这本书更新至最新的版本,有些内容可能已经过时。
fuzzy
查询是
term
查询的模糊等价。
也许你很少直接使用它,但是理解它是如何工作的,可以帮助你在更高级别的 match
查询中使用模糊性。
为了解它是如何运作的,我们首先索引一些文档:
POST /my_index/my_type/_bulk { "index": { "_id": 1 }} { "text": "Surprise me!"} { "index": { "_id": 2 }} { "text": "That was surprising."} { "index": { "_id": 3 }} { "text": "I wasn't surprised."}
现在我们可以为词 surprize
运行一个 fuzzy
查询:
GET /my_index/my_type/_search { "query": { "fuzzy": { "text": "surprize" } } }
fuzzy
查询是一个词项级别的查询,所以它不做任何分析。它通过某个词项以及指定的 fuzziness
查找到词典中所有的词项。
fuzziness
默认设置为 AUTO
。
在我们的例子中, surprise
比较 surprise
和 surprised
都在编辑距离 2 以内,
所以文档 1 和 3 匹配。通过以下查询,我们可以减少匹配度到仅匹配 surprise
:
GET /my_index/my_type/_search { "query": { "fuzzy": { "text": { "value": "surprize", "fuzziness": 1 } } } }