ES大量数据条件检索准确性问题

《ElasticSearch/Kibana系列》ElasticSearch/Kibana实操记录 ​ 在es中我们通过查询某个关键字,从而查询到关键字相关的数据。那么他是怎么去找的?ES默认的支持对英文的分词,因为英文都是以空格分词,而对于中文的分词效果并不太好也就是对一句话进行分词的叫做分词器。 阅读详情

事例:如查询0~1000的结果集时,分页查询乱序,会搜索出来,也会搜索不出来,目前查询到的结果是分片不一致导致的,需要指定唯一分片查询

ES中基于分片的搜索方式,是分2个阶段进行的,即Query阶段和Fetch阶段。
ES的搜索类型有2种;

  1. query then fetch(默认的搜索方式) 基于当前分片
  2. DFS query then fetch 基于索引
    三种分页方式(From+size、Scroll、search_after )无论哪一种都是不会因为分片不一致导致查询数据无法返回的问题;
    三种分页都是通过CoordinatingNode(协调节点)汇总的shard node(分片)上的数据,这个步骤就是Query阶段;不同的查询方式有不同的Fetch实现方式

因为ES的排序都是基于评分,而评分是基于当前分片的词频进行计算,每个分片节点的数据评分不一样;故而乱序了。
这种的话,我提供2种方式,可以解决因为查询乱序的问题,您可以尝试操作下:

  1. 基于当前查询结果进行重新评分排序 采用 “rescore” 针对结果集重新排序,具体用法可以自己网页查找;
GET tiku_question_index_4002/_search
{
  "from": 0,
  "size": 20, 
   "query" : {
      "match": {
         "questionContent": {
            "query" : "预防"
         }
      }
   },
   "rescore" : {
      "window_size" : 50,
      "query" : {
         "rescore_query" : {
            "match_phrase" : {
               "message" : {
                  "query" : "预防",
                  "slop" : 2
               }
            }
         },
         "query_weight" : 0.7,
         "rescore_query_weight" : 1.2
      }
   }
}
  1. 第二种就是 不要基于分词的排序规则;而是建立一个专门用于排序的字段;将一个字段建立两次索引,一个分词,用来进行搜索;一个不分词,用来进行排序
PUT /website
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "fields": {
          "raw": {
            "type": "keyword",
            "ignore_above": 256
          }
        },
        "fielddata": "true"
      }
    },
    ...
  }
}

GET /website/_doc/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "title.raw": {
        "order": "desc"
      }
    }
  ]
}
QueryBuilder构造ES查询条件 精准匹配、模糊搜索、in、范围查询 and or package com.xzm.es; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Iterator; import java.util.Map.Entry; import org.elasticsearch.action.ListenableActionFuture; im... 阅读详情

相关推荐

ES混合检索

2024年06月上线 ES 8.13.3版本,该版本在向量检索、NLP能力等方面表现更优。为AI革命提供高级搜索能力!腾讯云大数据ES国内首发上线8.8.1版本利用Elasticsearch作为向量数据库,有效地创建、存储和搜索密集向量。提供图索引,通过HNSW以实现高效的最近邻搜索;支持端到端的向量生成、向量索引、向量相似性比较,无需额外的平台进行向量推理;一体化的搜索体验:多路召回混合打分、Faceting聚合分析能力、基于角色的访问控制;

技术引领业务创新 1581

使用elasticsearch查询数据时返回的数据不稳定,时多时少,有时甚至没有

在使用es做数据查询的时候出现的这个问题,将这个坑的点记录下。 在es中,有集群,节点和分片,出现上述错误,查询出来的数据不稳定的主要原因就是分片的问题,以下为一些概念: 集群: ES节点:运行的ES实例 ES集群由若干节点组成,这些节点在同一个网络内,cluster-name相同 节点: master节点:集群中的一个节点会被选为master节点,它将负责管理集群范畴...

宸0313的博客 5172

RAG-MCP:通过检索增强生成缓解大型语言模型工具选择中的提示膨胀问题

