FESS 14.3.0とElasticsearch 8.3.3を利用しています
データストアでデータをCSVから読み込み、スクリプトでフィールドを追加しています
fess_config.propertiesのquery.additional.search.fields等に設定し、
追加フィールドを検索結果として表示できることを確認しましたが、
追加フィールドをソートオプションに追加し、検索したところ下記例外が発生しています
追加フィールド名=hoge
OpenSearchStatusException[OpenSearch exception [type=search_phase_execution_exception, reason=all shards failed]]; nested: OpenSearchException[OpenSearch exception [type=illegal_argument_exception, reason=Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [hoge] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]]; nested: OpenSearchException[OpenSearch exception [type=illegal_argument_exception, reason=Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [hoge] in order to load field data by uninverting the inverted index. Note that this can use significant memory.]];
at org.opensearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:202)
at org.codelibs.fesen.client.action.HttpAction.toOpenSearchException(HttpAction.java:138)
at org.codelibs.fesen.client.action.HttpSearchAction.lambda$execute$0(HttpSearchAction.java:48)
at org.codelibs.curl.CurlRequest.lambda$execute$4(CurlRequest.java:238)
at org.codelibs.curl.CurlRequest.lambda$connect$3(CurlRequest.java:209)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1395)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Suppressed: OpenSearchException[hits is null.]
… 9 more
この例外の内容はhogeをkeyword型とする、または、fielddata=trueとする必要があると認識していますが、
この追加フィールドhogeをkeyword型とするにはどうしたらよいでしょうか?
現在の設定方法ではデータストアのスクリプトに「hoge=cell1」と記述しており、
ダッシュボードのrestからREQUESTで確認すると下記のような設定になっています。
“hoge”: {
“type”: “text”,
“fields”: {
“keyword”: {
“type”: “keyword”,
“ignore_above”: 256
}
}
参考にフォーラム内で検索したところ下記トピックが近い内容で、
特に一番上のトピックはエラー内容のkeyward型を利用するというものと同じであるかと思いますが、
型の変更についてどのようにすればよいか分かりませんでした
よろしくお願いいたします