我有這個字段映射Elasticsearch排序字段
"my_field":{
"long"
}
此字段只能取四個值「1,2,3,4」。 而且我想按這個字段「my_field」對文檔進行排序:顯示的第一個文檔是my_field爲1,3或4的地方,my_field = 2的地方顯示爲最後一個。
我已經嘗試做一些事情來重新定位my_field = 2但其無法正常工作的文檔。
"rescore": [
{
"query": {
"rescore_query": {
"match": {
"my_field": {
"query": 2,
"slop": 1
}
}
},
"query_weight": 0.0001,
"rescore_query_weight": 0.0001
}
}
],
我怎樣才能通過my_field值獲得結果以便像如下:1,3,4,2
映射:
{
"index_name" : {
"mappings" : {
"type_name" : {
"properties" : {
"address" : {
"type" : "string"
},
"country_id" : {
"type" : "long"
},
"county_id" : {
"type" : "long"
},
"created" : {
"type" : "long"
},
"my_field":{
"long"
}
}
}
}
這是查詢:
{
"fields": [
"_source"
],
"query": {
"terms": {
"my_field": [
1,
2
]
}
},
"rescore": [
{
"query": {
"rescore_query": {
"match": {
"my_field": {
"query": 2
}
}
},
"query_weight": 0.1,
"rescore_query_weight": 1
}
},
{
"query": {
"rescore_query": {
"match": {
"my_field": {
"query": 1
}
}
},
"query_weight": 1,
"rescore_query_weight": 33
}
}
]
}
我在這裏發佈的只是我的嘗試增加my_field的分數,其中值爲1和decrase爲值2
您可以發佈的。映射這個索引,也許還有一些來自查詢本身(你只發布了「rescore」嘗試)? – 2014-09-25 10:34:59
你究竟想要查詢什麼?你只想分類文件,或者你正在尋找其他的東西,以及? (例如,按地址搜索並按「my_field」排序生成的文檔) – 2014-09-25 11:18:26
我已經定義了一個查詢,並且希望我的文檔按「my_field」值進行排序 - 1,3,4,2 – KB9 2014-09-25 12:58:18