RAG-MCP框架通过结合检索增强生成(RAG)原则和MCP框架,解决了LLMs在外部工具选择中的提示膨胀和决策复杂性问题。该框架的核心是语义检索模块,它将工具元数据表示为向量空间中的点,并高效匹配用户查询与最相关的工具,从而减少提示大小和复杂性,提高决策准确性。MCP压力测试表明,随着工具数量的增加,传统方法面临提示膨胀和决策开销问题,而RAG-MCP通过动态检索最相关的工具,显著提高了选择准确性和系统可扩展性。实验结果显示,RAG-MCP在选择准确性、提示令牌使用和任务成功率方面优于基线方法。然而,该方

AI人工智能的学习之路 3119

Elasticsearch 聚合数据结果不精确问题解决方案

近期我们项目中出现使用ES聚合某个索引的数据取TOP 10的数据和相同条件下查询所有数据然后按数据量排序取的TOP 10的数据不一致的问题。下面我们简单分析一下这个问题,列出一些常见的解决方案。

Y_eatMeat的博客 3220

ElasticSearch第十一讲 ES检索评分score以及分数计算逻辑

ElasticSearch第十一讲 ES检索评分score以及分数计算逻辑

程序员路同学 2265

基于Elasticsearch的全文检索系统优化

倒排索引是一种数据结构,它将文档中的所有词项(Token)映射到包含这些词项的文档列表上。这种映射关系使得在搜索过程中,可以通过词项快速定位到包含该词项的所有文档,从而实现高效的文本检索。Elasticsearch查询语言是基于JSON格式的,它允许用户定义查询条件、排序规则、高亮显示等。查询语言的核心是查询表达式(Query Expression),它定义了搜索文档的条件。本节将对实验结果进行总结,并对优化策略的有效性进行评价。测试指标优化前优化后改进情况响应时间100ms80ms。

xinwr 1445

搜索引擎 Elasticsearch 的三大坑

