これは新しい変更だと思いますが、このマッピングの何が問題なのか分かりません。これは_mappingコールを通じてElasticSearchに登録フィールドのマッピングから取得されます:ElasticSearch 5.xテキストフィールドでのソート
"key": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
私は一種の「キー」フィールドを使用して、私はこの例外を取得する場合。 fieldData = trueを追加しようとしましたが、それもうまくいきませんでした。まず
Caused by: RemoteTransportException[[_6qwpaI][127.0.0.1:9300][indices:data/read/search[phase/query]]]; nested: IllegalArgumentException[Fielddata is disabled on text fields by default. Set fielddata=true on [key] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.];
Caused by: java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [key] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory.
at org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:335)
at org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:111)
at org.elasticsearch.index.query.QueryShardContext.getForField(QueryShardContext.java:167)
at org.elasticsearch.search.sort.FieldSortBuilder.build(FieldSortBuilder.java:281)
at org.elasticsearch.search.sort.SortBuilder.buildSort(SortBuilder.java:151)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:678)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:536)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:502)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:243)
at org.elasticsearch.action.search.SearchTransportService.lambda$registerRequestHandler$6(SearchTransportService.java:276)
at org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33)
at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
at org.elasticsearch.transport.TransportService$6.doRun(TransportService.java:550)
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:527)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
その後、私は、これが機能しない理由何らかの理由が表示されていない、私はこれはフィールド(例えばkey.keyword)の使用に関連するかもしれないと思ったが、私はそれをやっていないよので、 。
私はElasticSearch 5.xの新機能です。ドキュメント自体は矛盾していますので、誰かが正しい方向に向けることを願っています。
https://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html
私は基本的に5.xのまで働いていたこの元のマッピングと同じ達成しようとしています:ところで
"mapping": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"ignore_above": 256
},
"english": {
"type": "string",
"analyzer": "english"
}
}
}
、私がキーワードだと思うこれは私が言及するものですフィールドは私のマッピングで定義していないので自動生成されます。
この問題を解決できましたか?私は同様の問題に直面している:( – askids
あなたのケースを助けるかどうかを確認するために、以下の答えを見てください。 – juminoz