Поиск в индексе

Завершено

После создания и заполнения индекса вы можете выполнять запросы к нему для поиска информации в содержимом индексированного документа. Вы можете получать элементы индекса на основе простого сопоставления значений полей, однако в большинстве решений для поиска используется семантика полнотекстового поиска для запросов к индексу.

Полнотекстовый поиск описывает решения для поиска, которые анализируют текстовое содержимое документа для поиска терминов запроса. Запросы полнотекстового поиска в поиске ИИ Azure основаны на синтаксисе запросов Lucene , который предоставляет широкий набор операций запроса для поиска, фильтрации и сортировки данных в индексах. Поиск ИИ Azure поддерживает два варианта синтаксиса Lucene:

  • Простой — интуитивно понятный синтаксис, который позволяет легко выполнять базовые поисковые запросы, соответствующие введенным пользователем литеральным условиям.
  • Полный — расширенный синтаксис, поддерживающий функции фильтрации, регулярные выражения и другие, более сложные запросы.

Клиентские приложения передают запросы в поиск ИИ Azure, указав выражение поиска вместе с другими параметрами, которые определяют, как вычисляется выражение и возвращаются результаты. Ниже приведены некоторые общие параметры, передаваемые в запрос.

  • search — выражение для поиска, содержащее условия поиска.
  • queryType — синтаксис Lucene, используемый для вычисления выражения (simple или full).
  • searchFields — поля индекса для поиска.
  • select — поля, которые будут включаться в результаты.
  • searchMode — критерий для включения результатов на основе нескольких условий поиска. Например, предположим, что вы ищете комфортную гостиницу. Значение searchMode Any возвращает документы, содержащие "удобный", "отель" или оба; в то время как значение searchMode all ограничивает результаты документами, содержащими "комфортно" и "отель".

Обработка запроса осуществляется в четыре этапа.

  1. Анализ запроса. Выражение для поиска вычисляется и реконструируется в виде дерева соответствующих вложенных запросов. Вложенные запросы могут включать запросы терминов (поиск конкретных отдельных слов в выражении поиска - например , отель), запросы фраз (поиск многосрочных фраз, указанных в кавычках в выражении поиска - например, "бесплатная парковка" ) и префиксы (поиск терминов с указанным префиксом - например air*, который будет соответствовать дыхательным путям, кондиционированию воздуха и аэропорту).
  2. Лексический анализ. Термины запроса анализируются и уточняются на основе лингвистических правил. Например, текст преобразуется в нижний регистр и нетентичные стоп-слова (например, "the", "a", "is" и т. д.) удаляются. Затем слова преобразуются в их корневую форму (например, "удобный" может быть упрощено в "комфорт") и составные слова делятся на их составляющие термины.
  3. Извлечение документа. Термины запроса сопоставляются с индексированными терминами, и определяется набор соответствующих документов.
  4. Оценка. Оценка релевантности назначается каждому результату на основе вычисления частоты терминов или обратной частоты документов (TF/IDF).

Примечание.

Дополнительные сведения о запросе индекса и сведения о простом и полном синтаксисе см. в статье "Типы запросов и композиция" в службе "Поиск ИИ Azure" в документации по поиску ИИ Azure.