Поиск в Azure или полнотекстовый индекс?

Данные в sql azure, у нас есть существующий веб-интерфейс, предоставляющий данные с помощью odata. Проблема в том, что клиент хочет выполнить вызов с помощью фильтров с запросом подстроки для нескольких столбцов, что сильно снижает производительность. мы обсуждаем на данный момент, использовать ли индекс полнотекстового поиска или использовать службу поиска лазурного, мысли, пожалуйста?


person TOMMY WANG    schedule 14.09.2017    source источник
comment
вы можете протестировать оба и посмотреть, какой из них обеспечивает лучшую производительность для вашего сценария, но я считаю, что поиск в Azure более эффективен: docs.microsoft.com/en-us/azure/search/   -  person TheGameiswar    schedule 14.09.2017
comment
спасибо, будет ли Azure Search поддерживать логический многостолбцовый фильтр подстрок? например substringof ('Альфредс', Название компании) или substringof ('адам', Имя) или substringof ('менеджер', заголовок)?   -  person TOMMY WANG    schedule 14.09.2017
comment
Я никогда не пробовал, но, судя по документации, он кажется более мощным.   -  person TheGameiswar    schedule 14.09.2017


Ответы (2)


Некоторые соображения и компромиссы между поиском хостинга в Поиске Azure и использованием SQL Server FTS отражены в здесь.

Как указано выше, служба поиска Azure может индексировать данные в базе данных - см. Подключение базы данных SQL Azure к поиску Azure с помощью индексаторов.

person Eugene Shvets    schedule 14.09.2017

Вы можете указать службу поиска Azure в своей базе данных AzureSQL, и она проиндексирует ее без необходимости писать код, но поиск Azure - это услуга, за которую вы должны платить почасово, и вы можете узнать о ней дополнительную информацию здесь.

Поиск Azure рекомендуется для выполнения поиска в различных источниках и приложениях.

Вместо полнотекстового поиска можно использовать поиск Azure, но если вам нужно объединить результаты поиска с другими таблицами, рекомендуется полнотекстовый поиск.

Надеюсь это поможет.

person Alberto Morillo    schedule 14.09.2017
comment
спасибо, будет ли Azure Search поддерживать логический многостолбцовый фильтр в одном фильтре подстроки таблицы? например substringof ('Альфредс', Название компании) или substringof ('адам', Имя) или substringof ('менеджер', заголовок)? - person TOMMY WANG; 14.09.2017
comment
Насколько мне известно, служба поиска Azure не поддерживает частичное сопоставление, кроме сопоставления по префиксу. Подробнее об этом по этому URL-адресу: docs.microsoft.com/en-us/rest/api/searchservice/ - person Alberto Morillo; 14.09.2017
comment
Я думал, что он поддерживает, но с моим двухминутным толканием в нем появляется префикс поддержки только для поиска, например. Home * work, но home ничего не возвращает, или мне что-то не хватает, это просто грустно, это все равно не полнотекстовый поиск - person TOMMY WANG; 14.09.2017
comment
Как я уже упоминал, по моему опыту, это работает только как сопоставление префиксов. Еще одна вещь, которую я хотел бы предложить вам, поскольку, похоже, вы выберете -Полнотекстовый поиск. Увеличьте масштаб уровня SQL Azure перед созданием полнотекстовых индексов, после того как они были созданы, уменьшите масштаб. - person Alberto Morillo; 14.09.2017
comment
Поиск Azure поддерживает поиск с регулярным выражением в нескольких полях (используя Синтаксис запроса Lucene), а также выполнение поиска как часть фильтра (выражение OData $ filter) - см. функция search.ismatch. Более общие компромиссы между SQL FTS и поиском Azure см. В моем ответе. - person Eugene Shvets; 14.09.2017