Внедрить автозаполнение

Функция автозаполнения Google Cloud Search помогает пользователям, предлагая слова по мере ввода поискового запроса. Например, в качестве подсказок могут использоваться слова из заголовков документов, поисковых операторов или названий из вашей организации Google Workspace.

Функция автозаполнения извлекает фразы из заголовков индексированных документов и использует n-граммовую модель для определения подсказок с помощью API Suggest. По умолчанию автозаполнение отображает фразы из заголовков документов. Вы также можете пометить свойства текстовой и перечислимой схемы как is_suggestable , чтобы использовать имена и значения свойств автозаполнения.

API Suggest анализирует поисковые запросы на наличие языковых подсказок, таких как английский или испанский, и определяет приоритетность результатов. Поле languageCode в запросе также улучшает предложения, специфичные для конкретного языка.

Пример сценария

Рассмотрим источник данных, содержащий информацию о фильмах:

  • Источник данных содержит два документа.
  • Каждый документ имеет заголовок ( ItemMetadata.title ) и два свойства: genre и characters .
  • Название документа 1: "Мстители: Война бесконечности"; genre=science fiction ; characters=Iron Man, Hulk .
  • Название документа 2: "Гарри Поттер"; genre=Adventure, Fantasy ; characters=Hermione, Harry Potter .

На рисунке 1 показано, как функция автозаполнения извлекает подсказки.

Два документа и результирующая n-грамма
Рисунок 1. Два документа и полученная n-грамма, используемая для автозаполнения.

Из документа 1 модель извлекает n-граммы (вплоть до триграмм), такие как "Avengers", "Infinity", "War", "Avengers Infinity", "Infinity War" и "Avengers Infinity War". Из документа 2 она генерирует "Harry", "Potter" и "Harry Potter".

Если пользователь введёт "h" при запросе к этому источнику данных, он может увидеть следующие подсказки:

  • Гарри
  • Гермиона
  • Халк
  • Гарри Поттер

Если пользователь выберет «Гермиона», а затем введёт «a», функция автозаполнения может показать следующее:

  • Приключения Гермионы
  • Гермиона в действии
  • Гермиона Мстители

Функция автозаполнения пытается завершить последнее введенное слово или n-грамму. В этом примере она расширяет "a" до "adventure", "action" и "avengers", поскольку ни один индексированный текст не начинается с "hermione a". Это подсказка для завершения предложения.

Функция автозаполнения Cloud Search выдает максимум пять подсказок из содержимого документа и две подсказки о людях.

По умолчанию автозаполнение отображает фразы из заголовков документов. Для того чтобы API Suggest автоматически дополнял имена и значения свойств, необходимо явно пометить свойства схемы как is_suggestable .

Интеграция с API подсказок

Если вы используете стандартное приложение поиска или встраиваемый виджет поиска, Cloud Search поддерживает автозаполнение. Не забудьте пометить свойства схемы как is_suggestable если хотите, чтобы они автоматически дополнялись.

Если вы разрабатываете собственное приложение для поиска, функция автозаполнения доступна с помощью API-интерфейса /query/suggest .

Ограничения

Функция автозаполнения имеет следующие ограничения:

  • Ограничение автозаполнения фраз с помощью FilterOptions не поддерживается, за исключением встроенных фильтров, таких как objecttype и mimetype .
  • Подсказки, основанные на истории запросов пользователя, не поддерживаются.
  • Вы можете пометить как is_suggestable максимум 20 объектов. Для увеличения этого лимита обратитесь в службу поддержки Cloud Search.
  • Автозаполнение операторов поиска недоступно для свойств с exact_match_with_operator .
  • Функция автозаполнения выдает максимум пять вариантов содержимого документа и два варианта имен людей.
  • Функция автозаполнения предлагает только фразы из документов, к которым пользователь имеет доступ.