【Elasticsearch】ElasticSearch里面的偏好查询
1.概述
转载:ElasticSearch里面的偏好查询
在es查询的时候我们可以控制Preference,来完成特定shard或节点上的数据查询,默认情况下查询是随机的。
假如现在我们有一份索引5个shard和3个副本,当一个查询请求过来的时候,查询操作如何执行,在没有使用路由的情况下5个shard的数据肯定都要查询,然后查询5个shard时候到底查的是主shard还是replia都是随机的。
通过偏好查询,我们可以有更多的选择定制,比如我们可以设置只查询主shard,或者只查replia,或者仅仅查某几个节点的数据。
下面来介绍下Preference相关的参数:
(1)_primary:只查询主shard,也就是说不管你有多少个副本,只对主shard进行检索,这种场景可以用在所有副本不可用的时候,强制读取主shard数据。(2)_primary_first:优先读取主shard,如果主shard无效或者失败,则会读取其他shard(3)_replica:只查询replia(4)_replica_first:优先查询replia,如果replia无效就查询其他的shard。(5)_local:尽可能在本地执行查询,不跨网络(6)_prefer_nodes:abc,xyz 在指定的节点id上执行查询(7)_shards:2,3 查询指定分片上的数据,此外这种写法还可以和前面的用法组合,如:_shards:2,3|_primary ,查询分片2和3且在主节点上的数据(8)_only_nodes :限制在特定的node上执行操作(9)Custom (string) value :使用自定义的值来保证同一个值的数据,在一个shard里面,感觉有点像routing字段的功能,暂时没太理解如何使用这个功能,因为官网给的例子,只有查询,在索引的时候没有看到设置preference的功能:GET /_search?preference=xyzabc123
{"query": {"match": {"title": "elasticsearch"}}
}
大多数时候是不需要刻意使用Preference功能的,除非在一些特殊情况下,如shard不可读,shard失败,shard未分配情况,或者某些节点挂了,我们可以指定读取正常shard的数据,虽然不完整,但也比整个服务不可用体验要好。
【Elasticsearch】ElasticSearch里面的偏好查询相关推荐
- elasticsearch根据某个字段来查询,以及通过时间筛选
elasticsearch根据某个字段来查询,以及通过时间筛选 String startTime = "2021-06-01"; String endTime = "20 ...
- 【Elasticsearch】Elasticsearch的IndexSorting:一种查询性能优化利器
1.概述 转载:Elasticsearch的IndexSorting:一种查询性能优化利器 前言 前两周写过一篇<基于Lucene查询原理分析Elasticsearch的性能>,在最后留了 ...
- java查询oracle数据库_Oracle数据库之java 从Oracle数据库到处数据到Elasticsearch全文检索库进行全文查询...
本文主要向大家介绍了Oracle数据库之java 从Oracle数据库到处数据到Elasticsearch全文检索库进行全文查询,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. ...
- ElasticSearch 6.3版本(ES)查询人名关键字不拆词查询
ElasticSearch 6.3版本(ES)查询关键字不拆词查询:类似mysql 的 like 语句. mysql的sql语法类似如下,采用大量like和locate语法,进行模糊查询,导致查询一个 ...
- 使用ElasticSearch完成百万级数据查询附近的人功能
上一篇文章介绍了ElasticSearch使用Repository和ElasticSearchTemplate完成构建复杂查询条件,简单介绍了ElasticSearch使用地理位置的功能. 这一篇我们 ...
- Elasticsearch的suggest联想提示查询实现
Elasticsearch的suggest联想提示查询实现 思路 先将关键字在completions 自动补全索引库中查询,获取建议的补全信息 如没有获取到补全信息,可能表示用户输入的关键词有拼写错误 ...
- [Elasticsearch] Elasticsearch权威指南翻译目录
为了方便大家能够更加快速地找到自己需要参考的那部分,对已经翻译完成的部分根据权威指南的目录做了相应目录,希望能够有所帮助. 起步(Getting Started) 1. 你懂的,为了搜索 英文原文链接 ...
- elasticsearch的多索引联合查询以及范围日期查询示例
一.前言 首先,博主这边要用ES来代替传统的mysql操作,那么原来的多表联合查询操作自然也要转换为多索引联合查找.这里使用elasticsearch-php库来操作ES,原生的ES也是大同小异的. ...
- html显示elasticsearch,ElasticSearch查询:高亮显示(10)
什么是高亮显示 根据关键字搜索时,搜索出的内容中的关键字会显示不同的颜色,称之为高亮百度搜索关键字"elasticsearch" 京东商城搜索"iphone xs max ...
最新文章
- 前端javascript实现二进制读写操作
- eclipse中java文件报错:The type java.lang.Object cannot be resolved. It is indirectly referenced from r
- mysql 排名_SQL语句mysql排名、分组后组内排名、取各组的前几名
- 关于在Servlet的路径问题
- CoreJava Reading Note(3:Fundamental structure)
- TouchId iOS简明教程
- GB28181协议--GB28181协议简介
- 我所了解的GB2312、Unicode、GBK、UTF-8、BIG5等编码
- JVM垃圾回收机制【简单介绍】
- 吉他入门:吉他音阶训练入门教程(三)
- 【Rust日报】2022-07-06 Android 平台中的 Rust
- 符冉迪 计算机 培训,一种卫星云图的二次聚类分割方法专利_专利申请于2012-11-30_专利查询 - 天眼查...
- android水波纹教程,Android实现简单水波纹效果
- android Acitvity action,flag和category各个参数的说明 .
- MJLQ2CH A java开发_新MacBook Pro的原彩显示技术是如何实现的?
- 微信小程序开发笔记(二)
- CVX约束中需要使用一些中间变量该怎么办
- 第十四届蓝桥杯集训——for——判断质数/素数
- MW6208U盘量产问题
- 神奇宝贝java_我的世界下载 1.25神奇宝贝整合包_单机游戏下载