为什么分页时可能会从 Azure 搜索中获得重复的结果?

2024-02-02

有时在使用时Azure 搜索的分页 https://learn.microsoft.com/en-us/azure/search/search-pagination-page-layout结果中可能存在重复的文档。下面是一个分页请求的示例:

GET /indexes/myindex/docs?search=*$top=15&$skip=15&$orderby=rating desc

为什么这可能?怎么会发生呢?分页时是否有一致性保证?


如果基础索引发生变化,或者您依赖于按相关性分数排序,则无法保证分页查询的结果稳定。分页只是改变了值$skip对于每个页面,但每个查询都是独立的,并且对数据的当前视图进行操作(即,没有像通用数据库中那样的快照或其他一致性机制)。

以下是如何获取重复项的示例。假设一个索引有四个文档:

  1. { "id": "1", "rating": 5 }
  2. { "id": "2", "rating": 3 }
  3. { "id": "3", "rating": 2 }
  4. { "id": "4", "rating": 1 }

现在假设您想要以 2 的页面大小翻阅结果,并按评级排序。您将执行此查询来获取第一页:

$top=2&$skip=0&$orderby=rating desc

并得到这些结果:

  1. { "id": "1", "rating": 5 }
  2. { "id": "2", "rating": 3 }

现在您将第五个文档插入到索引中:

{ "id": "5", "rating": 4 }

此后不久,您执行查询来获取第二页结果:

$top=2&$skip=2&$orderby=rating desc

并得到这些结果:

  1. { "id": "2", "rating": 3 }
  2. { "id": "3", "rating": 2 }

请注意,您已获取文档 2 两次。这是因为新文档 5 的评分值更大,因此它排在文档 2 之前并位于第一页。

在您依赖文档分数的情况下(或者您不使用$orderby或者你正在使用$orderby=search.score()),分页可能会返回重复的结果,因为每个查询可能由不同的副本处理,并且该副本可能具有不同的术语和文档频率统计信息 - 足以更改页面边界处文档的相对顺序。

由于这些原因,将 Azure 搜索视为搜索引擎(因为它确实如此)而不是通用数据库非常重要。

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

