《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(15) https://developer.aliyun.com/article/1231055
默认如果不设置,prefix_length 就是 0
1、surprising 未被搜索到,原因是默认的 auto 只允许两个编辑错误,因为 surprize 的长度大于 5,确切地说有三个编辑距离(需要有三次编辑),不能纠错。
2、surprize 拼写错误,s->z,错误在一个位置,在 2 个位置的纠错范围之内,为提高性能,可以设置 max_expansions,将限制产生模糊文档的个数。
3、prefix_length 不宜设置过大,也将影响查询性能,同时错误过多,也将导致查询结果不是用户期望的。
fuziness 实际上采用的是 auto,允许有两个编辑距离,假设采用如下的查询,将只有一个结果:
GET /my_index/_search { "query": { "fuzzy": { "text": { "value": "surprize", "fuzziness": "1", "prefix_length": 1 } } } } #返回: { "took" : 19, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1, "relation" : "eq" }, "max_score" : 0.9559981, "hits" : [ { "_index" : "my_index", "_type" : "my_type", "_id" : "1", "_score" : 0.9559981, "_source" : { "text" : "Surprise me!" } } ] } }
Ids 查询
范围文档包含ID的文档信息:
GET /my_goods/_search { "query": { "ids" : { "values" : ["1", "4", "5"] } } }
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(17) https://developer.aliyun.com/article/1231052