ElasticSearch的高级查询

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

一、子条件查詢

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容