我以前在Azure搜索服务上工作过,我在Azure Portal中直接在SQL DB上创建了一个索引器。
现在,我有了一个用例,在这个用例中,我希望从多个数据源中摄取,每个数据源都有不同的数据模式。假设这些数据源是X、Y、Z小组的3个搜索API。它们都采用搜索项,并在自己的模式中返回结果。我希望我的Azure成为这些服务的代理,这样我就有了一个搜索API,用户可以使用这个API从多个来源获取结果,正确地命令了。
我该怎么做呢?我假设我可能必须创建一个公共模式,每当用户进行搜索时,我都会调用这3个API并获取结果,将它们映射到一个公共模式中,然后将这些数据索引到Azure搜索索引中。最后,调用此将结果返回给调用者。
我很感激你的帮助!如果我能获得一个更好的文档来完成这项工作,那将是很棒的。
发布于 2020-11-18 13:32:24
你的假设是正确的。您可以使用3个不同的索引并对它们进行查询,也可以尝试将它们合并到同一个索引中。第二种方法的好处是更好地实现排序/分页,因为所有信息都将存储在同一个索引中。
发布于 2020-11-19 22:43:25
这真的取决于你所说的正确订购是什么意思。团队X应该能够看到来自Y和Z队的结果吗?获得这样的排序结果的唯一方法是维护一个包含来自所有团队的数据的通用模式的单一索引。
这种方法的一个潜在缺陷是模式中的冲突。例如,如果一个团队要求字段具有特定的数据类型或使用特定的分析器,而另一个团队则有不同的需求。我们在索引中这样做,但使用一些精心选择的公共字段,然后按照自己的命名约定以专用字段作为前缀,以避免冲突。
需要考虑的一件事是需要重新设置索引。如果需要添加、更改或删除字段,则必须删除索引,并使用新架构再次创建索引。如果您有一个公共索引,而team X需要添加一个新属性,则需要重置(删除和创建)影响所有团队的公共索引。
因此,为每个团队创建单独的索引有其好处。每个团队都可以有自己的模式,而不存在冲突的风险,并且可以在不影响其他团队的情况下重置索引。
https://stackoverflow.com/questions/64890591
复制相似问题