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

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

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

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

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

Например, предположим, что у вас есть следующий источник данных, содержащий данные о фильмах:

  • Источник данных содержит 2 документа.
  • Каждый документ имеет заголовок ( ItemMetadata.title ) и два свойства: genre и characters .
  • Первый документ называется «Мстители: Война бесконечности», где genre=science fiction а characters=Iron Man, Hulk
  • Второй документ называется «Гарри Поттер» с genre=Adventure, Fantasy and персонажами = Гермиона, Гарри Поттер.

На рис. 1 показано, как предложения автозаполнения извлекаются из заголовков документов, свойств и значений свойств.

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

Из документа 1 извлекаем нграммы (вплоть до триграмм) «Мстители», «Бесконечность», «Война», «Мстители Бесконечность», «Война Бесконечности», «Мстители Война Бесконечности». Аналогично из документа 2 генерируем «Гарри», «Поттер», «Гарри Поттер».

Предположим, что при запросе к этому источнику данных пользователь начинает с ввода «h». Пользователю будут показаны следующие предложения:

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

Допустим, пользователь выбирает вариант автозаполнения «Гермиона», и следующим нажатием клавиши является символ «а». Предложения автозаполнения, отображаемые пользователю, будут следующими:

  • Гермиона Приключения
  • Гермиона Экшн
  • Гермиона Мстители

Автозаполнение пытается завершить ввод последнего слова (или нграммы). В предыдущем примере буква «а» просто расширяется до «приключение», «действие» и «мстители», поскольку текст, начинающийся с «гермионы а», вместе отсутствует. Это внушение называется хвостовым внушением; автозаполнение только последнего набираемого слова/n-граммы.

Функция автозаполнения Cloud Search возвращает максимум 5 предложений из содержимого документа и 2 предложения людей.

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

Интеграция с API автозаполнения

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

Если вы создаете собственное приложение поиска, автозаполнение доступно путем запроса конечных точек API /query/suggest .

Ограничения

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

  • Ограничение фраз автозаполнения Cloud Search с помощью FilterOptions , определенных в схеме, не поддерживается, за исключением следующих встроенных фильтров: objectype , mimetype и type filter.

  • Предложения на основе истории запросов (поиски, выполненные пользователем ранее в приложении поиска) не поддерживаются.

  • Максимум 20 свойств можно пометить как is_suggestable . Этот лимит можно увеличить, обратившись в службу поддержки Cloud Search.

  • Автозаполнение оператора поиска недоступно для свойств с exact_match_with_operator .

  • Функция автозаполнения Cloud Search возвращает максимум 5 предложений из содержимого документа и 2 предложения людей.

  • Автозаполнение Cloud Search предлагает фразы только из тех документов, к которым у пользователя есть доступ.