2016-04-21 135 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數據源中的字段集合必須是不相交的。如果您的數據包含帶有空值的字段標題,我們將其解釋爲您希望從索引清除該字段,這是合法的情況。 –