Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Повторное ранжирование ›Обучение ранжированию

Поиск с использованием обучения ранжированию

Эта функция была представлена в версии 8.12.0 и доступна только определённым уровням подписки. Для получения дополнительной информации см. https://www.elastic.co/subscriptions.

Обучение ранжированию как реранкер

После обучения и развертывания модели LTR в Elasticsearch, её можно использовать в качестве реранкера в API поиска:

resp = client.search(
    index="my-index",
    query={
        "multi_match": {
            "fields": [
                "title",
                "content"
            ],
            "query": "the quick brown fox"
        }
    },
    rescore={
        "learning_to_rank": {
            "model_id": "ltr-model",
            "params": {
                "query_text": "the quick brown fox"
            }
        },
        "window_size": 100
    },
)
print(resp)
response = client.search(
  index: 'my-index',
  body: {
    query: {
      multi_match: {
        fields: [
          'title',
          'content'
        ],
        query: 'the quick brown fox'
      }
    },
    rescore: {
      learning_to_rank: {
        model_id: 'ltr-model',
        params: {
          query_text: 'the quick brown fox'
        }
      },
      window_size: 100
    }
  }
)
puts response
const response = await client.search({
  index: "my-index",
  query: {
    multi_match: {
      fields: ["title", "content"],
      query: "the quick brown fox",
    },
  },
  rescore: {
    learning_to_rank: {
      model_id: "ltr-model",
      params: {
        query_text: "the quick brown fox",
      },
    },
    window_size: 100,
  },
});
console.log(response);
GET my-index/_search
{
  "query": { 
    "multi_match": {
      "fields": ["title", "content"],
      "query": "the quick brown fox"
    }
  },
  "rescore": {
    "learning_to_rank": {
      "model_id": "ltr-model", 
      "params": { 
        "query_text": "the quick brown fox"
      }
    },
    "window_size": 100 
  }
}

Запрос первого прохода, предоставляющий документы для реранжирования.

Уникальный идентификатор обученной модели, загруженной в Elasticsearch.

Именованные параметры, передаваемые шаблонам запросов, используемым для функции.

Количество документов, которые должен проверить реранкер на каждом фрагменте.

Известные ограничения
Размер окна реранжирования

Оценки, возвращаемые моделями LTR, обычно несопоставимы с оценками запроса первого прохода и могут быть ниже, чем оценка без реранжирования. Это может привести к тому, что документ без реранжирования будет ранжироваться выше, чем документ с реранжированием. Чтобы этого избежать, параметр window_size является обязательным для реранкеров LTR и должен быть больше или равен from + size.

Пагинация

При предоставлении пагинации пользователям, window_size должен оставаться постоянным при прохождении каждой страницы путём передачи различных значений from. Изменение window_size может изменить лучшие совпадения, вызывая путаницу в результатах при переходе пользователя по страницам.

Отрицательные оценки

В зависимости от того, как обучена ваша модель, возможно, что модель вернёт отрицательные оценки для документов. Хотя отрицательные оценки недопустимы для извлечения и ранжирования на первом этапе, их можно использовать в реранкере LTR.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/learning-to-rank-search-usage.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API