2016-04-21 140 views
1

我正在使用Azure SQL,Azure搜索和Azure Blob存储将网站作为Azure Web App运行。使用Azure搜索,Azure SQL和Azure Blob存储添加全文本搜索

当前,Azure搜索索引(用于文档搜索)使用索引器从多个SQL表(通过视图)绘制数据来建立关联的权限和与文档间接关联的其他元数据,包括文档的url在Azure Blob存储中。

新发布的Azure Search更新似乎允许全文搜索blob,但是数据源必须更改为blob存储容器,错过了将由我填充的其他元数据SQL视图。

搜索索引文档可以由多个数据源填充,还是第二个索引器可以更新现有搜索文档(将全文数据添加到文档中)?

我看过试图捕获数据并在文件上传时在SQL数据库中创建完整文本,但在Azure Web应用程序上似乎没有合适的解析器,并且Azure SQL全文索引不会不支持Word或PDF文档,这些文档主要是我正在上传的文档。

是否有可能修改索引器以合并Azure Blob存储全文索引,还是应该寻找完全不同的方法?

回答

2

Azure搜索索引可以由多个索引器填充,或者甚至可以由索引器和您自己的代码混合调用索引API。 (具体来说,索引器使用mergeOrUpload索引操作。)

您只需确保SQL和BLOB索引器对文档键都达成一致,以便它们更新相同的文档。 HTH!

+0

感谢您的回答,它让我有信心继续走下去,现在我的成功喜忧参半。 – Ben

+0

我使用自己的索引创建了一个新的索引器,所以我不会破坏我原来的SQL索引,一旦我得到了这个工作,我意识到你对文档密钥的第二个评论是多么重要。 除非你知道,否则我认为唯一可以使用的文档键是文件名。 这需要进行编码,因此我使用了'base64EncodeKeys':true参数,但这并不总是与由SQL索引器生成的编码文件名匹配(通常如果有较少的通用字符)。 同样,由SQL索引器生成的'标题'字段名将被Blob索引器替换为null。 – Ben

+0

1.请向我发送有关名称不匹配的详细信息 - 也许在字符串中存在一些差异(如尾部斜线)? eugenesh在通常的Microsoft域中。 2.为避免覆盖,除了密钥外,blob数据源和SQL数据源中的字段集合必须是不相交的。如果您的数据包含带有空值的字段标题,我们将其解释为您希望从索引清除该字段,这是合法的情况。 –