高级查询:Query & Filtering 与多字符串多字段查

2020-07-22  本文已影响0人  滴流乱转的小胖子

在Elasticsearch中,有Query和Filter两种不同的Context

一、一个条件组合查询例子:

假设要搜索⼀本电影,包含了以下⼀些条件:

●评论中包含了Guitar,⽤户打分⾼于3分,同时上映⽇期要在1993与2000年之间

检索逻辑解析:

这个搜索其实包含了3段逻辑,针对不同的字段
●评论字段中要包含Guitar / ⽤户评分⼤于3 / 上映⽇期⽇期需要在给定的范围
●同时包含这三个逻辑,并且有⽐较好的性能?
●复合查询:boolQuery

二、bool查询

一个bool查询,是一个或者多个查询子句的组合

2.1 bool查询语法

image.png

三、如何解决结构化查询 --- “包含而不是相等”的问题

增加count字段,使用bool查询解决,从业务⻆度,按需改进Elasticsearch数据模型


image.png

四、Filter Content -- 不影响算分

image.png

五、Query Content -- 影响算分

image.png

六、bool嵌套

image.png

七、查询语句的结构,会对相关度算分产生影响

八、Boosting是控制相关度的一种手段

image.png

九、Boosting Query 例子

要求苹果公司的产品信息优先


image.png

两种实现查询的方式


image.png

相关阅读

上一篇 下一篇

猜你喜欢

热点阅读