Elasticsearch7.3教程(二十二)有哪些重点内容?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1315个文字,预计阅读时间需要6分钟。
1. Text字段排序+场景:数据库中按某个字段排序,SQL只需写`order by 字段名`即可,如`order by text`。但若对text字段排序,由于文档入退排序索引表时,分词存储,es无法排序。
1、Text字段排序场景:数据库中按照某个字段排序,sql只需写order by 字段名即可,如果es对一个text field进行排序,es中无法排序。因为文档入倒排索引表时,分词存入,es无法知道此字段的真实值。这样的结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了。
通常有两种解决办法:
- 将一个text field建立两次索引,一个分词,用来进行搜索;一个不分词,用来进行排序。
- mapping时设置
fielddata:true,按照第一个分词进行字典序排序。这种方式也不是很准确,因为只是按照第一个分词进行排序,后续的分词不会参与排序。
本文共计1315个文字,预计阅读时间需要6分钟。
1. Text字段排序+场景:数据库中按某个字段排序,SQL只需写`order by 字段名`即可,如`order by text`。但若对text字段排序,由于文档入退排序索引表时,分词存储,es无法排序。
1、Text字段排序场景:数据库中按照某个字段排序,sql只需写order by 字段名即可,如果es对一个text field进行排序,es中无法排序。因为文档入倒排索引表时,分词存入,es无法知道此字段的真实值。这样的结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了。
通常有两种解决办法:
- 将一个text field建立两次索引,一个分词,用来进行搜索;一个不分词,用来进行排序。
- mapping时设置
fielddata:true,按照第一个分词进行字典序排序。这种方式也不是很准确,因为只是按照第一个分词进行排序,后续的分词不会参与排序。

