上次我们分享到使用 ElasticSearch 的安装和基本查询操作,今天分享 ElasticSearch 的高级查询。
一、高级查询
1. 布尔查询(bool)
bool把各种其它查询通过must(与)、must_not(非)、should(或)的方式进行组合。
2. 范围查询(range)
range 查询找出那些落在指定区间内的数字或者时间。
3. 模糊查询(fuzzy)
fuzzy 查询是 term 查询的模糊等价。它允许用户搜索词条与实际词条的拼写出现偏差,但是偏差的编辑距离不得超过2。
上面的查询,也能查询到apple手机
我们可以通过fuzziness来指定允许的编辑距离。
二、过滤(filter)
filter方式是在查询结果中进行过滤的,不会影响评分。
注意:filter中还可以再次进行bool组合条件过滤。
三、排序
1. 单字段排序
sort 可以让我们按照不同的字段进行排序,并且通过order指定排序的方式。
2. 多字段排序
假定我们想要结合使用 price和_id进行查询,并且匹配的结果首先按照价格排序,然后按照相id排序。
领取专属 10元无门槛券
私享最新 技术干货