ElasticSearch的高级查询

2021-06-11  本文已影响0人  aeborah

查詢分为子条件查詢和复合条件查詢
子条件查詢:特定字段查詢所指特定值
复合条件查詢:以一定的逻辑组合子条件查詢

一、子条件查詢

1.Query Context

在查詢过程中,除了判断文档是否满足查詢条件外,ES还会计算一个_score来表示匹配的程度,旨在判断目标文档和查询条件匹配的有多好,大概的意思就是匹配的吻合度到底有多高。

常用查詢

1.全文本查詢

针对文本类型数据

a.模糊查詢

关键词及用法:

比如elsticsearch入门
match:模糊匹配,会将包含elsticsearch和入门的分别匹配除了
match_phrase:匹配习语,只匹配包含elsticsearch入门整个的
multi_match:匹配author和title都包含瓦力的。


match.png
multi_match.png
b.语法查詢

在这里关键字是query_string
比如直接搜索NEW YORK,相当于单个术语new york,如果想要分别查詢每个术语,就加上显式运算符AND,例如new and
york,则可以单独查詢。


query-string.png

分别搜索包含elasticsearch大法和python的两种场合


OR的使用
字段查詢也可以限制查詢的位置,同样利用fields即可
image.png
字段级别查詢

针对结构化数据,如数字,日期
关键字就是term


image.png

也可以支持范围查詢
range


image.png
在这里gte相当于greater than,然后e为equals,去掉eqauls则想等的数据不会显示

2.Filter Context

在查询过程中,值判断该文档是否满足条件,只有yes或者no
关键字:bool,filter


image.png

这样只有1000的数据才可以找出来

二、复合条件查詢

a.固定分数查詢

image.png

其中,boost就是指定分数

b.布尔查詢

should:是或的关系,只要符合其中一条就可以。
must:是并的关系,所有条件都符合才可以。
must not:一定不能满足的条件


should.png
must not.png
上一篇下一篇

猜你喜欢

热点阅读