Качество поиска относится к качеству результатов поиска с точки зрения ранжирования и запоминаемости, как они воспринимаются пользователем, делающим поисковый запрос.
Ранжирование относится к упорядочиванию элементов, а отзыв относится к количеству извлеченных соответствующих элементов. Элемент (также называемый документом) – это любой фрагмент цифрового контента, который может проиндексировать 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
, чтобы влиять на рейтинг, придавая большую важность ошибкам, набравшим наибольшее количество голосов. В этом случае вы можете указать OrderedRanking
как ASCENDING
для свойства votes
, чтобы задачи с наибольшим количеством голосов получали повышение рейтинга. Ниже приведен пример схемы, содержащей настройки 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
. Предложенное написание может отображаться пользователю в качестве подсказки. Например, пользователь может неправильно написать слово «сотрудник» и получить предложение «Вы имели в виду сотрудника?»
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"
],
}
],
...
}
Поскольку и индексируемый элемент, и поисковый запрос содержат только атрибут «Отдел=Инжиниринг», индексированный элемент появляется в результатах поиска лишь немного выше (по сравнению с первым поисковым запросом «преимуществ», введенным инженером из Чикаго). Иллинойс, США).
Ниже приведены некоторые примеры контекстов, которые вы можете использовать для повышения рейтинга:
- Местоположение: элементы могут быть более актуальными для пользователей в определенном месте, например в здании, городе, стране или регионе.
- Должностная роль: элементы могут быть более актуальными для пользователей с определенной должностной ролью, например технического писателя или инженера.
- Отдел: элементы могут быть более актуальными для определенных отделов, например продаж или маркетинга.
- Уровень должности: элементы могут быть более актуальными для определенных уровней должности, например директора или генерального директора.
- Тип сотрудника: элементы могут быть более актуальны для определенных типов сотрудников, например сотрудников, работающих неполный или полный рабочий день.
- Срок полномочий: элементы могут иметь большее отношение к сроку полномочий сотрудника, например, новый прием на работу.
Влияние на рейтинг через популярность товара
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
, обратитесь к разделу Определение синонимов .