Ich erstelle eine benutzerdefinierte Scoring-Funktion für meine Dokumente, die nur den Wert des Feldes a
für jedes Dokument zurückgibt. Im folgenden Beispiel unterscheiden sich die letzten Ziffern der _score
in den Ergebnissen jedoch von den letzten Ziffern des Werts a
für jedes Dokument. Was passiert hier?Benutzerdefinierte Scoring-Funktion in Elasticsearch gibt keinen erwarteten Feldwert zurück
PUT test/doc/1
{
"a": 851459198
}
PUT test/doc/2
{
"a": 984968088
}
GET test/_search
{
"query": {
"function_score": {
"script_score": {
"script": {
"inline": "doc[\"a\"].value"
}
}
}
}
}
, dass die folgenden zurückkehren:
{
"took": 16,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 984968060,
"hits": [
{
"_index": "test",
"_type": "doc",
"_id": "2",
"_score": 984968060,
"_source": {
"a": 984968088
}
},
{
"_index": "test",
"_type": "doc",
"_id": "1",
"_score": 851459200,
"_source": {
"a": 851459198
}
}
]
}
}
Warum ist die _score
anders als der Wert des Feldes a
?
Ich verwende Elasticsearch 2.1.1