es数据库如何查询,es查询文档
1.ES ES ES简介ES脱胎于搜索,主要工作是处理查询并返回结果。
二。查询语句1 {2 size: 0,3 query :{ 4 bool :{ 5 must :[{ 6 match :{ 7 dip : 192 . 168 . 1 . 1 8 } 9 }],10 filter :[{ 11 range :{ 12 occure _ time :{ 13 GTE :1553443200000,14 LTE :15535295990015 } 16 } 17 }]描述1.match_all匹配所有查询,这是不带查询的默认语句。
1 { 2 query :{ 3 match _ all :{ } 4 } 5 }此查询通常用于合并筛选条件。例如,如果您需要检索所有邮箱,那么所有文档都具有相同的相关性,因此您得到的_score为1。
2 .匹配匹配分词
1 { 2 query :{ 3 Match :{ 4 IP _ category :15 } 6 } 7 } Match query只能搜索精确字段的精确值,因此请确保指定正确的字段名称以避免语法错误。
3 .多值匹配
1 { 2 Query :{ 3 multi _ match :{ 4 Query : 1 ,5 fields: [6 title ,7 content 8] 9} 10} 11}查询文章标题和内容包含的数据1。
4.精确匹配4.term,无分词,精确匹配未剪切的文本数据类型,如数字、日期、布尔值等。
1 { 2 query :{ 3 term :{ 4 IP : 192 . 168 . 1 . 1 5 } 6 } 7 } 5。术语多值匹配,如果一个字段指定了多个值,那么文档需要一起匹配。
1 { 2 query :{ 3 terms :{ 4 title :[5 Java ,6 Python 7] 8} 9} 10} 6。范围范围查询,gt-大于,gte-大于或等于,It-小于,Ite-小于或等于。
1 {2 查询:{3 范围:{4 年龄:{5 GTE: 1,6 ite: 6 7} 8} 9} 10} 7。exists and missing找出文档是包含指定字段还是不包含某个字段,类似于SQL语句中的is _ null/not is _ in。
1 { 2 exists :{ 3 field : title 4 } 5 }这两个过滤器只在一批数据已经查出来,但你想区分某个字段是否存在时使用。
8.bool filtering,组合多个过滤条件的查询结果的布尔逻辑。它包含运算符:
Must:多个查询条件的精确匹配等价于andmust_not:多个查询条件的反向匹配,等价于notshould:至少有一个查询条件匹配,等价于or。这些参数可以分别继承一个筛选条件或一组筛选条件。
1 { 2 bool :{ 3 must :{ term :{ folder : inbox } },4 MUST _ not :{ term : spam } },5 should :[6 { term :{ starred :true } },7 { term :{ unread :true } } 8]9 } 10 } filter:返回的文档必须满足filter子句的条件,但不会像MUST一样参与分数的计算。在筛选子句查询中,分数将全部归零,分数将受具体查询的影响。
例如,在以下三个查询中,返回所有具有活动状态字段的文档。
第一次查询,所有文档将返回0:
1 { 2 query :{ 3 bool :{ 4 filter :{ 5 term :{ 6 status : active 7 } 8 } 9 } 10 } 11 }对于第二个查询,bool查询包含match_all,因此所有文档都将返回1
1 { 2 query :{ 3 bool :{ 4 must :{ 5 match _ all :{ } 6 },7 filter :{ 8 term :{ 9 status : active 10 } 11 } 12 } 13 } 14 }第三个查询,常数_分数与上面的查询结果相同,也会给每个文档返回1:
1 { 2 query :{ 3 constant _ score :{ 4 filter :{ 5 term :{ 6 status : active 7 } 8 } 9 } 10 } 11 }
转载于:https://www。cnblogs。com/mia 0812/p/10870865。超文本标记语言