Качество поиска относится к качеству результатов поиска с точки зрения рейтинга и отзыва с точки зрения пользователя, делающего поисковый запрос.
Ранжирование относится к порядку элементов, а полнота — к количеству найденных релевантных элементов. Элемент (также называемый документом) — это любой цифровой контент, который может индексировать Google Cloud Search. К типам элементов относятся документы Microsoft Office, PDF-файлы, строки в базе данных, уникальные URL-адреса и т. д. Элемент состоит из:
- Структурированные метаданные
- Индексируемый контент
- Списки контроля доступа
Cloud Search использует различные сигналы для получения и ранжирования результатов поискового запроса – элементов, полученных в результате поиска. Вы можете влиять на сигналы Cloud Search, изменяя настройки в схеме, содержимое и метаданные элемента (во время индексации), а также поисковое приложение. Цель этого документа – помочь вам улучшить качество поиска путем изменения этих факторов влияния.
Сводку рекомендуемых и дополнительных настроек см. в разделе Сводка рекомендуемых и дополнительных настроек качества поиска .
Оценка актуальности влияния
Актуальность — это релевантность результата поиска исходным условиям запроса. Актуальность элемента рассчитывается на основе следующих критериев:
- Важность каждого термина запроса.
- Количество совпадений (количество раз, когда термин запроса появляется в содержимом или метаданных элемента).
- Тип совпадений термина запроса и его вариантов с элементом, проиндексированным в Cloud Search.
Чтобы повлиять на оценку актуальности текстового свойства, определите значение RetrievalImportance
для этого свойства в вашей схеме. Соответствие свойству с высоким значением RetrievalImportance
приводит к более высокому рейтингу по сравнению со соответствием свойству с низким значением RetrievalImportance
.
Например, предположим, что у вас есть источник данных со следующими характеристиками:
- Источник данных используется для хранения истории ошибок программного обеспечения.
- У каждой ошибки есть имя, описание и приоритет.
Большинство пользователей будут запрашивать этот источник данных, используя имя ошибки, поэтому вам следует установить RetrievalImportance
для имени на HIGHEST
в схеме.
С другой стороны, большинство пользователей не могут запрашивать этот источник данных, используя описание ошибки, поэтому установите для RetrievalImportance
в описании значение DEFAULT
. Ниже приведён пример схемы с настройками RetrievalImportance
.
{
"objectDefinitions": [
{
"name": "issues",
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "description",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "label",
"isRepeatable": true,
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "comments",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "project",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGH
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
...
]
}
]
}
В случае HTML-документов теги, такие как <title>
и <h1>
, а также параметры форматирования, такие как размер шрифта и жирность, используются для определения важности различных терминов. Если ContentFormat
— TEXT
, ItemContent
имеет приоритет поиска DEFAULT
, а если HTML, его приоритет определяется на основе свойств HTML.
Влияние свежести
Свежесть измеряет, как давно был изменён элемент, и определяется свойствами createTime
и updateTime
в ItemMetadata
. Более старые элементы понижаются в результатах поиска.
Можно влиять на способ вычисления свежести объекта, настраивая freshnessProperty
и freshnessDuration
FreshnessOptions
в схеме.
freshnessProperty
позволяет использовать свойства даты или временной метки для вычисления свежести вместо updateTime
по умолчанию.
В нашем предыдущем примере системы отслеживания ошибок программного обеспечения дата выполнения могла быть использована в качестве свойства freshnessProperty
, так что элементы со сроком выполнения, наиболее близким к текущей дате, считались «более свежими» и получали повышение в рейтинге. Ниже представлен пример схемы с настройками freshnessProperty
:
{
"objectDefinitions": [
{
"name": "issues",
"options": {
"freshnessOptions": {
"freshnessProperty": "duedate"
}
},
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
...
]
}
]
}
Используйте параметр freshnessDuration
, чтобы определить, когда элемент считается устаревшим. Например, у вас может быть источник данных, который не индексируется регулярно или для которого вы не хотите, чтобы актуальность влияла на рейтинг. Этого можно достичь, указав высокое значение параметра freshnessDuration
.
Предположим, у вас есть источник данных с информацией о профилях сотрудников. В этом случае вам может потребоваться большое значение freshnessDuration
, поскольку изменения в информации о сотруднике часто не влияют на его рейтинг. Ниже приведён пример схемы, содержащей параметр freshnessDuration
:
{
"objectDefinitions": [
{
"name": "people",
"options": {
"freshnessOptions": {
"freshnessDuration": "315360000s", # 100 years
}
},
}
]
}
Вы также можете задать для параметра freshnessDuration
очень небольшое значение для источников данных с быстро меняющимся контентом, например, для источников данных, содержащих новостные статьи. В этом случае наиболее релевантными будут недавно созданные или изменённые документы. Ниже приведён пример схемы с параметром freshnessDuration
для источника данных с быстро меняющимся контентом:
{
"objectDefinitions": [
{
"name": "news",
"options": {
"freshnessOptions": {
"freshnessDuration": "259200s", # 3 days
}
},
}
]
}
Влияние на качество
Качество — это мера точности и полезности элемента. Источник данных может содержать несколько семантически схожих документов с разным уровнем качества. Вы можете указать значение качества от 0 до 1 с помощью SearchQualityMetadata
. Элементы с более высокими значениями получают более высокий рейтинг по сравнению с элементами с более низкими значениями. Используйте этот параметр только в том случае, если вам необходимо повлиять на качество элемента или повысить его за пределами информации, предоставляемой Cloud Search.
Например, предположим, что у вас есть источник данных, содержащий документы о льготах для сотрудников. Вы можете использовать SearchQualityMetadata
, чтобы повысить рейтинг документов, созданных сотрудниками отдела кадров, по сравнению с документами, созданными другими сотрудниками.
Ниже приведен пример схемы, содержащей настройки SearchQualityMetadata
для проблем в системе отслеживания ошибок:
{
"name": "datasources/.../items/issue1",
"acl": {
...
},
"metadata": {
"title": "Issue 1"
"objectType": "issues"
},
...
}
{
"name": "datasources/.../items/issue2",
"acl": {
...
},
"metadata": {
"title": "Issue 2"
"objectType": "issues"
"searchQualityMetadata": {
"quality": 0.5
}
},
...
}
{
"name": "datasources/.../items/issue3",
"acl": {
...
},
"metadata": {
"title": "Issue 3"
"objectType": "issues"
"searchQualityMetadata": {
"quality": 1
}
},
...
}
Учитывая эту схему, когда пользователь выполняет поиск с использованием поискового запроса «проблема», проблема 3 в схеме (качество 1) ранжируется выше, чем проблема 2 (качество 0,5) и проблема 1 (если ничего не указано, качество по умолчанию равно 0).
Влияние с использованием типа поля
Cloud Search позволяет влиять на ранжирование на основе значений перечислений или целочисленных свойств. Для каждого целочисленного или перечисляемого свойства можно указать OrderedRanking
. Этот параметр имеет следующие значения:
-
NO_ORDER
(по умолчанию): свойство не влияет на рейтинг. -
ASCENDING
: Элементы с более высокими значениями этого целочисленного или перечисляемого свойства получают повышение рейтинга по сравнению с элементами с более низкими значениями. -
DESCENDING
: элементы с более низкими значениями целочисленного или перечисления получают повышение рейтинга по сравнению с элементами с более высокими значениями.
Например, предположим, что у каждой ошибки в системе отслеживания ошибок есть свойство enum для хранения приоритета ошибки: HIGH
(1), MEDIUM
(2) или LOW
(3). В этом случае установка значения OrderedRanking
в значение DESCENDING
повышает ранг ошибок с HIGH
приоритетом по сравнению с ошибками LOW
приоритетом. Ниже приведён пример схемы, содержащей настройки OrderedRanking
для проблем в системе отслеживания ошибок:
{
"objectDefinitions": [
{
"name": "issues",
"options": {
"freshnessOptions": {
"freshnessProperty": "duedate",
}
},
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "duedate",
"datePropertyOptions": {
}
},
{
"name": "priority",
"enumPropertyOptions": {
"possibleValues": [
{
"stringValue": "HIGH",
"integerValue": 1
},
{
"stringValue": "MEDIUM",
"integerValue": 2
},
{
"stringValue": "LOW",
"integerValue": 3
}
],
"orderedRanking": DESCENDING,
}
},
...
]
}
]
}
Система отслеживания ошибок также может иметь целочисленное свойство, называемое votes
, которое используется для сбора отзывов пользователей об относительной важности ошибки. Свойство votes
можно использовать для влияния на ранжирование, повышая важность ошибок с наибольшим количеством голосов. В этом случае можно указать для свойства votes
значение OrderedRanking
как ASCENDING
, чтобы проблемы с наибольшим количеством голосов получали более высокий рейтинг. Ниже приведён пример схемы, содержащей настройки OrderedRanking
для проблем в системе отслеживания ошибок:
{
"objectDefinitions": [
{
"name": "issues",
"propertyDefinitions": [
{
"name": "summary",
"textPropertyOptions": {
"retrievalImportance": {
"importance": HIGHEST
}
}
},
{
"name": "description",
"textPropertyOptions": {
"retrievalImportance": {
"importance": DEFAULT
}
}
},
{
"name": "votes",
"integerPropertyOptions": {
"orderedRanking": ASCENDING,
"minimumValue": 0,
"maximumValue": 1000,
}
},
...
]
}
]
}
Влияние на рейтинг за счет расширения запроса
Расширение запроса подразумевает расширение терминов в запросе с использованием синонимов и орфографии для получения лучших результатов.
Используйте синонимы для влияния на результаты поиска
Cloud Search использует синонимы, полученные из общедоступного веб-контента, для расширения поискового запроса. Вы также можете определить пользовательские синонимы для использования терминологии, специфичной для вашей организации, например, распространённых аббревиатур, используемых в организации, или отраслевой терминологии.
Пользовательские синонимы можно определить как внутри источника данных, так и в качестве отдельного источника данных. По умолчанию синонимы применяются ко всем источникам данных во всех поисковых приложениях. Однако вы можете сгруппировать синонимы по источнику данных и поисковому приложению. Информация об определении пользовательских синонимов, включая группировку по поисковому приложению, приведена в разделе «Определение синонимов» .
Используйте орфографию для влияния на результаты поиска
Cloud Search предоставляет варианты написания, основанные на моделях, созданных на основе общедоступных данных Google Поиска. Если Cloud Search обнаруживает опечатку в контексте запроса, он возвращает предложенный вариант в SpellResult
. Предложенный вариант написания может быть показан пользователю в качестве подсказки. Например, пользователь может неправильно написать слово «employe» в запросе и получить подсказку «Вы имели в виду employee?».
Cloud Search также использует исправления орфографии в качестве синонимов, чтобы помочь найти документы, которые в противном случае могли бы быть пропущены из-за орфографической ошибки.
Влияние на рейтинг через настройки поискового приложения
Как упоминалось во введении в Google Cloud Search , приложение поиска — это группа настроек, которые при связывании с интерфейсом поиска предоставляют контекстную информацию о поисковых запросах. Следующие настройки позволяют влиять на ранжирование через приложение поиска:
- Конфигурация подсчета очков
- Исходная конфигурация
В следующих двух разделах объясняется, как эти конфигурации полезны для влияния на рейтинг.
Настройте конфигурацию подсчета очков
Для каждого поискового приложения вы можете указать ScoringConfig , используемый для управления применением некоторых сигналов при ранжировании. В настоящее время вы можете отключить функцию обновления и персонализации .
Если функция обновления отключена, она отключена для всех источников данных, перечисленных в поисковом приложении, независимо от параметров обновления, указанных в схеме для источника данных. Аналогично, если персонализация отключена, повышение рейтинга владельца и повышение взаимодействия не влияют на рейтинг.
Пошаговые инструкции по настройке этого параметра см. в разделе Настройка поиска в Cloud Search .
Настройте конфигурацию источника
Конфигурация источника позволяет задать настройки на уровне источника данных в поисковом приложении. Поддерживаются следующие настройки:
- Важность источника
- Давка
Установить важность источника
Важность источника — это относительная важность источника данных в поисковом приложении. Этот параметр можно указать в поле SourceImportance
в SourceScoringConfig
. Элементы из источника данных с HIGH
важностью источника получают более высокий рейтинг по сравнению с элементами из источника данных с DEFAULT
важностью источника или LOW
важностью источника. Используйте этот параметр, чтобы влиять на ранжирование, если вы считаете, что пользователи предпочтут результаты из определённых источников данных.
Например, предположим, что у вас есть портал поддержки продуктов, содержащий внешние и внутренние данные по устранению неполадок. В этом случае вам может потребоваться настроить поисковое приложение так, чтобы оно отдавало приоритет результатам из внутреннего источника данных.
Пошаговые инструкции по настройке этого параметра см. в разделе Настройка поиска в Cloud Search .
Установить толпу
Краудфандинг — это максимальное количество результатов, которое может быть возвращено из источника данных в поисковом приложении. Это значение можно задать с помощью поля numResults
в SourceCrowdingConfig
. По умолчанию это значение равно 3, что означает, что если из источника данных было показано 3 результата, Cloud Search начинает отображать результаты из других источников. Элементы из первого источника данных пересматриваются только после того, как все источники данных достигли своего предела переполнения или если из других источников больше нет результатов.
Этот параметр полезен для обеспечения разнообразия результатов поиска и предотвращения доминирования одного источника данных на странице результатов поиска.
Пошаговые инструкции по настройке этого параметра см. в разделе Настройка поиска в Cloud Search .
Влияние на рейтинг посредством персонализации
Персонализация подразумевает представление персонализированных результатов поиска, основанных на данных конкретного пользователя, просматривающего результаты. Вы можете влиять на ранжирование, расставляя приоритеты по следующим критериям:
- Право собственности на предмет
- Взаимодействие предметов
- Пользовательские клики
- Язык элемента
В следующих трех разделах рассматривается, как повлиять на качество поиска на основе этих критериев.
Рейтинг влияния на основе владения предметом
Владение элементом подразумевает повышение рейтинга элементов, принадлежащих пользователю, выполняющему поисковый запрос. У каждого элемента есть ItemAcl
с полем owners
. Если пользователь, выполняющий запрос, является владельцем элемента, то по умолчанию этот элемент получает повышение рейтинга. Вы можете отключить персонализацию в поисковом приложении.
Повышение рейтинга на основе взаимодействия с предметами
Взаимодействие с элементами подразумевает повышение рейтинга элементов, с которыми взаимодействовал пользователь поискового запроса (просматривал, комментировал, редактировал и т. д.).
Сигналы о взаимодействии с элементами автоматически собираются для продуктов Google Workspace, таких как Диск и Gmail. Для других продуктов вы можете предоставить данные о взаимодействии на уровне элементов, включая тип взаимодействия (просмотр, редактирование), временную метку взаимодействия и пользователя, взаимодействовавшего с элементом. Обратите внимание, что элементы с недавними взаимодействиями получают более высокий рейтинг.
Повышение рейтинга на основе кликов пользователей
Cloud Search собирает клики по текущим результатам поиска и использует их для улучшения рейтинга будущих поисков, повышая позиции элементов, на которые ранее нажимал тот же пользователь.
Влияние на рейтинг посредством интерпретации запроса
Функция интерпретации запросов Cloud Search автоматически интерпретирует операторы и фильтры в запросе пользователя и преобразует эти элементы в структурированный запрос на основе операторов. Интерпретация запросов использует операторы, определённые в схеме, вместе с проиндексированными документами, чтобы определить значение запроса пользователя. Эта функция позволяет пользователю выполнять поиск с минимальным количеством ключевых слов, получая при этом точные результаты. Подробнее см. в статье «Структурирование схемы для оптимальной интерпретации запроса» .
Увеличить рейтинг на основе языка товара
Языковой фактор означает понижение рейтинга элементов, язык которых не совпадает с языком запроса. На ранжирование элементов в зависимости от языка влияют следующие факторы:
Язык запроса. Автоматически определенный язык поискового запроса или
languageCode
указанный вRequestOptions
.При создании пользовательского интерфейса поиска необходимо указать в качестве значения
languageCode
язык интерфейса пользователя или языковые настройки (например, язык веб-браузера или страницы интерфейса поиска). Автоматически определённый язык запроса имеет приоритет надlanguageCode
, чтобы качество поиска не снижалось, если пользователь вводит запрос на языке, отличном от языка его интерфейса.Язык элемента.
contentLanguage
, заданный вItemMetadata
во время индексирования, или язык контента, автоматически определяемый Cloud Search.Если при индексировании
contentLanguage
документа остаётся пустым, а полеItemContent
заполняется, Cloud Search пытается определить язык, используемый вItemContent
, и сохраняет его во внутренней памяти. Автоматически определённый язык не добавляется в полеcontentLanguage
.
Если язык запроса и элемента совпадает, понижение языка не применяется. Если эти настройки не совпадают, элемент понижается. Понижение языка не применяется к документам, у которых contentLanguage
пусто и Cloud Search не смог автоматически определить язык. Таким образом, рейтинг документа не изменяется, если Cloud Search не может определить его язык.
Повысить рейтинг на основе контекста элемента
Вы можете повысить рейтинг элементов, более релевантных контексту поискового запроса. Контекст ( contextAttributes
) — это набор именованных атрибутов, которые можно указать во время индексации и в поисковом запросе, чтобы предоставить контекст для конкретного поискового запроса.
Например, предположим, что элемент, например, документ о выплате пособий сотрудникам, более релевантен в контексте Location
и Department
, например, города ( San Francisco
), штата ( California
), страны ( USA
) и Department
( Engineering
). В этом случае вы можете индексировать элемент по следующим именованным атрибутам:
{
...
"metadata": {
"contextAttributes": [
{
name: "Location"
values: [
"San Francisco",
"California",
"USA"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
},
...
}
Когда пользователь вводит поисковый запрос «преимущества» в интерфейс поиска, вы можете включить в него информацию о местоположении и отделе пользователя. Например, вот поисковый запрос, содержащий информацию о местоположении и отделе инженера в Чикаго:
{
...
"contextAttributes": [
{
name: "Location"
values: [
"Chicago",
"Illinois",
"USA"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
...
}
Поскольку и индексированный элемент, и поисковый запрос содержат атрибуты «Department=Engineering» и «Location=USA», индексированный элемент (документ о льготах для сотрудников) отображается выше в результатах поиска.
Теперь предположим, что другой пользователь, инженер из Индии, вводит в поисковой интерфейс запрос «льготы». Вот поисковый запрос, содержащий информацию о его местоположении и отделе:
{
...
"contextAttributes": [
{
name: "Location"
values: [
"Bengaluru",
"Karnataka",
"India"
],
},
{
name: "Department"
values: [
"Engineering"
],
}
],
...
}
Поскольку и индексированный элемент, и поисковый запрос содержат только атрибут «Department=Engineering», индексированный элемент отображается лишь немного выше в результатах поиска (по сравнению с первым поисковым запросом «benefits», введенным инженером из Чикаго, штат Иллинойс, США).
Ниже приведены некоторые примеры контекстов, которые вы можете использовать для повышения рейтинга:
- Местоположение: элементы могут быть более релевантны пользователям, находящимся в определенном месте, например, в здании, городе, стране или регионе.
- Роль должности: элементы могут быть более актуальны для пользователей, занимающих определенную должность, например, технический писатель или инженер.
- Отдел: элементы могут быть более релевантны определенным отделам, например, продажам или маркетингу.
- Уровень должности: элементы могут быть более релевантны определенным уровням должности, например, директор или генеральный директор.
- Тип сотрудника: элементы могут быть более релевантны определенным типам сотрудников, например, работающим неполный и полный рабочий день.
- Срок полномочий: элементы могут иметь большее отношение к сроку полномочий сотрудника, например, прием на работу нового сотрудника.
Влияние на рейтинг через популярность товара
Cloud Search повышает рейтинг популярных элементов, то есть тех элементов, которые получили клики в последних поисковых запросах.
Влияние на рейтинг через Clickboost
Cloud Search собирает клики по текущим результатам поиска и использует их для улучшения рейтинга будущих поисков, повышая популярность результатов по определенному поисковому запросу.
Сводка рекомендуемых и дополнительных настроек качества поиска
В таблице ниже перечислены все рекомендуемые и дополнительные настройки качества поиска. Эти рекомендации помогут вам максимально эффективно использовать модели ранжирования Cloud Search.
Параметр | Расположение | Рекомендуется/необязательно | Подробности |
---|---|---|---|
Настройки схемы | |||
Поле ItemContent | ItemContent | Рекомендуется | При создании или обновлении схемы заполните неструктурированное содержимое элемента. Это поле используется для генерации сниппетов. |
Поле RetrievalImportance | RetrievalImportance | Рекомендуется | При создании или обновлении схемы задайте для текста свойства, которые явно важны или актуальны. |
FreshnessOptions | FreshnessOptions | Необязательный | При создании или обновлении схемы настройте ее так, чтобы гарантировать, что элементы не будут понижены в ранге из-за неверных данных или случаев отсутствия данных. |
Настройки индексации | |||
createTime / updateTime | ItemMetadata | Рекомендуется | Заполнять во время индексации элемента. |
contentLanguage | ItemMetadata | Рекомендуется | Заполняется во время индексации элемента. При отсутствии этого параметра Cloud Search пытается определить язык, используемый в ItemContent . |
поле owners | ItemAcl() | Рекомендуется | Заполнять во время индексации элемента. |
Пользовательские синонимы | Схема _dictionaryEntry | Рекомендуется | Определить на уровне источника данных или как отдельный источник данных во время индексации. |
поле quality | SearchQualityMetadata | Необязательный | Чтобы обеспечить базовое повышение качества по сравнению с другими семантически схожими элементами, задайте качество во время индексации. Установка этого поля для всех элементов в источнике данных сводит на нет его эффект. |
данные о взаимодействии на уровне элементов | interaction | Необязательный | Если источник данных записывает и предоставляет доступ к взаимодействиям пользователя, заполните взаимодействия для каждого элемента во время индексации. |
целочисленные/перечислимые свойства | OrderedRanking | Необязательный | Если порядок элементов важен, укажите упорядоченный рейтинг для целочисленных и перечисляемых свойств во время индексации. |
Настройки приложения поиска | |||
Personalization=false | ScoringConfig или с помощью административного интерфейса CloudSearch | Рекомендуется | При создании или обновлении поискового приложения убедитесь, что вы указали правильную информацию о владельце, как описано в разделе «Влияние на рейтинг посредством персонализации». |
Поле SourceImportance | SourceCrowdingConfig | Необязательный | Чтобы сместить результаты из определенных источников данных, установите это поле. |
поле numResults | SourceCrowdingConfig | Необязательный | Чтобы контролировать разнообразие результатов, установите это поле. |
Следующие шаги
Вот несколько следующих шагов, которые вы можете предпринять:
Узнайте, как использовать схему
_dictionaryEntry
для определения синонимов терминов, часто используемых в вашей компании. Чтобы использовать схему_dictionaryEntry
, см. раздел Определение синонимов .