ElasticSearch 排序
1、相关性排序
ElasticSearch为了按照相关性来排序,需要将相关性表示为一个数值,在 Elasticsearch 中, 相关性得分 由一个浮点数进行表示,并在搜索结果中通过 _score
参数返回, 默认排序是 _score
降序。
GET /index_china/fulltext/_search { "query": { "match": { "name": "小张" } } }
2、按照字段排序
有时,按照相关性评分排序并没有意义,下面的例子通过年龄来对 name 进行排序是有意义的,按照年龄排序,可以使用 sort
参数进行实现:
GET /index_china/fulltext/_search { "query": { "match": { "name": "小张" } }, "sort": "age" }
默认是按照年龄升序
下面是安装年龄降序
GET /index_china/fulltext/_search { "query": { "match": { "name": "小张" } }, "sort": { "age": { "order": "desc" }} }
3、多级排序
用 age
和 _score
进行查询,并且匹配的结果首先按照年龄排序,然后按照相关性排序
GET /index_china/fulltext/_search { "query": { "match_all": {} }, "sort":[ {"age":{"order":"asc"}}, {"_score":{"order":"desc"}}] }