弹性搜索中的模糊查询
fuzzy query in elasticsearch
我关注了这个tutorial。
我尝试了 3 个数据并且它有效但是当我添加 200 个数据就像教程 "text and id" 当我做研究时它不起作用
例如我有 { "index": { "_id": 237 }} { "text": "EMCO"}
当我做我的研究时:
GET /weef/dicoMot/_search {"query": { "fuzzy": {
"text": "EMCO" }}}
我知道了:
{ "took": 36,"timed_out": false, "_shards": { "total": 5 "successful": 5, "failed": 0},
"hits": { "total": 0, "max_score": null, "hits": [] }}
有什么建议吗?
您正在使用带有 "lowercase" 标记过滤器的标准分析器。
所以 "EMCO" 将被索引为 "emco"。
有两种方案可以解决这个问题:
使用小写关键字进行搜索,得到搜索结果:
GET /weef/dicoMot/_search {"query": { "fuzzy": {
"text": "emco" }}}
更新没有小写字母过滤器的索引分析器
我关注了这个tutorial。
我尝试了 3 个数据并且它有效但是当我添加 200 个数据就像教程 "text and id" 当我做研究时它不起作用
例如我有 { "index": { "_id": 237 }} { "text": "EMCO"}
当我做我的研究时:
GET /weef/dicoMot/_search {"query": { "fuzzy": {
"text": "EMCO" }}}
我知道了:
{ "took": 36,"timed_out": false, "_shards": { "total": 5 "successful": 5, "failed": 0},
"hits": { "total": 0, "max_score": null, "hits": [] }}
有什么建议吗?
您正在使用带有 "lowercase" 标记过滤器的标准分析器。
所以 "EMCO" 将被索引为 "emco"。
有两种方案可以解决这个问题:
使用小写关键字进行搜索,得到搜索结果:
GET /weef/dicoMot/_search {"query": { "fuzzy": { "text": "emco" }}}
更新没有小写字母过滤器的索引分析器