为什么分页时可能会从 Azure 搜索中获得重复的结果? 的相关文章

  • Azure 搜索 - 作为第一个或单个结果完全匹配

    我使用基于丰富的 Lucene 查询解析器语法的 Azure 搜索 我将 1 定义为距离符号的附加参数 但我面临的问题是 即使存在完全匹配 实体也没有排序 例如 blue 1 将返回 blues blue glue 或者当搜索 P002 等
  • Azure 搜索突出显示带双引号的短语

    我们有一个天蓝色的Web应用程序 其中有一个搜索框 当我们输入带双引号的文本 例如 应用程序服务 时 它会正确列出带有 应 用程序服务 的记录 但它不仅突出显示 应用程序服务 而且还突出显示 应用程序服务 以及 服务 如果单独找到它们 可以
  • azure 搜索按分数排序和过滤

    我想知道如何使用 azure 搜索按分数过滤和排序结果 我试过 https domaine net indexes indexName email protected 20desc count true Return object stdC
  • 在 Azure 搜索中使用 StartsWith 进行搜索

    我有一个场景 我必须使用 Azure 搜索使用供应商名称来搜索供应商 例如 下面是供应商列表 印孚瑟斯科技有限公司 印孚瑟斯 BPM 有限公司 信息解决方案 印孚瑟斯公司技术 戴尔电脑 第一信息系统公司 我的搜索场景是 当搜索文本为Info
  • Azure 搜索:搜索单词的单数版本,但结果中仍包含复数版本

    我对我在自定义分析器 以及 fr microsoft 分析器 中注意到的特殊行为有疑问 下面的分析 API 测试是使用 fr microsoft 分析器显示的 但当我使用 text contains search custom analyz
  • Azure 搜索是否处理同义词

    Azure 搜索 可以根据同义词进行搜索吗 例如 如果我搜索 鞋类 系统应该获取以下结果 鞋类的同义词 如鞋子 凉鞋等 我进行了很多搜索 但未能找到有关它的适当文档 我能找到的最接近的是一个帖子说它还不支持 但这是一个旧帖子 https s
  • 如何在 Azure 搜索中忽略重音符号?

    Azure 搜索是否支持某种忽略重音字符的方式 例如 如果有人搜索e它应该包括 搜索中的字符 或者我们是否需要在构建 Azure 搜索索引时添加一些转换 欢迎任何建议 谢谢 是的 请在您的现场使用 ASCII 折叠分析仪 为此 请将字段上的
  • 中文查询带来意想不到的高召回率

    我们对中文查询的召回率出乎意料地高 我成功地使用仅具有 2 个属性的简单数据模型重现了最小用例 复制 使用zh Hans microsoft分析器为中文产品描述定义属性DescriptionZhCn 在 DescriptionZhCn 中使
  • 为什么 ContinuationToken 不能用于 Azure 搜索 API 中的分页?

    阅读 Azure Search NET SDK 的文档 我发现 ContinuationToken 属性不应该用于分页 这与 odata nextLink and search nextPageParameterREST API 中的属性
  • 如何使用 Azure Search Like 语法

    在我的Azure搜索中 我有两个文档 其中一列称为 描述 还有两个这样的记录 Description XARATM KONE Description ATM RCOR 我的问题是 当我使用 Azure 搜索搜索我的记录时 喜欢 https
  • Azure 认知搜索文本翻译技能 50k 字符限制

    我们正在使用 Azure 认知搜索来索引各种文档 例如Word 或 PDF 文件 存储在 Azure Blob 存储中 我们希望能够翻译提取的非英语文档内容 并将翻译结果存储到索引中的专用字段中 目前 内置的文本翻译认知技能最多支持输入 5
  • 选择查询中 geo.distance 函数的返回值

    我正在使用 select 来查询索引 我想返回索引中 GeographyPoint 的距离 我正在尝试这样的事情 其中 GeoPoint 是位置字段 select ID geo distance GeoPoint geography POI
  • Azure 搜索是否支持拼写错误和同义词?

    我见过讨论这两个主题的线程 Azure 搜索是否处理同义词 https stackoverflow com questions 31180405 does azure search handle synonyms 搜索 API 中的模糊搜索
  • 在 azure 搜索中索引字典属性

    我有一个具有 type 属性的 DTODictionary
  • 如何在 Azure 搜索 REST API 上使用“id”删除特定文档?

    我想知道如何删除Azure搜索索引中的特定文档 我想通过 REST API 使用 id 来删除文档 我曾寻找过 但找不到路 odata context https xxxx metadata docs value search score
  • Azure 搜索 - 推广旧数据

    我正在创建 Azure 搜索评分配置文件 在我的数据集中 我有一个Edm DateTimeOffset字段称为ExpiresOn 我正在使用这个字段来推广某些文档 为此 我使用了这样的新鲜度函数 name Aging functions t
  • 为什么分页时可能会从 Azure 搜索中获得重复的结果?

    有时在使用时Azure 搜索的分页 https learn microsoft com en us azure search search pagination page layout结果中可能存在重复的文档 下面是一个分页请求的示例 GE
  • 从 azure 搜索返回仅与确切搜索词匹配的记录

    所以我是 Azure 搜索的新手 我才刚刚开始了解它 我有一个搜索索引 用于查询一个非常简单的 sql 视图以查找匹配的记录 我在获得与我搜索的单词完全匹配时遇到了很大的困难 每当我搜索时 我都会得到仅包含确切单词的记录 但是我也会得到包含
  • 使用 lucene 模糊搜索和 Azure 搜索的同义词

    我希望能够同时处理模糊搜索和同义词 我尝试了多种方法 但无法使其正常工作 我的索引中有这些值 white black light dark 这个同义词规则 white light black dark 如果我执行查询queryType fu
  • AzureSearch-从数据源检测索引架构时出错

    我通过 REST API 在 Azure 搜索上创建了一个数据源 我使用 API 而不是门户 因为我有一个尚未在门户上处理的 rowversion 数据类型 我可以在门户上查看数据源 当我尝试将数据源导入索引时 出现以下错误 从数据源检测索

