0
A
回答
0
以下是一種方法,你可以做到這一點,假設你提前知道領域。如果需要對字段進行通配,應該可以進行一些小改進。這假定嵌套類型的兄弟字段是數字的。
實施例的映射:
"test": {
"mappings": {
"type1": {
"properties": {
"field1": {
"properties": {
"key1": {
"type": "integer"
},
"key2": {
"type": "integer"
}
}
}
}
}
}
}
默認結果:
"hits": {
"total": 2,
"max_score": 1,
"hits": [
{
"_index": "test",
"_type": "type1",
"_id": "AV8O7956gIcGI2d5A_5g",
"_score": 1,
"_source": {
"field1": {
"key1": 11,
"key2": 17
}
}
},
{
"_index": "test",
"_type": "type1",
"_id": "AV8O78FqgIcGI2d5A_5f",
"_score": 1,
"_source": {
"field1": {
"key1": 5,
"key2": 6
}
}
}
]
}
查詢與腳本:
GET /test/_search
{
"query": {
"function_score": {
"query": {
"match_all": {}
},
"functions": [
{
"script_score": {
"script": "return (doc['field1.key1'].value + doc['field1.key2'].value) * -1"
}
}
]
}
}
}
邏輯取最低得分作爲最佳得分(在此情況下至少負):
{
"took": 18,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": -11,
"hits": [
{
"_index": "test",
"_type": "type1",
"_id": "AV8O78FqgIcGI2d5A_5f",
"_score": -11,
"_source": {
"field1": {
"key1": 5,
"key2": 6
}
}
},
{
"_index": "test",
"_type": "type1",
"_id": "AV8O7956gIcGI2d5A_5g",
"_score": -28,
"_source": {
"field1": {
"key1": 11,
"key2": 17
}
}
}
]
}
}
希望這會給你任何具體的得分邏輯你需要的要點
相關問題
- 1. ElasticSearch總嵌套領域
- 2. Elasticsearch:由某一特定領域
- 3. 從每個領域獲得總價值?
- 4. 獲得另外一個領域的領域中的領域的價值
- 5. jQuery的觀看某些領域的某些價值觀
- 6. Django的排除同一領域有着不同的價值觀
- 7. 組選擇一些領域的價值
- 8. 排序在一個新的領域
- 9. 排序多維數組PHP多個領域與價值
- 10. 排序JSON領域
- 11. 排除空數組領域 - 但包括文檔丟失的領域 - 在elasticsearch
- 12. 總和某一特定領域的通過匹配特定領域
- 13. Angularjs NG-值總和領域
- 14. 讀取多隨機值某一領域
- 15. 基於多個領域和時間條件的Elasticsearch排序
- 16. 蒙戈,集合在執行某一特定領域具有獨特的價值
- 17. 獲取的價值總和每月由特定領域
- 18. 如何獲得的價值總和爲特定領域
- 19. 我怎麼能一次選擇一個領域的其他領域有價值?
- 20. Java - 在領域獲得價值?
- 21. elasticsearch的多領域操作
- 22. Elasticsearch術語彙總排序
- 23. elasticsearch如何包括在比賽短語相同領域的許多價值觀
- 24. 在Elasticsearch上嵌套排序多個值
- 25. Django的某一領域的兩個過濾總數
- 26. 共同價值觀的B/W領域
- 27. LINQ排序依據同一領域不同的值
- 28. 排序在外殼處由某一個領域的文本文件/蟒蛇
- 29. 價值在一個領域中的查找另一個表中的表
- 30. ElasticSearch領域前綴爲「@」