mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-08 14:05:27 +00:00
Previously the functions accepted a doc values reference, whereas they now accept the name of the vector field. Here's an example of how a vector function was called before and after the change. ``` Before: cosineSimilarity(params.query_vector, doc['field']) After: cosineSimilarity(params.query_vector, 'field') ``` This seems more intuitive, since we don't allow direct access to vector doc values and the the meaning of `doc['field']` is unclear. The PR makes the following changes (broken into distinct commits): * Add new function signatures of the form `function(params.query_vector, 'field')` and deprecates the old ones. Because Painless doesn't allow two methods with the same name and number of arguments, we allow a generic `Object` to be passed in to the function and decide on the behavior through an `instanceof` check. * Refactor the class bindings so that the document field is passed to the constructor instead of the instance method. This allows us to avoid retrieving the vector doc values on every function invocation, which gives a tiny speed-up in benchmarks. Note that this PR adds new signatures for the sparse vector functions too, even though sparse vectors are deprecated. It seemed simplest to understand (for both us and users) to keep everything symmetric between dense and sparse vectors.
44 lines
2.1 KiB
Plaintext
44 lines
2.1 KiB
Plaintext
// This file is auto-generated. Do not edit.
|
|
|
|
[[painless-api-reference-score]]
|
|
=== Score API
|
|
|
|
The following specialized API is available in the Score context.
|
|
|
|
* See the <<painless-api-reference-shared, Shared API>> for further API available in all contexts.
|
|
|
|
==== Static Methods
|
|
The following methods are directly callable without a class/instance qualifier. Note parameters denoted by a (*) are treated as read-only values.
|
|
|
|
* double cosineSimilarity(List *, String)
|
|
* double cosineSimilaritySparse(Map *, String)
|
|
* double decayDateExp(String *, String *, String *, double *, JodaCompatibleZonedDateTime)
|
|
* double decayDateGauss(String *, String *, String *, double *, JodaCompatibleZonedDateTime)
|
|
* double decayDateLinear(String *, String *, String *, double *, JodaCompatibleZonedDateTime)
|
|
* double decayGeoExp(String *, String *, String *, double *, GeoPoint)
|
|
* double decayGeoGauss(String *, String *, String *, double *, GeoPoint)
|
|
* double decayGeoLinear(String *, String *, String *, double *, GeoPoint)
|
|
* double decayNumericExp(double *, double *, double *, double *, double)
|
|
* double decayNumericGauss(double *, double *, double *, double *, double)
|
|
* double decayNumericLinear(double *, double *, double *, double *, double)
|
|
* double dotProduct(List, String)
|
|
* double dotProductSparse(Map *, String)
|
|
* double randomScore(int *)
|
|
* double randomScore(int *, String *)
|
|
* double saturation(double, double)
|
|
* double sigmoid(double, double, double)
|
|
|
|
==== Classes By Package
|
|
The following classes are available grouped by their respective packages. Click on a class to view details about the available methods and fields.
|
|
|
|
|
|
==== org.elasticsearch.index.query
|
|
<<painless-api-reference-score-org-elasticsearch-index-query, Expand details for org.elasticsearch.index.query>>
|
|
|
|
* <<painless-api-reference-score-VectorScriptDocValues, VectorScriptDocValues>>
|
|
* <<painless-api-reference-score-VectorScriptDocValues-DenseVectorScriptDocValues, VectorScriptDocValues.DenseVectorScriptDocValues>>
|
|
* <<painless-api-reference-score-VectorScriptDocValues-SparseVectorScriptDocValues, VectorScriptDocValues.SparseVectorScriptDocValues>>
|
|
|
|
include::packages.asciidoc[]
|
|
|