ElasticSearch-模糊关键字匹配
我在寻找一种方法来模糊匹配单词相等的字段 例如,如果我有一个值如下的字段:-ElasticSearch-模糊关键字匹配,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我在寻找一种方法来模糊匹配单词相等的字段 例如,如果我有一个值如下的字段:- foobar foobar number2 barfoo barfoo number2 我用fooba搜索,我只想返回文档foobar,而不是foobar number2 如果我用number2搜索,我不想返回任何内容,因为number2两个值都有两个单词 我知道术语查询不能是模糊的。有什么疑问吗 我正在使用elasticsearch 5.4 谢谢经过两天的努力,我在发布问题20分钟后就解决了这个问题 您需要使用标记
foobar
foobar number2
barfoo
barfoo number2
我用fooba
搜索,我只想返回文档foobar
,而不是foobar number2
如果我用number2
搜索,我不想返回任何内容,因为number2
两个值都有两个单词
我知道术语查询不能是模糊的。有什么疑问吗
我正在使用elasticsearch 5.4
谢谢经过两天的努力,我在发布问题20分钟后就解决了这个问题 您需要使用标记器为字段创建自定义分析器:-
"analyzer": {
"all_words_analyzer": {
"filter": [
"lowercase"
],
"type": "custom",
"tokenizer": "keyword"
}
}
然后在字段上设置:-
"term": {
"type": "text",
"analyzer": "all_words_analyzer"
}
现在,正常的模糊匹配将如上所述
"query": {
"fuzzy": {
term": {
"value": "fooba"
}
}
}