Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Отображение ›Параметры отображения

similarity

Elasticsearch позволяет настроить алгоритм оценки текста или подобия по полю. Параметр similarity предоставляет простой способ выбора алгоритма схожести текста, отличного от стандартного BM25, например, boolean.

Поддерживают данную настройку только текстовые типы полей, такие как text и keyword.

Настраиваемые сходства можно настроить, настроив параметры встроенных сходств. Более подробную информацию об этих продвинутых параметрах см. в модуле similarity.

Единственные сходства, которые можно использовать «из коробки», без дополнительной настройки:

BM25
Алгоритм Okapi BM25. Алгоритм, используемый по умолчанию в Elasticsearch и Lucene.
boolean
Простое булево сходство, которое используется, когда не требуется полное ранжирование по текстам, а оценка должна основываться только на совпадении или несовпадении терминов запроса. Булево сходство присваивает терминам оценку, равную их весу в запросе.

Параметр similarity можно установить на уровне поля при его первом создании, следующим образом:

resp = client.indices.create(
    index="my-index-000001",
    mappings={
        "properties": {
            "default_field": {
                "type": "text"
            },
            "boolean_sim_field": {
                "type": "text",
                "similarity": "boolean"
            }
        }
    },
)
print(resp)
response = client.indices.create(
  index: 'my-index-000001',
  body: {
    mappings: {
      properties: {
        default_field: {
          type: 'text'
        },
        boolean_sim_field: {
          type: 'text',
          similarity: 'boolean'
        }
      }
    }
  }
)
puts response
const response = await client.indices.create({
  index: "my-index-000001",
  mappings: {
    properties: {
      default_field: {
        type: "text",
      },
      boolean_sim_field: {
        type: "text",
        similarity: "boolean",
      },
    },
  },
});
console.log(response);
PUT my-index-000001
{
  "mappings": {
    "properties": {
      "default_field": { 
        "type": "text"
      },
      "boolean_sim_field": {
        "type": "text",
        "similarity": "boolean" 
      }
    }
  }
}

В примере default_field используется сходство BM25.

В примере boolean_sim_field используется сходство boolean.

© 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/similarity.html

Spec-Zone.ru

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