前言
ES的查詢經(jīng)歷 from + size、Scroll、SearchAfter等方式,都是為了逐一解決查詢帶來的性能問題碰凶,目前search after的查分方式最優(yōu)
使用
GET twitter/_search
{
"size": 10,
"query": {
"match" : {
"title" : "elasticsearch"
}
},
"search_after": [1463538857, "654323"],
"sort": [
{"date": "asc"},
{"_id": "desc"}
]
}
在上述的查詢中,發(fā)現(xiàn)是沒有score得分的,但是如何才能返回score分數(shù)哪适揉?
獲取score
Tips: 按照 _score進行排序即可;
{
"query": {
"bool": {
"filter": [
{
"term": {
"docId": "2019_08_09_d0f4bfd720807a162bc228f1e8b65f7d"
}
}
],
"must_not": [],
"should": [
{
"match": {
"title": "elasticsearch"
}
}
]
}
},
"from": 0,
"size": 10,
"sort": [
{
"_score": "asc"
}
],
"aggs": {},
"search_after": [
0
]
}
返回結果:
"hits": {
"total": 1,
"max_score": null,
"hits": [
{
"_index": "mf_index_2019-08-09",
"_type": "docs",
"_id": "d0f4bfd720807a162bc228f1e8b65f7d",
"_score": 10.90702,
"_routing": "e37a0b0e72e44eb4b98a1ef58be206cd",
"_source": {
"country": "中國大陸",
"spamTag": "other",
"hyTaskType": "實時任務",
"pubTime": 1565348785000,