【发布时间】:2016-07-15 17:27:10
【问题描述】:
我想通过关键字brownfox 搜索来匹配字段title 的值为brown fox 的文档。
尝试此fuzzy 查询时,我没有得到任何结果:
curl -XGET 'http://localhost:9200/haystack/_search?pretty' -d '{
"query" : {
"fuzzy" : {
"title": {
"value": "brownfox",
"fuzziness": 2,
"prefix_length": 0,
"max_expansions": 10000
}
}
}
}'
我还尝试了 match 模糊查询和运算符 and:
curl -XGET 'http://localhost:9200/haystack/_search?pretty' -d '{
"query": {
"match": {
"title": {
"query": "brownfox",
"fuzziness": "AUTO",
"operator": "and"
}
}
}
}'
这将返回具有相似关键字的结果,但不返回标题为 brown fox 的文档,我认为这是更好的匹配。
我还阅读了this SO 问题的答案,但我没有选择使用同义词更新字段分析器,因为我也想匹配其他类似情况,包括缺少空格和错误-拼写单词。
谢谢!
【问题讨论】:
-
title字段的映射是什么。它至少应该有一个分析器,可以将“棕狐”作为一个术语。如果它使用standard分析器或任何不保持brown fox整体的东西,您将无法匹配。 -
是的,恐怕我可能不得不在有空格和没有空格的情况下对它进行索引。出于某种原因,我的印象是它会使用 Levenshtein 编辑距离进行匹配,我猜不是......
-
它正在使用它,但它正在查看的术语是
brown和fox。你想看看brown fox。 -
现在更有意义了,谢谢!
标签: elasticsearch django-haystack