Elasticsearch 对多个索引进行评分:dfs_query_then_fetch 返回与 query_then_fetch 相同的分数

2024-04-06

我在 Elasticsearch 中有多个索引(以及使用 django-elasticsearch-dsl 创建的 Django 中的相应文档)。所有索引都有以下设置:

    settings = {'number_of_shards': 1,
                'number_of_replicas': 0}

现在,我尝试对所有 10 个索引执行搜索。为了在不同索引的结果之间检索一致的评分,我使用dfs_query_then_fetch https://www.elastic.co/blog/understanding-query-then-fetch-vs-dfs-query-then-fetch:

search = Search(index=['mov*'])
search = search.params(search_type='dfs_query_then_fetch')
objects = search.query("multi_match", query='Tom & Jerry', fields=['title', 'actors'])

由于得分不一致,我得到了不好的结果。有一本书叫‘杰瑞和他的朋友汤姆的故事“从一项指标来看可以排得比动画片还高”汤姆和杰瑞' 来自另一个索引。原因是dfs_query_then_fetch不管用。当我删除它或用简单的替换时查询然后获取,我得到完全相同的结果和相同的得分。

我也在 URI 请求上对其进行了测试,并且对于两种搜索类型我总是得到相同的分数。

可能是什么原因呢?

UPDATE:结果其实不一样,但只是确实略有不同,例如有 dfs 的得分为 50.1,无 dfs 的得分为 50.0,而同一模型在一个指数内的得分为 80.0。


如果分片数量为1,则dfs_query_then_fetch和query_then_fetch将返回相同的结果。 DFS 查询将对所有分片进行查询,然后根据计算出的分数向您显示结果,但在本例中只有一个分片。

关于评分,你可能也想看看你的演员阵容。另外,如果您使用了自定义分析器和分词器,请告诉我们什么是分析器和分词器?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch 对多个索引进行评分:dfs_query_then_fetch 返回与 query_then_fetch 相同的分数 的相关文章

随机推荐

  • WordPress 网站迁移 - 图标丢失

    我最近按照以下步骤将本地站点迁移到临时服务器https codex wordpress org Moving WordPress https codex wordpress org Moving WordPress一切似乎都工作正常 最初
  • 延迟任务开始的正确方法

    我想安排一个任务在 x 毫秒内启动 并能够在它开始之前 或在任务开始时 取消它 第一次尝试是这样的 var cancelationTokenSource new CancellationTokenSource var token cance
  • 在日志中包含 Active Record 查询的作用

    Rails 现在支持多个数据库角色 默认情况下 https guides rubyonrails org active record multiple databases html using manual connection switc
  • powershell:如何从 [ref] 变量写入主机值

    我是 Powershell 新手 我正在尝试弄清楚如何从函数内打印 ref 变量的值 这是我的测试代码 function testref ref obj1 obj1 value obj1 value 5 write host the new
  • MongoDB 限制查找结果

    如何查询集合并限制返回的结果 假设我有一个包含 500M 文档的数据库 但我只想搜索并返回前 10 个匹配项 而不必搜索整个集合 出于性能原因 理想情况下 我可以在 O m n 时间内返回第 n 到 m 个结果 如果这可能或如何做到 有什么
  • ASP.Net Core 错误 JSON

    我正在玩一点 ASP NET Core 我正在创建一个基本的 webapi 我想在出现问题时显示 JSON 错误 打印屏幕在屏幕上显示我想要的内容 唯一的问题是发送时状态码为 200 catch NullReferenceException
  • 在 Visual Studio 调试器中查看命名空间全局变量?

    在 Visual Studio 2008 中调试非托管 C 项目时 我偶尔想查看全局变量的值 我们没有很多这些 但那些都在名为 全局 的名称空间中声明 例如 namespace global int foo bool bar 问题是 当代码
  • Dockerfile 中的 setfacl 没有效果

    我想在使用 setfacl 构建 docker 映像时为某些文件夹设置默认 acl 但它没有效果 默认 acl 不变 我的目标是在 opt 中创建的每个文件都必须对任何用户都具有 rwX 权限 因为该映像稍后将使用任意 uid 运行 并且需
  • 如何查看 conda 环境的创建日期?

    我创建了四个不同的版本conda virtual environments envs 用于图像处理任务 每个环境包括GDAL and OpenCV 以及相关库和依赖项的一些子集 我想将图像处理环境列表剔除到最近创建的一个 它将拥有我使用的最
  • 在整个项目上运行 CPPlint

    我想跑cplint py https github com google styleguide tree gh pages cpplint在我的整个项目中 不是通过单个文件来获取项目中所有 C C 文件的报告 如何在 macOS 和 Win
  • Java中列出目录和子目录中的所有文件

    列出 1000 多个目录和子目录中的文件名的最快方法是什么 编辑 我当前使用的代码是 import java io File public class DirectoryReader static int spc count 1 stati
  • 如何使用 SwiftUI 在 ScrollView 中选择一个项目?

    我想要完成的是有一个项目循环 我可以点击其中一个项目 一旦点击它就会以编程方式变得更大 这是我的代码和到目前为止的结果 struct ContentView View State var emojisArray State var sele
  • 如何存储在多重图中使用的 ggplots 列表而不覆盖以前的图?

    我想使用从另一个函数创建的对象 cd参数如下 协方差矩阵存储在 3 维数组中 因此cd covmat i 称为第 i 个协方差矩阵 最初我对复制相同的情节有一些疑问 但是 我发现我遇到了环境问题 我尝试了多种方法来解决这个问题 下面的代码是
  • 我如何对 pandas 中的语义版本进行排序?

    我有一个软件版本列表 软件遵循语义版本规范 即有主版本 次版本和补丁版本 0 1 0 2 0 2 1 0 3 0 10 0 10 1 pandas 有没有办法对这些版本进行排序 使 0 2 大于 0 1 但小于 0 10 熊猫解决方案sor
  • asp.net core 3 rotativastartup.cs环境问题

    我尝试使用 Rotativa 我按照这个guide https www youtube com watch v 68YcKP0g1XA在 start cs 的配置函数中添加此代码 RotativaConfiguration Setup en
  • XCodeBuild -exportArchive 不允许我指定文件名

    我正忙于 Jenkins 构建 该构建将用于构建 iOS 应用程序 我已成功使用以下命令创建存档 xcodebuild archive archivePath build app xcarchive 现在我正在尝试导出该存档指定输出文件名
  • java.lang.ClassCastException: [Ljava.lang.Comparable;无法投射到

    我的代码中出现以下异常 线程 main 中的异常 java lang ClassCastException Ljava lang Comparable 无法转换为 LElement 在以下调用中 Element
  • 使用 nodsjs 代码将 AWS EC2 迁移到 Azure VM

    我需要使用 nodejs 代码将我的 AWS EC2 实例迁移到 Azure VM 我检查了 Azure Site 的说明 https azure microsoft com en in blog seamless migrate your
  • F# 中的部分匿名记录

    我如何输入一个函数 该函数接受具有字段的记录a and 任何其他领域 与此等效吗标准机器学习F 中可以使用函数吗 fun f a string Hello a 尝试了以下内容 但这些似乎在语法上无效 let f r a string imp
  • Elasticsearch 对多个索引进行评分:dfs_query_then_fetch 返回与 query_then_fetch 相同的分数

    我在 Elasticsearch 中有多个索引 以及使用 django elasticsearch dsl 创建的 Django 中的相应文档 所有索引都有以下设置 settings number of shards 1 number of