查詢分为子条件查詢和复合条件查詢
子条件查詢:特定字段查詢所指特定值
复合条件查詢:以一定的逻辑组合子条件查詢
一、子条件查詢
1.Query Context
在查詢过程中,除了判断文档是否满足查詢条件外,ES还会计算一个_score来表示匹配的程度,旨在判断目标文档和查询条件匹配的有多好,大概的意思就是匹配的吻合度到底有多高。
常用查詢
1.全文本查詢
针对文本类型数据
a.模糊查詢
关键词及用法:
比如elsticsearch入门
match:模糊匹配,会将包含elsticsearch和入门的分别匹配除了
match_phrase:匹配习语,只匹配包含elsticsearch入门整个的
multi_match:匹配author和title都包含瓦力的。
b.语法查詢
在这里关键字是query_string
比如直接搜索NEW YORK,相当于单个术语new york,如果想要分别查詢每个术语,就加上显式运算符AND,例如new and
york,则可以单独查詢。
分别搜索包含elasticsearch大法和python的两种场合
字段查詢也可以限制查詢的位置,同样利用fields即可
字段级别查詢
针对结构化数据,如数字,日期
关键字就是term
也可以支持范围查詢
range
在这里gte相当于greater than,然后e为equals,去掉eqauls则想等的数据不会显示
2.Filter Context
在查询过程中,值判断该文档是否满足条件,只有yes或者no
关键字:bool,filter
这样只有1000的数据才可以找出来
二、复合条件查詢
a.固定分数查詢
其中,boost就是指定分数
b.布尔查詢
should:是或的关系,只要符合其中一条就可以。
must:是并的关系,所有条件都符合才可以。
must not:一定不能满足的条件