mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-05 20:48:22 +00:00
This improves the way similarities are plugged in in order to: - reject the classic similarity on 7.x indices and emit a deprecation warning otherwise - reject unkwown parameters on 7.x indices and emit a deprecation warning otherwise Even though this breaks the plugin API, I'd like to backport to 7.x so that users can get deprecation warnings when they are doing something that will become unsupported in the future. Closes #23208 Closes #29035
59 lines
1.9 KiB
Plaintext
59 lines
1.9 KiB
Plaintext
[[similarity]]
|
||
=== `similarity`
|
||
|
||
Elasticsearch allows you to configure a scoring algorithm or _similarity_ per
|
||
field. The `similarity` setting provides a simple way of choosing a similarity
|
||
algorithm other than the default `BM25`, such as `TF/IDF`.
|
||
|
||
Similarities are mostly useful for <<text,`text`>> fields, but can also apply
|
||
to other field types.
|
||
|
||
Custom similarities can be configured by tuning the parameters of the built-in
|
||
similarities. For more details about this expert options, see the
|
||
<<index-modules-similarity,similarity module>>.
|
||
|
||
The only similarities which can be used out of the box, without any further
|
||
configuration are:
|
||
|
||
`BM25`::
|
||
The Okapi BM25 algorithm. The algorithm used by default in Elasticsearch and Lucene.
|
||
See {defguide}/pluggable-similarites.html[Pluggable Similarity Algorithms]
|
||
for more information.
|
||
|
||
`classic`::
|
||
The TF/IDF algorithm which used to be the default in Elasticsearch and
|
||
Lucene. See {defguide}/practical-scoring-function.html[Lucene’s Practical Scoring Function]
|
||
for more information.
|
||
|
||
`boolean`::
|
||
A simple boolean similarity, which is used when full-text ranking is not needed
|
||
and the score should only be based on whether the query terms match or not.
|
||
Boolean similarity gives terms a score equal to their query boost.
|
||
|
||
|
||
The `similarity` can be set on the field level when a field is first created,
|
||
as follows:
|
||
|
||
[source,js]
|
||
--------------------------------------------------
|
||
PUT my_index
|
||
{
|
||
"mappings": {
|
||
"_doc": {
|
||
"properties": {
|
||
"default_field": { <1>
|
||
"type": "text"
|
||
},
|
||
"boolean_sim_field": {
|
||
"type": "text",
|
||
"similarity": "boolean" <2>
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
--------------------------------------------------
|
||
// CONSOLE
|
||
<1> The `default_field` uses the `BM25` similarity.
|
||
<2> The `boolean_sim_field` uses the `boolean` similarity.
|