为什么80%的码农都做不了架构师?>>>
1.标示符查询
用来提供标示符过滤文档。 下面查询只返回含有value数组中一个标示符的文档。
{"query":{"ids":{"values":["1","2","3"]}}}
复杂一点,在给定类型中完成查询。
{"query":{"ids":{"type":"book","values":["1","2","3"]}}}
2.前缀查询
查询特定字段以给定前缀为开始的文档。
{"query":{"prefix":{"title":"cri"}}}
还可以增加3.0的加权。
{"query":{"prefix":{"title":{"value":"cri","boost":3.0}}}}
3.模糊查询(fuzzy)
模糊查询允许我们进行相似值的查询,给予编辑距离算法来匹配文档。编辑距离的计算基于我们提供的搜索字条以及被我们搜索的文档。模糊查询比较占用CPU资源。但是如果用户有拼写错误时,ES利用模糊查询仍然可以找到我们感兴趣的文档。 下面的例子是搜索crime时误输入crme。
{"query":{"fuzzy":{"title":"crme"}}}Theresponseforsuchaquerywillbeasfollows:{"took":81,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":1,"max_score":0.5,"hits":[{"_index":"library","_type":"book","_id":"4","_score":0.5,"_source":{"title":"CrimeandPunishment","otitle":"Преступлéниеинаказáние","author":"FyodorDostoevsky","year":1886,"characters":["Raskolnikov","SofiaSemyonovnaMarmeladova"],"tags":[],"copies":0,"available":true}}]}}
value : 指定的实际查询boost : 指定的查询加权值,默认 1.0 .fuzziness : 指定匹配字段的最小近似度prefix_length : 公共前缀长度,默认为0max_expansions : 指定可被扩大到的最大词条数,默认为无限制
4.通配符查询(wildcard)
允许我们在查询时使用*和?的通配符
{"query":{"wildcard":{"title":"cr?me"}}}
通配符查询包含加权属性值。
{"query":{"wildcard":{"title":{"value":"cr?me","boost":20.0}}}}
注意:通配符查询不注重性能,应尽量避免。且可以进行参数控制重写。
5.范围查询
范围查询使我们能够找到在某一个字段在某个范围内的文档,字段可以是数值型或字符串型。范围查询只支持单个字段。 下面的例子是查找year字段从1700到1900的所有文档。
{"query":{"range":{"year":{"gte":1700,"lte":1900}}}}
参数:
gte:匹配字段大于等于此参数值的gt :匹配字段大于此参数值的lte:匹配字段小于等于此参数值的lt :匹配字段小于此参数值的
6.more_like_this查询
可以匹配与我们提供的文本或文档相似的查询。ES支持几个参数来定义more_like_this查询。
field:定义应该执行查询的字段,默认为所有字段。like :包含用来进行比较的字段。min_term_freq:文档中字条最低频率,低于此频率将被忽略,默认为1.min_doc_freq:包含该词条的最低文档数,低于此该词条将被忽略,默认为5.更多参数可以参考官方文档。
{"query":{"more_like_this":{"fields":["title","otitle"],"like":"crimeandpunishment","min_term_freq":1,"min_doc_freq":1}}}
下面是用来匹配一个给定的文档。
{"query":{"more_like_this":{"fields":["title","otitle"],"min_term_freq":1,"min_doc_freq":1,"like":[{"_index":"library","_type":"book","_id":"4"}]}}}
上面两种匹配可以一次进行:
{"query":{"more_like_this":{"fields":["title","otitle"],"min_term_freq":1,"min_doc_freq":1,"like":[{"_index":"library","_type":"book","_id":"4"},"crimeandpunishment"]}}}