美文网首页
Elasticsearch实战 搜索数据

Elasticsearch实战 搜索数据

作者: 二次元日系控铲屎官 | 来源:发表于2019-03-13 10:12 被阅读0次

一、搜索请求的结构

query——这是搜索请求中最重要的组成部分,它配置了基于评分返回的最佳文档,也包括了你不希望返回哪些文档

size——代表了返回文档的数量

from——和size一起使用,from用于分页操作

_source——指定_source字段如何返回

sort——默认的排序是基于文档的得分

二、介绍查询和过滤器DSL

由于这个差异,过滤器可以比普通的查询更快,而且可以被缓存。使用过滤器的搜索和使用查询的普通搜索是非常相似的,但是需要将查询替换为“filtered”映射,包含原始查询和需要应用的过滤器。

term查询 让你可以指定需要搜索的文档字段和词条

terms查询 可以搜索某个文档字段中的多个词条

match查询 和term查询类似,match查询是一个散列映射,包含了希望搜索的字段和字符串

    布尔查询行为 默认情况下match查询使用布尔行为和OR操作符,可以修改为AND

    词组查询行为 

三、组合查询或复合查询

bool查询

    bool查询允许你在单独的查询中组合任意数量的查询,指定的查询子句表明哪些部分是必须(must)匹配、应该(should)匹配或者不能(must_not)匹配上Elasticsearch索引里的数据

    1.如果指定bool查询的某部分是must匹配,只有匹配上这些查询的结果才会被返回

    2.如果指定了pool查询的某部分是should匹配,只有匹配上指定数量子句的文档才会被返回

    3.如果没有指定must匹配的子句,文档至少要匹配一个should子句才能被返回

    4.最后,must_not子句会使得匹配其的文档被移出结果集合

must是为了组合多个子句,使用二元操作and(query1 AND query2 AND query3)

should是使用二元操作or组合多个子句(query1 OR query2 OR query3)

四、超越match和过滤器查询

gt 搜索大于某值的字段,不包括该值本身

gte 搜索大于某值的字段,包括该值本身

lt 搜索小于某值的字段,不包括该值本身

lte 搜索小于某值的字段,包括该值本身

prefix查询 

    prefix查询和过滤器允许你根据给定的前缀来搜索词条

wildcard查询

    *通配符匹配任何数量的字符(也可以不含)或者是?通配符匹配单个字符

五、使用过滤器查询字段的存在性

exists过滤器

missing过滤器

将任何查询转变为过滤器

相关文章

网友评论

      本文标题:Elasticsearch实战 搜索数据

      本文链接:https://www.haomeiwen.com/subject/vvnvpqtx.html