【发布时间】:2019-06-21 02:30:19
【问题描述】:
我们已经使用 Azure 搜索多年,并且一直运行良好。我刚刚意识到新的复杂数据类型,并且对实现它们非常感兴趣。我可以找到如何创建索引的好例子,但我的挑战是如何实现索引器。
我们对 SQL Server 数据库使用索引器,并启用集成的更改检测以在我们运行索引器时自动更新我们的索引。为此,数据源必须指向一个表。
对于我们当前的实现,我们已经扁平化了我们的数据,将几个多值字段放入列表中,以便可以将它们带入索引中。如果我们能够避免这种扁平化,那就太棒了。
例如,假设我们正在索引歌曲数据,并且该数据包括 SongID、Title、AuthorID 和 AuthorNames。源数据来自 Song 表和 Author 表,两者都包含 SongID。我们当前的展平表包含以下条目:
歌曲ID:S9182
标题:我很棒的新歌
作者 ID:["A12345","A67890"]
作者姓名:["John Smith","Sally Smith"]
关于我如何做到这一点的任何指示?我唯一的想法是拥有多个索引器。一个用于基本信息,其他用于每种复杂数据类型。但这似乎不是很优雅。
谢谢!
【问题讨论】:
-
您的数据在被展平并存储在 SQL 数据库中之前是如何存储的?如果您的数据源和索引已经为复杂类型设置,那么索引器应该“正常工作”。
-
我在我的问题中添加了更多信息,但基本上有一个基表“Song”,然后是单独的表,例如“Author”。可以有多个作者,但这些表通过 SongID 链接。那么,您是否建议我为基表设置一个索引器,然后为 Authors 设置第二个索引器?