【Elasticsearch】搜索时排序规则

https://www.elastic.co/guide/en/elasticsearch/reference/8.17/sort-search-results.html

它详细介绍了如何在 Elasticsearch 中对搜索结果进行排序,包括按字段排序、地理距离排序、脚本排序、嵌套字段排序等多种排序方式。以下是网页的主要内容总结,特别关注数值型字段排序及其可能存在的问题:

---

1.按字段排序(Field Sorting)

Elasticsearch 允许对一个或多个字段进行排序,支持升序(`asc`)和降序(`desc`)。

示例:

```json

GET /my-index-000001/_search

{

  "sort": [

    { "post_date": { "order": "asc" } },

    { "name": { "order": "desc" } }

  ],

  "query": { "term": { "user": "kimchy" } }

}

```

2.特殊字段排序

• `_score`:按相关性分数排序。

• `_doc`:按索引顺序排序,这是最高效的排序方式,适用于不需要特定排序逻辑的场景。

3.优化排序性能

• 避免对`text`类型字段排序,推荐使用`keyword`或数值类型字段。

• 可以通过索引时的预排序(index sorting)来优化查询时的排序性能。

4.多值字段排序(Multi-Value Fields)

支持多值字段的排序,可以通过`mode`参数选择排序值(如`min`、`max`、`avg`、`sum`、`median`)。

示例:

```json

GET /my-index-000001/_search

{

  "sort": [

    { "price": { "o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值