Elasticsearch实战学习笔记(五) Elasticsearch搜索数据

Elasticsearch实战学习笔记系列   Elasticsearch搜索数据

目录

Elasticsearch实战学习笔记系列   Elasticsearch搜索数据

一、搜索请求的结构

1.确定搜索范围

2.搜索请求的基本模块

(1)结果起始和页面大小

(2)基于 URL 的搜索请求

3.基于请求主体的搜索请求

(1)结果中返回的字段

(2)_source 返回字段中的通配符

(3)结果的排序

(4)实践

4.理解回复的结构

二、介绍查询和过滤器DSL

三、组合查询

1.Bool查询

 2.Bool过滤器

四、超越match和过滤器查询

1.Range查询和过滤器

2.prefix查询和过滤器

3.wildcard查询 通配符

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

1.exists过滤器

2.missing过滤器

系列目录

Elasticsearch实战学习笔记(一) Elasticsearch介绍

Elasticsearch实战学习笔记(二) Elasticsearch环境搭建(Mac Docker)

Elasticsearch实战学习笔记(三) Elasticsearch深入功能

Elasticsearch实战学习笔记(四) Elasticsearch索引、更新和删除数据

Elasticsearch实战学习笔记(五) Elasticsearch搜索数据

Elasticsearch实战学习笔记(六) Elasticsearch分析数据

Elasticsearch实战学习笔记(七) Elasticsearch使用相关性进行搜索

Elasticsearch实战学习笔记(八) Elasticsearch文档间的关系


一、搜索请求的结构

Elasticsearch 的搜索是基于 JSON文档或者是基于 URL 的请求。 请求被发送到服务器,由于所有搜索请求遵循同样的格式,理解对于每个搜索请求所能修改的模块,是非常有帮助的。

1.确定搜索范围

所有的REST搜索请求使用_search的REST端点,既可以是 GET请求,也可以是 POST请求。既可以搜索整个集群,也可以通过在搜索 URL 中指定索引类型的名称来限制范围

2.搜索请求的基本模块

一旦选择了要搜索的索引,就需要配置搜索请求中最为重要的模块。 这些模块涉及文档返回的数量选择最佳的文档返回,以及配置不希望哪些文档出现在结果中

  • query 配置了基于评分返回的最佳文挡,也包括了你不希望返回哪些文档
  • size 代表了返回文档的数量
  • from 和size一起使用,from 用于分页操作
  • _source 默认是返回完整自_source 字段。 通过配置_source,将过滤返回的字段 。如果索引的文档很大,而且无须结果中的全部内容就使用这个功能
  • sort 默认的排序是基于文挡的得分

(1)结果起始和页面大小

命名适宜的 from和 size 字段,用于指定结果的开始点,以及每页结果的数量。

curl 'localhost:9200/get-together/_search?from=10&size=10'

(2)基于 URL 的搜索请求

curl 'localhost:9200/get-together/_search?sort=date:asc'

请求匹配了所有文挡, 但是默认返回前10项结果 ,按照日期的升序排列.

限制了回复中的 source 字段,只需要活动的标题和日期,此外希望活动按照日期排序。

curl 'localhost:9200/get-together/_search?sort=date:asc&q=title:elasticsearch'

指定了在标题字段中查询关键词"elasticsearch"

3.基于请求主体的搜索请求

(1)结果中返回的字段

过滤返回的_source内容

(2)_source 返回字段中的通配符

如果想同时返回"name"和"nation" 字段,可以这样配置_source: "na*",也可以使用通配字符串的数组来指定多个通配符

(3)结果的排序

(4)实践

4.理解回复的结构


二、介绍查询和过滤器DSL

基本搜索使用match_all

  • match 查询匹配

  • multi_match 希望多个字段进行匹配,其中一个字段有这个文档就满足

  • term 代表完全匹配,即不进行分词器分析,文档中必须包含整个搜索的词汇

过滤器和本章讨论的查询类似 ,但是它们在评分机制和搜索’行为的性能上有所不同 。 不像查询会为特定的词条计算得分,搜索的过滤器只是为"文档是否匹配这个查询”,返回简单的“是” 或“否”的答案,过滤器可以比普通的查询更快而且还可以被缓存

 


三、组合查询

1.Bool查询

  • must 必须匹配  只有匹配上这些查询的结果才会被返回
  • should 应该匹配 只有匹配上指定数量子句的文档才会被返回
  • must_not 必须不匹配 会使得匹配其的文档被移出结果集合

 2.Bool过滤器


四、超越match和过滤器查询

1.Range查询和过滤器

2.prefix查询和过滤器

prefix 查询和过滤器允许你根据给定的前缀来搜索词条,在索引中搜索以“liber” 开头的全部活动

如果发送同样的请求,不是使用“ liber”,而是“Liber”,那会发生什么呢?由于在发送之前,搜索前缀是不会被分析的,如此操作将无法找到索引中小写的词条 。 这是由 Elasticsearch分析’文档和查询的方式引起的

3.wildcard查询 通配符


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

1.exists过滤器

2.missing过滤器

missing 过滤器让你可以搜索字段里没有值,或者是映射时指定的默认值的文档


系列目录

Elasticsearch实战学习笔记(一) Elasticsearch介绍

Elasticsearch实战学习笔记(二) Elasticsearch环境搭建(Mac Docker)

Elasticsearch实战学习笔记(三) Elasticsearch深入功能

Elasticsearch实战学习笔记(四) Elasticsearch索引、更新和删除数据

Elasticsearch实战学习笔记(五) Elasticsearch搜索数据

Elasticsearch实战学习笔记(六) Elasticsearch分析数据

Elasticsearch实战学习笔记(七) Elasticsearch使用相关性进行搜索

Elasticsearch实战学习笔记(八) Elasticsearch文档间的关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值