azure - 数据源中的新数据如何进行增量索引?
问题描述
blob 存储有类似的 blob new/1.json
,new/2.json
我有一个名为 的索引new-index
,名为 indexernew-indexer
和名为 datasourcenew-datasource
的 datasouce 主体如下所示:
{
"name" : "new-datasource",
"type" : "azureblob",
"credentials" : { "connectionString" : "MyStorageConnStrning" },
"container" : { "name" : "mycontaner", "query" : "new" }
}
"query" : "new"
意味着在运行索引器时,它将new
从 Blob 存储中获取虚拟目录中的所有 Blob。
索引器运行有一个开始时间和一个结束时间。而且我知道索引器会根据lastModified
blob( doc ) 的属性进行增量索引。
问题是,在索引器运行的开始时间和结束时间之间,如果像new/3.json
在 Virtual Directorynew
中一样创建了一个新的 blob,这个 blob 是否也会被这个索引器运行索引,还是需要另一个运行才能被索引。
解决方案
问题是,在索引器运行的开始时间和结束时间之间,如果在 Virtual Directory new 中创建了一个新的 blob,如 new/3.json,这个 blob 是否也会被此索引器运行索引,或者是否需要为它发生另一个运行获得索引。
答案比乔伊所说的要复杂一些。由于索引器通过在页面中枚举 blob 来对 blob 进行索引,因此即使具有更新的时间戳的新 blob 也可能会或可能不会被索引器拾取,具体取决于它所在的页面。
索引器提供的唯一保证是 -
- 在同一次运行中,索引器将在索引器开始时间之前使用 LastModified 时间戳索引所有 Blob 。
- 由于数据更改检测策略,增量更改最终将被索引。这意味着它们可能会或可能不会在同一运行中被索引。
不建议做出任何超过高水位线的假设,并且当新的 blob 被索引时在技术上是未定义的行为。
查看这篇文章了解更多详情。我希望这有帮助。
推荐阅读
- node.js - Node.js 不会在 Chrome 上呈现,但会在带有 JWT 身份验证的 Postman 上呈现
- wordpress - 如何展示广告以仅向未登录用户展示广告?
- reactjs - 在 Chrome 中为 React 丢弃选项卡时状态丢失
- racket - Racket v7.0 中的#lang 问题
- javascript - JavaScript 中的表单提交按钮
- reactjs - 使用 AWS Cognito 和 React 仅 Facebook/Google 登录(无用户名/密码)
- c# - 使用数组进行统计(十进制)
- keyboard-shortcuts - Rider :转到下一个建议的键盘快捷键
- javascript - Onclick 进度条
- angular - 自定义管道中的角度访问组件属性