2016-04-21 9 views
1

Я запускаю сайт как Azure Web App, используя Azure SQL, Azure Search и Azure Blob Storage.Добавить полнотекстовый поиск с использованием Azure Search, Azure SQL, Azure Blob Storage

В настоящее время индекс поиска Azure (для поиска документов) построен с использованием данных чертежа индексатора из нескольких таблиц SQL (через представление) для связывания разрешений и других метаданных, косвенно связанных с документами, включая URL-адрес документа в хранилище Azure Blob.

Недавно выпущенное обновление для Azure Search позволяет полнотекстовому поиску капли, что отлично, но источник данных должен быть заменен на контейнер хранения blob, отсутствующий на дополнительной мета, которая будет заполнена моим SQL.

Может ли индексный индекс поиска заполняться более чем одним источником данных, или второй индексист может обновить существующий поисковый документ (чтобы добавить полнотекстовые данные в документ)?

Я искал попытку захвата данных и создания полного текста в SQL DB при загрузке документа, но в веб-приложениях Azure, похоже, не подходит подходящий синтаксический анализатор, и Azure SQL. Полный текстовый индекс doesn 't поддерживает документы Word или PDF, которые в основном загружаются.

Возможно ли изменить индексатор, чтобы включить полнотекстовое индексирование Azure Blob Storage, или я должен искать совершенно другой подход?

ответ

2

Azure Поисковые индексы могут быть заполнены несколькими индексаторами или даже с помощью комбинации индексатора и вашего API индексирования кода. (В частности, индексаторы используют операцию индексации .)

Вам просто нужно убедиться, что индексы индексации SQL и blob согласны с ключом документа, поэтому они обновляют одни и те же документы. HTH!

+0

Спасибо за ваш ответ, это дало мне уверенность в продолжении этого пути, и теперь у меня смешанный успех. – Ben

+0

Я создаю новый индексатор со своим собственным индексом, поэтому я бы не исказил исходный индекс исходного кода SQL, и как только я получил эту работу, я понял, насколько важен ваш второй комментарий относительно ключа документа. Если вы не знаете иначе, я думаю, что единственным ключом документа, который может быть использован, является имя файла. Это нужно закодировать, поэтому я использовал параметр base64EncodeKeys: true, но это не всегда соответствует кодированному имени файла, сгенерированному индексом SQL (обычно, если есть менее распространенные символы). Также поле «Название», сгенерированное индексом SQL, перезаписывается нулевым индексом Blob Indexer. – Ben

+0

1. Пожалуйста, пришлите мне подробную информацию о том, какие имена не совпадают - возможно, есть некоторые отличия в строках (например, конечная косая черта)? eugenesh в обычном домене Microsoft. 2. Чтобы избежать перезаписи, набор полей в источнике данных blob и источнике данных SQL должен быть несовместим, за исключением ключа. Если ваши данные содержат поле Title с нулевым значением, мы интерпретируем его так, как вы хотите очистить это поле от индекса, что является законным сценарием. –

Смежные вопросы