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"
}
}
}
} | В примере | |
| В примере |
© 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