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种方式,可以解决因为查询乱序的问题,您可以尝试操作下:文章来源地址https://www.toymoban.com/news/detail-443104.html

  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"
      }
    }
  ]
}

到了这里,关于ES大量数据条件检索准确性问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 区块链溯源:如何确保溯源信息的准确性

    作者:禅与计算机程序设计艺术 《区块链溯源:如何确保溯源信息的准确性》 随着互联网的飞速发展,食品安全、药品安全、环境保护等问题引起了广泛关注。为了保证食品、药品、环境等的质量安全,需要对上述问题进行溯源,而区块链技术作为一种去中心化、不可篡改

    2024年02月16日
    浏览(49)
  • PyTorch 微调终极指南:第 2 部分 — 提高模型准确性

            如今,在训练深度学习模型时,通过在自己的数据上微调预训练模型来迁移学习已成为首选方法。通过微调这些模型,我们可以利用他们的专业知识并使其适应我们的特定任务,从而节省宝贵的时间和计算资源。 本文分为四个部分,侧重于微调模型的不同方面。

    2024年02月13日
    浏览(38)
  • 技术解密:普通位置向量集如何提高语音识别准确性

    语音识别技术是人工智能领域的一个关键技术,它可以将人类的语音信号转换为文本信息,从而实现自然语言与计算机之间的沟通。随着语音助手、语音控制等应用的广泛使用,语音识别技术的准确性和实时性已经成为了关键的研究热点。 在过去的几年里,语音识别技术的主

    2024年02月20日
    浏览(37)
  • 使用机器学习实现自动化测试:提高效率和准确性

    在软件开发的过程中,测试是一个至关重要的环节。传统的手动测试往往耗时耗力,而且存在人为疏漏的可能。为了解决这些问题,许多团队开始将机器学习应用于自动化测试,以提高测试效率和准确性。 本文将介绍如何使用机器学习技术来实现自动化测试,从而显著提升软

    2024年02月15日
    浏览(54)
  • 提高面部分析技术准确性和智能化的关键策略

          随着人工智能技术的发展,面部分析技术已经成为了人工智能领域的一个重要研究方向。面部分析技术可以对人脸图像进行识别、分析和比对,广泛应用于人脸识别、身份认证、安防监控、医疗诊断等领域。然而,面部分析技术的准确性和智能化程度还有待提高。  

    2024年02月11日
    浏览(44)
  • 提升ChatGPT答案质量和准确性的方法Prompt engineering

    影响模型回答精确度的因素 我们应该知道一个好的提示词,要具备一下要点: 清晰简洁,不要有歧义; 有明确的任务/问题,任务如果太复杂,需要拆分成子任务分步完成; 确保prompt中包含解答问题的必要说明/信息; 指定输出长度,避免浪费token/生成内容过长; 使用分隔

    2024年02月05日
    浏览(41)
  • 区块链溯源:如何确保溯源信息的真实性和准确性

    作者:禅与计算机程序设计艺术 随着互联网应用的普及、社交媒体等新兴技术的崛起、电子商务平台的发展,越来越多的交易产生在各个参与方之间,造成了金融记录的复杂度提升。基于区块链技术的去中心化网络,为用户提供安全可信赖的交易和结算服务。然而,在这个过

    2024年02月13日
    浏览(57)
  • AI与金融行业:如何提高金融服务的效率与准确性

    金融行业是全球经济的核心驱动力,它涉及到各种金融产品和服务,包括银行业、保险业、投资业、证券业等。随着数据量的增加和技术的发展,人工智能(AI)技术在金融行业中的应用越来越广泛。AI可以帮助金融机构提高业务的效率和准确性,降低成本,提高风险控制能力,

    2024年02月20日
    浏览(51)
  • 模型剪枝:如何利用剪枝技术提高计算机视觉模型的准确性

    作者:禅与计算机程序设计艺术 模型剪枝(pruning)是一种技术,它通过删除不重要的权重参数,从而减少神经网络中的参数数量,并保持其准确率,同时降低计算量、占用内存空间。这个过程称之为模型压缩(compression)。 模型剪枝的目的是为了改善神经网络在实际环境下

    2024年02月07日
    浏览(42)
  • 借助AI技术提高图片转换为Excel表格的效率与准确性

    在当今数字化时代,数据已经成为企业决策的重要依据。然而,在数据收集和整理过程中,许多企业面临着将图片中的表格转换为Excel格式的难题。这些图片可能来自扫描仪、网络、社交媒体等,数量庞大且格式不一,处理起来费时费力。为了解决这个问题,借助AI技术提高图

    2024年01月21日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包