我们在Azure SQL数据库上设置了一个包含在一个Capture表中的~270万条记录的Azure搜索索引。每天晚上,我们的数据抓取工具会抓取最新数据,截断Capture表格,然后重写所有最新数据 - 其中大部分数据将与截断的数据重复,但会有少量新数据。由于每条记录的几个字段中存在大量非结构化数据,我们没有任何可行的方式每天只写新记录。
在这种情况下,我们应该如何最好地管理我们的索引?按计划运行索引器需要您指明这个"高水印列。"由于我们数据库的性质(每天擦除/替换一次),我们没有任何适用于此处的列。此外,我们的Azure搜索索引真正需要的是它还需要经历完整的每日擦除/替换,或者其他一些方法,以便我们不会每天向索引添加270万条重复记录。前者可能不会为我们工作,因为它最少需要4个小时来索引整个数据库。这是客户(全球)可能没有完整数据集来查询的4小时。
Azure Search中的某位人员可以在此处提出建议吗?
答案 0 :(得分:1)
每天实际更改的数据比例是多少?如果该比例很小,那么您不需要重新创建搜索索引。简化reset
SQL表重建后的索引器,并触发重建索引(重置索引器会清除其高水位状态,但不会更改目标索引)。尽管可能需要几个小时,但您的索引仍然存在大多数完整数据集。据推测,如果您每天更新一次数据集,您的客户可以容忍获取最新数据的延迟时间。