【问题解决】ElasticSearch分页查询时数据顺序错乱/不一致的问题

这篇具有很好参考价值的文章主要介绍了【问题解决】ElasticSearch分页查询时数据顺序错乱/不一致的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【问题解决】ElasticSearch分页查询时数据顺序错乱/不一致的问题

问题描述:

使用ElasticSearch分页查询时,每次输入同样的分页参数以及查询条件,得到的结果不一致的问题。

问题分析:

ElasticSearch中索引可能是由多个分片构成的,并且每个分片可能拥有多个副本,其对应的设置时索引建立时的设置。

number_of_shards:索引拥有多少个分片

number_of_replicas:分片拥有多少个副本,需要部署到不同的节点上(就比如没有其它节点但是设置数量大于0的话,服务器会提示warning)

ElasticSearch版本是6.8.1,索引设置参数如下:

{
	"settings": {
		"number_of_shards": 1,
		"number_of_replicas": 0
	},
	"mappings": {
		"_doc": {
			"properties": {
				"@timestamp": {
					"type": "date"
				},
				"@version": {
					"type": "text",
					"fields": {
						"keyword": {
							"type": "keyword",
							"ignore_above": 256
						}
					}
				},
				"name": {
					"type": "keyword"
				},
				"sfz": {
					"type": "text"
				},
				"content": {
					"type": "text"
				},
				"address": {
					"type": "text"
				}
			}
		}
	}
}

这两次查询结果不同是由于不同分片上数据不一致,导致分数不同。

处理:

利用关键字的hashcode,让相同查询条件作用到同一个分片上,保证每次输出结果一致,并在一定程度上保证查询效率。

SearchRequest request = new SearchRequest(index);
// preference解决分页数据不准确的问题(和分片有关系)
request.source(searchSourceBuilder).preference(String.valueOf(keyword.hashCode()));
restHighLevelClient.search(request, RequestOptions.DEFAULT);

欢迎指正。文章来源地址https://www.toymoban.com/news/detail-788481.html

到了这里,关于【问题解决】ElasticSearch分页查询时数据顺序错乱/不一致的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Elasticsearch ES操作:查询数据(全部、分页、单条)

    查询 条件查询 指定条数 返回结果

    2024年02月16日
    浏览(26)
  • Elasticsearch - 聚合获取原始数据并分页&排序&模糊查询

    ES版本: 7.6. 需要按照主机ID 进行告警时间的汇总,并且还得把主机相关的信息展示出来。 注: 所有的数据都存在索引中, 通过一个DSL查询展示 实际上就是将terms聚合的结果以列表形式分页展示。 bucket_sort中 from不是pageNum,如想实现pageNum效果,from=pageNum*size即可; terms聚合

    2024年02月05日
    浏览(36)
  • idea 社区版 Database Navigator插件 列显示顺序错乱解决办法

    idea 社区版 Database Navigator插件 列显示顺序错乱 影响 :MyBatisCodeHelperPro插件生成代码字段顺序错乱 解决办法 :将 COLUMN 的排序方式由 Name 改为 Position 方式之后, reload 即可!

    2024年02月02日
    浏览(95)
  • SQL-分页查询and语句执行顺序

     🎉欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克🍹 ✨博客主页: 小小恶斯法克的博客 🎈该系列文章专栏: 重拾MySQL 🍹文章作者技术和水平很有限,如果文中出现错误,希望大家能指正🙏 📜 感谢大家的关注! ❤️ 目录  DQL-分页查询 案例

    2024年01月22日
    浏览(44)
  • 什么是ElasticSearch的深度分页问题?如何解决?

    在ElasticSearch中进行分页查询通常使用from和size参数。当我们对ElasticSearch发起一个带有分页参数的查询(如使用from和size参数)时,ElasticSearch需要遍历所以匹配的文档直到达到指定的起始点(from),然后返回从这一点开始的size个文档 在这个例子中: 1.from 参数定义了要跳过的

    2024年03月16日
    浏览(30)
  • VUE3子表格嵌套分页查询互相干扰的问题解决

    VUE3在表格中嵌套子表格 子表格的分页查询互相干扰的问题解决 如果不需要做子表格的分页查询,那么可以直接在主表格中嵌套子表格,有两种方式;一种是主表格加载的同时加载子表格数据,另一种是点击展开时加载子表格数据,尽量使用第二种方式;代码如图1-1所示;

    2024年02月19日
    浏览(28)
  • 重构优化第三方查询接口返回大数据量的分页问题

    # 问题描述      用户线上查询其上网流量详单数据加载慢,且有时候数据没有响应全~      1、经排除是调用第三方数据量达10w条响应会超时,数据没正常返回      2、现有线上缓存分页也是加载慢数据不能正常展示      3、第三方接口返回类似报文jsonj:           4、我

    2024年02月09日
    浏览(37)
  • ElasticSearch分页查询

    一、ES支持的三种分页查询方式 From + Size 查询 Scroll 遍历查询 Search After 查询 二、分布式系统中的深度分页问题 为什么分布式存储系统中对深度分页支持都不怎么友好呢? 首先我们看一下分布式存储系统中分页查询的过程。 假设在一个有 4 个主分片的索引中搜索,每页返回

    2024年02月08日
    浏览(34)
  • 解决flex布局中justify-content设置成space-between后因数据问题导致最后一行布局错乱

    在常用的flex布局中,当页面展示商品时,因为数据的不确定,导致justify-content设置成space-between,最后一行布局错乱   解决办法就是在小盒子后面添加标签 i 或者span标签,然后不设置高度,宽度和小盒子.box 下的div宽度一样就可以 问题来了设置几个呢,答案是设置该行的n-

    2023年04月16日
    浏览(31)
  • Java Elasticsearch分页查询

    核心代码 分页查询示例

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包