我有一个现有的SQL Server数据库,它使用全文搜索和语义搜索来获取UI的主要搜索功能。搜索中使用的表包含大约100万行数据。
我正在考虑使用Azure搜索替换它,但是我的数据库依赖于Full Text Enabled表来获取它的核心功能。我想使用Azure搜索进行“搜索”,但仍然有我当前的表结构,以便能够在找到内容时编辑记录并显示详细记录。
我实现这一点的想法是:
这是一个好方法吗?混合实现如何在现有数据位于本地数据库但您希望利用Azure搜索的哪个位置工作?
答案 0 :(得分:3)
总的来说,您的方法似乎是合理的。一些可能有用的指针:
Azure SQL现在支持全文搜索,因此如果您可以选择迁移到Azure SQL,并且仍想使用Azure搜索,则可以使用Azure SQL indexer。或者,您可以在IaaS VM上运行SQL Server,并使用说明here配置索引器。
使用本地SQL Server,您可以使用Azure Data Factory sink for Azure Search来同步数据。
答案 1 :(得分:1)
我实际上刚刚完成了这个过程。我们使用不同的后端数据存储而不是SQL Server。
最重要的是,我们编写了一个应用程序来同步所有现有数据。很简单。
对于要添加的新文档,我们选择同步而不是异步同步到Azure搜索。我们做出了这个选择,因为我们在添加和更新索引时测量了出色的性能。响应时间为50-200毫秒,数十万条记录无故障。我们无法证明构建和维护工作人员,持久队列等的额外成本。警告:我们的Web服务与Azure搜索实例位于同一Azure区域。如果您的SQL Server在本地,则可能会遇到更长的延迟。
我们最终在Azure Search中存储了大约80%的每条记录。显然,您在Azure搜索中存储的越多,您执行最坏情况串行“双重查询”的可能性就越小。