OpenSearch/docs/reference/mapping/params/similarity.asciidoc

54 lines
1.6 KiB
Plaintext
Raw Normal View History

[[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 TF/IDF, such as `BM25`.
2016-03-18 12:01:27 -04:00
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.
2016-02-09 05:07:32 -05:00
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[Lucenes Practical Scoring Function]
for more information.
The `similarity` can be set on the field level when a field is first created,
as follows:
[source,js]
--------------------------------------------------
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"default_field": { <1>
2016-03-18 12:01:27 -04:00
"type": "text"
},
"classic_field": {
2016-03-18 12:01:27 -04:00
"type": "text",
"similarity": "classic" <2>
}
}
}
}
}
--------------------------------------------------
// CONSOLE
<1> The `default_field` uses the `BM25` similarity.
<2> The `classic_field` uses the `classic` similarity (ie TF/IDF).