《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(14) https://developer.aliyun.com/article/1231056
Term - level 查询
可以使用 Term - level 查询结构化数据,结构化数据如日期范围、IP 地址、价格等,下面分别演示在业务场景中的实际使用。
Exists 查询
返回包含字段索引值的文档:
#返回包含 goodsName 字段的索引文档 GET /my_goods/_search { "query": { "exists": { "field": "goodsName" } } }
Fuzzy 查询
返回包含与搜索字词相似的字词的文档,可以用于查询纠错功能。
Edit distance 指的是最小编辑距离,指的是两个字符串之间,由一个字符串转换为另外一个字符串,所需要的最少编辑次数,也叫:Levenshtein ,
参考地址:https://en.wikipedia.org/wiki/Levenshtein_distance
一些查询和 APIs 支持参数去做不精准查询操作,此时可以使用 fuzziness 参数:
l 0、1、2 表示最大允许可编辑距离
l AUTO 根据词项的长度确定可编辑距离数值,有两种可选参数,AUTO:[low] 和 [high],用于分别表示短距离参数与长距离参数,未指定情况下,默认值是 3 和 6
l 0..2 单词长度为 0 到 2个字母之间时,必须要精确匹配
l 3..5 单词长度 3 到 5 个字母时,最大编辑距离为 1
l > 5 单词长度大于 5 个字母时,最大编辑距离为 2
#以官网例子举例说明 POST /my_index/_bulk { "index": { "_id": 1 }} { "text": "Surprise me!"} { "index": { "_id": 2 }} { "text": "That was surprising."} { "index": { "_id": 3 }} { "text": "I wasn't surprised."} GET /my_index/_search { "query": { "fuzzy": { "text": { "value": "surprize", "prefix_length": 1 } } } } #返回 "hits" : [ { "_index" : "my_index", "_type" : "my_type", "_id" : "1", "_score" : 0.9559981, "_source" : { "text" : "Surprise me!" } }, { "_index" : "my_index", "_type" : "my_type", "_id" : "3", "_score" : 0.69983494, "_source" : { "text" : "I wasn't surprised." } }
《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(16) https://developer.aliyun.com/article/1231053