Elasticsearch 7.3 Text字段排序与Scroll分批查询如何结合应用?

2026-05-06 05:480阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1301个文字,预计阅读时间需要6分钟。

Elasticsearch 7.3 Text字段排序与Scroll分批查询如何结合应用?

1、Text字段排序+场景:数据库中按某个Text字段排序,SQL只需写order by字段名即可,如对某个text field进行排序,es中无法排序。因为文档入队时,分词存储,es无法知道此字段的排序。

1、Text字段排序

场景:数据库中按照某个字段排序,sql只需写order by 字段名即可,如果es对一个text field进行排序,es中无法排序。因为文档入倒排索引表时,分词存入,es无法知道此字段的真实值。这样的结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了。

通常有两种解决办法:

  1. 将一个text field建立两次索引,一个分词,用来进行搜索;一个不分词,用来进行排序。
  2. mapping时设置fielddata:true,按照第一个分词进行字典序排序。这种方式也不是很准确,因为只是按照第一个分词进行排序,后续的分词不会参与排序。
阅读全文

本文共计1301个文字,预计阅读时间需要6分钟。

Elasticsearch 7.3 Text字段排序与Scroll分批查询如何结合应用?

1、Text字段排序+场景:数据库中按某个Text字段排序,SQL只需写order by字段名即可,如对某个text field进行排序,es中无法排序。因为文档入队时,分词存储,es无法知道此字段的排序。

1、Text字段排序

场景:数据库中按照某个字段排序,sql只需写order by 字段名即可,如果es对一个text field进行排序,es中无法排序。因为文档入倒排索引表时,分词存入,es无法知道此字段的真实值。这样的结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了。

通常有两种解决办法:

  1. 将一个text field建立两次索引,一个分词,用来进行搜索;一个不分词,用来进行排序。
  2. mapping时设置fielddata:true,按照第一个分词进行字典序排序。这种方式也不是很准确,因为只是按照第一个分词进行排序,后续的分词不会参与排序。
阅读全文