В организациях обычно имеется уникальная терминология или несколько способов обозначения концепции или предмета. Вам следует определить синонимы, чтобы установить эквивалентность терминов, чтобы помочь пользователям находить элементы при поиске.
Синонимы определяются путем индексации элементов с помощью известной схемы _dictionaryEntry
.
Элементы типа _dictionaryEntry
могут иметь следующие свойства:
Свойство | Тип | Описание | Необходимый? |
---|---|---|---|
_term | string | Термин, который необходимо определить. Рекомендуемые значения — слова или фразы без дефиса и без знаков препинания. | Необходимый |
_synonym | string (repeated) | Альтернативные термины, которые будут включены в запросы, соответствующие строке, определенной в _term . | Необходимый |
_onlyApplicableForAttachedSearchApplications | boolean | Позволяет группировать синонимы по источнику данных и приложению поиска. Дополнительную информацию см. в разделе Определение синонимов, специфичных для источника данных . | Необязательный |
Когда пользователь включает в запрос значение свойства _term
, эффективный запрос становится « термин ИЛИ синонимы ». Например, если термин "scifi" определен с помощью синонима "science fiction" то запрос, содержащий слово "scifi" соответствует элементам, содержащим слова "scifi" или "science fiction."
Синонимы не применяются двунаправленно. Если вместо этого задается запрос "science fiction," Cloud Search не применяет к запросу синонимы. Запрос соответствует только элементам, содержащим "science fiction." Элементы, содержащие "scifi" опускаются.
Чтобы сделать все оба термина взаимозаменяемыми, определите каждый термин отдельно:
Срок | Синонимы |
---|---|
scifi | science fiction |
science fiction | scifi |
Во время обработки запроса переносы и другие знаки пунктуации удаляются перед применением синонимов. Пользовательский запрос "sci-fi" соответствует _term
"sci fi." Чтобы создать синонимы для терминов, которые пользователи могут использовать через дефис, сначала нормализуйте _term
, чтобы использовать пробелы вместо дефисов.
Продолжая пример, следующие определения соответствуют запросам пользователей, рассматривающим "sci-fi," "sci fi," "scifi," и "science fiction" как взаимозаменяемые:
Срок | Синонимы |
---|---|
scifi | science fiction, sci fi |
sci fi | science fiction, scifi |
science fiction | scifi, sci fi |
По умолчанию синонимы в любом источнике данных применяются ко всему домену. В частности, синонимы применяются в поисковых приложениях для всех поисков независимо от источника данных. Если вам нужны синонимы для конкретного источника данных, обратитесь к разделу Определение синонимов для конкретного источника данных .
Определите глобальные синонимы с помощью Cloud Search SDK
Вы можете использовать Content Connector SDK для определения терминов и их синонимов. Инструкции по созданию соединителя см. в разделе Создание соединителя контента .
Следующий фрагмент иллюстрирует создание RepositoryDoc
представляющего термин и синоним, на основе записи файла CSV:
При определении синонимов обратите внимание на следующее:
- Записи синонимов должны быть общедоступными в домене. В предыдущем примере это достигается путем установки ACL на
DOMAIN_PUBLIC_ACL
. - Следующие свойства не следует определять для вашего файла конфигурации, поскольку они переопределяют общедоступный параметр домена в вашем коде:
-
defaultAcl.mode=FALLBACK
-
defaultAcl.public=true
-
Определение синонимов для конкретного приложения поиска
По умолчанию синонимы применяются ко всем источникам данных во всех поисковых приложениях.
Однако предположим, что в вашей организации есть отдельные команды разработчиков и продаж, и вы хотите предоставить каждой команде разные возможности поиска, включая синонимы для конкретных должностей. В этом случае вы можете создать одно приложение поиска с источником данных, специфичным для разработки, и синонимами, а также другое приложение поиска с источником данных, специфичным для продаж, и синонимами. Для достижения этой цели проиндексируйте каждый синоним в определенном источнике данных, используя _onlyApplicableForAttachedSearchApplications=true
. Этот параметр ограничивает количество синонимов, поэтому они применяются только к приложениям поиска, которые включают определенный источник данных.
Например, добавление следующей строки кода в предыдущий пример кода гарантирует, что индексированные синонимы зависят от источника данных:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);