首页 > 编程知识 正文

默认情况下,文本字段禁用字段数据.在[xxx]上设置fielddata=true

时间:2023-05-06 08:08:51 阅读:252366 作者:4501

使用es查询的时候报错:
Fielddata is disabled on text fields by default. Set fielddata=true on [createTime] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.

java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [createTime] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.at org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:779) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:116) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.index.query.QueryShardContext.getForField(QueryShardContext.java:177) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:353) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:153) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService.parseSource(SearchService.java:808) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService.createContext(SearchService.java:637) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:596) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService.executeDfsPhase(SearchService.java:324) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService.access$000(SearchService.java:126) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService$1.onResponse(SearchService.java:310) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService$1.onResponse(SearchService.java:306) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.search.SearchService$4.doRun(SearchService.java:1107) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:41) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:751) ~[elasticsearch-6.8.7.jar:6.8.7]at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) ~[elasticsearch-6.8.7.jar:6.8.7]at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_241]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_241]at java.lang.Thread.run(Thread.java:748) [na:1.8.0_241]

这个报错大概就是说使用的字段类型不可以排序(个人理解)

最开始是使用createTime排序,但是发现报错。
后来又创建了个sortTime专门是排序使用的,设置的是long类型。解决了,不再报错了!

=================
欢迎大神指导,可以留言交流!

======================
本人原创文章,转载注明出入!

=================

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。