Улучшить качество поиска

Качество поиска относится к качеству результатов поиска с точки зрения ранжирования и запоминаемости, как они воспринимаются пользователем, делающим поисковый запрос.

Ранжирование относится к упорядочиванию элементов, а отзыв относится к количеству извлеченных соответствующих элементов. Элемент (также называемый документом) – это любой фрагмент цифрового контента, который может проиндексировать 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 Необязательный Чтобы контролировать разнообразие результатов, установите это поле.

Следующие шаги

Вот несколько следующих шагов, которые вы можете предпринять:

  1. Структурируйте схему для оптимальной интерпретации запроса .

  2. Узнайте, как использовать схему _dictionaryEntry для определения синонимов терминов, часто используемых в вашей компании. Чтобы использовать схему _dictionaryEntry , обратитесь к разделу Определение синонимов .