ich diese Art von groovy Skript:Elasticsearch: _score immer 0 für tf()
_index[field][term].tf()
Ich Indizierung dieses groovy Skript
POST /_scripts/groovy/getTF
{
"script": "_index[field][term].tf()"
}
Dann die folgende Abfrage läuft immer wieder _score sein Null (Sense-Befehl)
POST /my_index/document/_search
{
"query": {
"function_score": {
"query": {
"match": {
"text": "algorithms"
}
},
"functions": [
{
"script_score": {
"script_id": "getTF",
"lang" : "groovy",
"params": {
"term": "algorithms",
"field": "text"
}
}
}
],
"boost_mode": "replace"
}
},
"size": 10,
"fields": ["text"]
}
Was mache ich hier falsch?
Dies ist die Abbildung für die Felder
PUT /ap_dataset/document/_mapping
{
"document": {
"properties": {
"docno": {
"type": "string",
"store": true,
"index": "not_analyzed"
},
"text": {
"type": "string",
"store": true,
"index": "analyzed",
"term_vector": "with_positions_offsets_payloads",
"analyzer": "my_english"
}
}
}
}
Können Sie den Inhalt des Felds 'text' eines der Dokumente teilen, die übereinstimmen? Auch das Mapping dieses Feldes? –
@AndreiStefan Die Zuordnungen wurden hinzugefügt. Auch der 'Text' ist ein großer Absatz. Ich bin mir nicht sicher, ob ich es teilen möchte. Aber hat die Bedingungen, nach denen ich in der obigen Post suche –
Sind Sie sicher, dass die Dokumente diesen Begriff in ihnen in diesem Feld haben? Wie hast du das überprüft? –