Elasticsearch 现在是用得越来越多了,比如我们日志系统中用到的 ELK 就用到了(简称 ES)。那对于搜索这种技术来说,最看重的是搜索的结果的准确性和搜索的响应时间。ES 的准确性可以通过 倒排索引算法来保证,那响应时间就需要磁盘或缓存来支持了,那么磁盘和缓存会带来哪些坑呢?( 其实不论是分布式的,还是单机模式下的搜索引擎都会遇到这个问题。

悟空聊架构的专栏 5545

配电变压器测控终端装置设计

配电变压器测控终端装置在电网运行中承担着数据采集、状态监测、故障预警及远程控制的关键任务,其性能直接关系到配电系统的安全性与可靠性。本研究围绕测控终端的硬件电路、软件算法、通信系统及系统优化展开深入分析,并基于实验测试验证系统性能。硬件设计包括模拟量输入电路、电压电流信号变换电路、A/D转换电路、控制与通信电路及系统电源电路,确保信号采集的高精度与系统的稳定性。软件部分涵盖系统控制程序、数据采集与处理程序、通信程序及显示与控制程序,实现数据的实时处理与传输。通信模块结合RS-485、CAN总线及以太网技术,

weixin_44553616的博客 1102

elasticsearch 如何查看index的内容_查看es某个索引下的所有数据

Elasticsearch 中的 index 是一种数据存储和检索的逻辑结构,类似于传统数据库中的表,用于存储和索引文档数据。2、使用 Kibana 工具来进行查询,Kibana 是一个基于 Elasticsearch 的数据分析和可视化平台,可以通过 Kibana 的界面来查询 Elasticsearch 中的数据。3、使用 Elasticsearch 的客户端库,例如 Python 的 elasticsearch-py 库,可以通过编写 Python 脚本来查询 Elasticsearch 中的数据。

2401_83947398的博客 3716

天线学习笔记——HFSS简单阵列天线

在HFSS15.0版本中使用 Radiation --> Antenna Array Setup 设置天线阵列的参数时的设计列表如下: 值得注意的是,在该版本中所定义的是:第一个阵元的位置坐标(First Cell Position)、阵元之间的间距(Directions)和阵元的数量(Number of Cells) 这些参数。 在ANSYS中的HFSS仿真中定义天线阵列如下: 与老版本不同的是:中心点坐标(Center Position)和布局设置(Layout Setting)。在布局设置中

Ethan的博客 1万+

阿里天池新闻推荐实战:多路召回策略解析与优化

本文深入解析阿里天池新闻推荐项目中的多路召回策略,包括ItemCF、UserCF、YouTubeDNN等五种召回模型的协同应用与优化技巧。通过实战案例展示如何提升推荐系统效果,特别针对冷启动问题提出创新解决方案,帮助开发者构建高效的新闻推荐系统。

weixin_26918763的博客 414

ElasticSearch快速入门实战

ElasticSearch(简称ES)是一个开源的分布式搜索和数据分析引擎,是用Java开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,它专门设计用于处理大规模的文本数据和实现高性能的全文检索。 以下是一些 Elasticsearch 的特点和优势: 分布式架构:Elasticsearch 是一个分布式系统,可以轻松地水平扩展,处理大规模的数据集和高并发的查询请求。 全文检索功能:Elasticsearch 提供了强大的全文检索功能,包括分词、词项查询、模糊匹配、多字段搜索等,并支持丰富

qq_45061342的博客 1万+

WIFI CSI动作识别数据集全解析:从数据采集到深度学习应用

本文全面解析了利用商用Wi-Fi设备的信道状态信息进行动作识别的完整流程。文章以经典WiSA数据集为例,深入剖析了CSI数据的采集原理、结构特点,并详细阐述了从原始数据预处理、特征工程到深度学习模型(如CNN-LSTM融合架构)构建与优化的关键技术,旨在为研究者提供从数据到应用的全链路实战指南。

r2s3t4的博客 281

使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索

句子窗口检索背后的核心思想是根据查询有选择地从自定义知识库中获取上下文,然后利用该上下文的更广泛版本来生成更强大的文本。此过程涉及嵌入一组有限的句子以供检索,这些句子周围的附加上下文(称为 “窗口上下文 - window context”)单独存储并链接到它们。一旦识别出最相似的句子,就会在将这些句子发送到大型语言模型 (LLM) 进行生成之前重新整合上下文,从而丰富整体上下文理解。通过将焦点缩小到特定的句子窗口,SWR 旨在提高信息提取的准确性和相关性,从而促进文本的全面合成。

Elastic 中国社区官方博客 3530

如何解决Elsevier和IEEE期刊之间参考文献的转换问题

Elsevier期刊和IEEE旗下的期刊两者模版互相转换的时候,会发现Elsevier模版的参考文献是存放在.bib文件下的,然后在.tex文件中直接引用即可。3. 在IEEE的.tex文件中的\end{document}命令行之前,添加下面的这句话(ps:\bibliography{**}中的**名称即为.bib文件的名称)如何将Elsevier的参考文献快速的转成IEEE期刊可用的格式,是本博客需要解决的问题。2. 将下载好的.bib文件,上传到IEEE的latex文件中。

薰珞婷紫小亭子的博客 1674

基于Simulink的压缩空气储能(Compressed Air Energy Storage, CAES)

压缩空气储能(CAES)是一种将电能转化为压缩空气存储在高压容器中,然后在需要时释放空气驱动涡轮机发电的技术。它具有大规模、长寿命和环境友好的特点,在电力系统中用于削峰填谷、频率调节和备用电源等应用。本项目将详细介绍如何在MATLAB/Simulink中搭建一个完整的基于压缩空气储能的系统,并提供具体的代码实现和设计步骤。如果你需要实现更复杂的控制逻辑,可以使用MATLAB Function模块。以下是一个简单的例子,展示了如何在该模块中实现一个条件逻辑:Matlab深色版本Kp = 1;

MHD0815的博客 1274

ES-深度分页问题

什么是深度分页 在 Elasticsearch(ES)中,深度分页是指从大量的搜索结果中获取较靠后的页面数据。例如,当用户请求查询结果的第 100 页,每页显示 10 条记录,这就涉及到深度分页。 通常,在 ES 中,查询是分布式的,数据存储在多个分片(shard)上。当进行分页查询时,每个分片都要返回自己的一部分结果,然后在协调节点(coordinating node)进行汇总排序,得到最终的结果集。

m0_73731267的博客 1381

K-Core, K-Shell & K-Crust傻傻分不清楚

K-Core(K-核)就是所有大于等于K的K-Shell的并集;K-Crust(K-皮)就是所有小于等于K的K-shell的并集。

欢迎订阅 -- 小源笔迹 2255

ES搜索引擎以及IK分词器

什么是搜索? 根据一个搜索词,检索出所有包含该词的数据 例如:用户在搜索框输入一个词,客户端软件发送一个请求到后台,后台通过sql语句从数据库中找出相关条目(数据库会一条一条的对比),这就是一个最简单搜索原型 普通搜索面临的问题 1, 当数据量很大时,假如500G, 效率低。从用户角度,从点击搜索按钮到看到搜索结果可能要很长时间,1小时?2小时?用户疯掉 2, 当数据量达到1T,一台电脑已经放不下...

Static_HackSun的博客 1217

Agile Modbus使用和学习笔记

i < len;这里仅仅需要提供获取函数即可,离散输入是只读类型i++) {return 0;只读类型寄存器i++) {return 0;i < len;

Car12 167

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

两句话理解 ElasticSearch 搜索引擎数据库的作用

一个有两千万商品的商品表,如何提高根据商品名关键字检索商品的效率,搜索引擎数据库 ElasticSearch

道友 1346

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

通过Elasticsearch 实现问答检索

实现基于Elasticsearch(ES)的问答检索系统详细的实现流程

m0_56629454的博客 1442

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【ElasticSearch - 自学笔记】

elastic:可伸缩,灵活;search:查询的意思。

m0_73058114的博客 1098

ElasticSearch优化实战:打造高性能搜索引擎的秘籍

本文深入探讨了ElasticSearch(ES)的优化策略,旨在帮助读者提升搜索引擎的性能和效率。文章首先介绍了ES的数据写入和搜索的流程。随后,通过具体用例分析,展现了在不同业务场景下的优化实践,如新闻内容检索、客户服务记录检索和物流信息追踪平台。这些用例揭示了索引分片调整、热点数据处理、异步写入、内容分级索引等多种优化手段的实际效果。文章强调优化ES是一个持续的过程,需要不断地监控、调整和优化以应对数据增长和业务需求的变化。

东境物语 2万+

基于ElasticSearch的向量检索技术实践

在人脸识别的过程中,输入的人脸图片会转化为人脸特征值向量保存在计算机中作为人脸库,假设右图方块表示小王的多个人脸图片的特征值向量,三角表示小李的多个人脸特征值向量绿色向量表示输入的一张未知人脸图片的特征值向量。使用两向量的距离评估两向量表示的人脸的相似度在右图中与绿色新向量距离最近的为一方块向量,因此认为新输入的图片最有可能是小王的人脸图片。与人脸识别问题类似的其他的机器学习分类问题中,向量检索也是应用流程中的重要环节。

weixin_43520816的博客 1724

Elasticsearch:什么是检索增强生成 (RAG)?

​检索增强生成 (RAG) 是一种利用来自私有或专有数据源的信息来补充文本生成的技术。 它将旨在搜索大型数据集或知识库的检索模型与大型语言模型 (LLM) 等生成模型相结合,后者获取该信息并生成可读的文本响应。 检索增强生成可以通过添加来自其他数据源的上下文并通过培训补充 LLMs 的原始知识库来提高搜索体验的相关性。 这增强了大型语言模型的输出,而无需重新训练模型。 其他信息来源的范围包括 LLM 未受过培训的互联网上的新信息、专有业务背景或属于企业的机密内部文件。 RAG 对于问答和内容生成等任务

Elastic 中国社区官方博客 5119
上一篇: 记录一次JVM排查
下一篇: Java8 判断一个集合的元素哪些不在另外一个集合
Alecor
博客等级 码龄11年 25粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值