Elasticsearch 排序优化实战指南
一 基础与原理
GET /test_index/_search
{
"query": { "match": { "username": "alfred" } },
"sort": [
{ "birth_date": { "order": "DESC" } },
{ "_score": { "order": "DESC" } },
{ "_doc": { "order": "DESC" } }
]
}
二 字段与映射设计
"username": { "type": "text", "fields": { "raw": { "type": "keyword" } } }),排序用 username.raw。避免对 text 启用 fielddata。PUT /logs
{
"mappings": {
"properties": {
"session_id": { "type": "keyword", "doc_values": false }
}
}
}
min/max/avg/sum)控制;对缺失字段用 missing 指定位置(如 "missing": "_last")避免干扰主排序。三 查询与排序写法
GET /stores/_search
{
"query": { "match_all": {} },
"sort": [
{
"_geo_distance": {
"location": { "lat": 39.9087, "lon": 116.3975 },
"order": "asc",
"unit": "km"
}
}
]
}
四 分页与深翻页策略
五 资源与稳定性
# elasticsearch.yml
indices.breaker.fielddata.limit: 40%
indices.breaker.request.limit: 15%
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。