随机推荐

  • Excel VBA 使用 Workbook.Open 并显示 Dir(Directory) 的结果

    这看起来很简单 我已经让它工作了多次 但是在我的 Dir 调用 迭代目录 和打开当前文件之间 有些东西不断中断 这是相关代码 SourceLoc C ExcelWIP TestSource SourceCurrentFile Dir Sou
  • 面向对象的实现策略

    我目前正在 Squeak 环境中学习 Smalltalk 并且正在阅读 Squeak A Quick Trip To ObjectLand 我带着一些 Python 和 Java 的先验知识进入了面向对象范式 书中第 36 页的这句话让我想
  • 如何使用 FFMPEG 获取视频尺寸[重复]

    这个问题在这里已经有答案了 我的目标是将视频文件传递给 FFMPEG 并获取其尺寸作为输出 我怎样才能实现这一目标 谁能帮我提供示例代码吗 public void GetVideoInfo string input set up the p
  • 通知所有组成员 GitLab 中失败的管道

    目标是让每个人都能收到每个失败管道的通知 由他们自行决定 目前 我们任何人都可以在这个项目分支上运行管道 并且管道的创建者会收到一封电子邮件 而其他人则不会 我尝试将通知级别设置为watch and custom with failed p
  • Mockito - 如何模拟/验证接受新对象的方法调用?

    我有一个想要测试的方法 method1 它根据提供的参数创建一个对象并调用另一个方法 method2 所以我模拟 method2 它接受一个对象 sampleObj public void method1 booleanParam if b
  • 似乎“border-box”不适用于“a”标签的内联块

    我正在尝试整合box sizing但似乎不起作用 任何人都可以帮助我理解这里的问题 现场演示 https jsfiddle net 3gwebtrain b45qjhh5 a display inline block background
  • 如何在 Puppet 2.7 中将数组转换为逗号分隔的字符串

    我正在使用 Puppet 2 7 我需要将数组转换为逗号分隔列表 hosts fqdn host1 host2 host3 我需要将其转换为所需的结果 host1 host2 host3 我猜 Puppet 3 2 提供了 lambda 表
  • 在 VB.NET 中使用带有命名空间的 LINQ

    我有这个 XML 文件
  • O(N) 排列识别

    这个答案 https stackoverflow com a 36818947 2642059通过比较两个字符串的内容来确定它们是否是排列 如果它们包含相同数量的每个字符 那么它们显然是排列 这是在O N time 但我不喜欢这个答案 因为
  • 像渐变一样将图像淡入透明

    我希望将图像 背景图像 淡化为透明 以便实际上可以看到其后面的内容 由于透明度 只能勉强看到 显然 我可以使用 PNG 图像来实现它 但是每次我想要更改开始 gt 停止透明度点时 我都需要要求我的图形设计师更改图像 也许我想要更多的颜色 或
  • shouldStartLoadWithRequest 永远不会被调用

    我研究了又研究 仍然不明白为什么 shouldStartLoadWithRequest 从未被调用 我的页面加载良好 并且调用了一些 UIWebview 委托协议方法 请从下面的我的代码中找到相关片段 在我的 m 中综合我的 webview
  • 在 React 中更新数组

    我来自 Angular 1 x 希望使用 React Redux 更新无序列表 在 console log 中 我看到数组正在更新 但它似乎没有绑定到 DOM 我有以下内容 在输入的 onKeyPress 上 我有一个推送到消息数组的函数
  • 在 jQuery 插件中调用其他插件

    为了清理我的代码 我想在我的实际 jQuery 插件中使用子插件 但实际上没有发生任何事情 提前谢谢 作为一个简单的例子 请看下面的代码 function fn funct function so far it seems to run t
  • 快速旋转 UIImageView 动画

    我正在尝试制作 180 度旋转的动画UIImageView在斯威夫特 UIView animateWithDuration 1 0 animations gt Void in self arrowImageView transform CG
  • 为什么 PHPmailer 不发送附件?

    我一直致力于使用 PHPmailer 创建文件上传表单以作为附件发送 我终于可以发送电子邮件了 但没有发送附件 这是我的 HTML 表单
  • 在巨大的事件流中寻找差距?

    我的 PostgreSQL 数据库中有大约 100 万个事件 其格式如下 id stream id timestamp 1 7 2 8 大约有 50 000 个独特的流 我需要找到任意两个事件之间的时间超过特定时间段的所有事件 换句话说 我
  • Flutter:按后退按钮应该允许应用程序转到后台

    我正在使用 Flutter BottomSheet 来显示信息 并且希望即使单击后退按钮也能保持 BottomSheet 始终可见 并且为了使其工作 我已经显式处理了 onWillPop 并保持 BottomSheet 处于视图中 即使用户
  • Xcode 11 无可用设备条件

    我试图添加设备条件 https help apple com xcode mac current devdf21fe239在我的 Xcode 11 中 以便我可以模拟较慢的网络连接 但是 当打开 设备和模拟器 窗口并确保选择我的设备时 它显
  • 在 C# 中使用 Dictionary 进行解析

    我是编程新手 一直在努力解析文件 我最初尝试以某种方式解析它 但最终没有正常工作 我想解析 Dictionary 中的以下行 网卡 已安装 7 个 NIC 01 Broadcom Connection Name Local Area Con
  • 为什么分页时可能会从 Azure 搜索中获得重复的结果?

    有时在使用时Azure 搜索的分页 https learn microsoft com en us azure search search pagination page layout结果中可能存在重复的文档 下面是一个分页请求的示例 GE