ElasticSearch权威指南第三章-搜索

重点阅读3.3/3.4/3.5/3.8的内容

3.1 查询 Elasticsearch

ElasticSearch存在两种查询方式:
基本查询:查询数据
复合查询: 合并多个基本查询
过滤查询: 根据条件缩小查询范围
(1)简单查询
查询JSON各种某个字段
(2)分页和结果集的大小
from 起始文档
默认是0
size 设定返回的文档大小
默认是10
(3)返回版本号
JSON对象中version属性值设为true
(4)限制得分
最低得分值,来过滤结果
(5)选择需要返回的字段
设置fields数组
(6)部分字段
include和exclude属性
(7)脚本字段
script_fields属性
传参数到字段

3.2 理解查询过程

3.2.2 查询类型

如何进行查询

query_then_fetch:第一步,执行查询得到对文档进行排序和分级所需信息。这一步
在所有的分片上执行。然后,只在相关分片上查询文档的实际内容。

query_and_fetch:这通常是最快也最简单的搜索类型实现。查询在所有分片上并行执
行(当然,任意一个主分片,只查询一个副本),所有分片返回等于size值的结果数。

dfs_query_and_fetch:这个跟query_and_fetch类似,但相比query_and_fetch,
它包含一个额外阶段,在初始查询中执行分布式词频的计算,以得到返回文件的更精确
的得分,从而让查询结果更相关

dfs_query_then_fetch:与前一个dfs_query_and_ fetch一样,dfs_query_then_fetch
类似于相应的query_then_fetch,但比query_ then_fetch多了一个额外的阶段,就像
dfs_query_and_fetch一样。

count:这是一个特殊的搜索,只返回匹配查询的文档数。如果你只需要结果数量,而不
关心文档,应该使用这个搜索类型。

scan:这是另一个特殊的搜索类型,只有在要让查询返回大量结果时才用。它跟一般的
查询有点不同,因为在发送第一个请求之后,Elasticsearch响应一个滚动标识符,类似于
关系型数据库中的游标

3.2.3 搜索执行偏好

确定在什么分片上进行执行,
是分片还是副本,是已发送请求节点还是集群中其他节点。

3.2.4 搜索分片 API

返回搜索信息中的分片信息

3.3 基本查询

3.4 复合查询

3.5 查询结果的过滤

采用过滤器,过滤器不影响评分,得分计算让搜索变得复杂且消耗CPU资源。

过滤器类型
(1)范围过滤器 (2)exists过滤器 (3)missing过滤器
。。。
各种类型的过滤器,过滤器的缓存,

3.6 高亮显示

高亮显示的三种类型:
标准类型/FastVectorHighlighter/PostingsHighlighter

在实现相关的高亮显示的时候需要在html文档中对HTML标签进行配置。

控制高亮片段,设置相关属性:
number_of_fragments Elasticsearch返回的片段数量
fragment_size 指定高亮片段的最大字符长度

全局设置与局部设置
这一块需要好好研究一下

3.8 数据排序

默认排序/选择用于排序/指定缺少字段/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南楚巫妖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值