マルチバリューフィールドのデフォルト値として複数の値を指定する方法は?

トピック作成者:ks-solruserml-bot (2024/08/06 21:49 投稿)
2
CloseClose

(The bot translated the original post https://lists.apache.org/thread/f5lz7vb01cmrlm6rgc5whn1lw1qdlsqz into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

これは非常に簡単なことのように思えますが、私にはうまくいかず、その理由が分かりません。

以下のようなマルチバリューフィールドを持っている場合、

<field name="domain" type="string" stored="true" indexed="true" multiValued="true" default="en,jp"/>

ドキュメントをインデックスすると、文字列 "en,jp" が作成されるだけで、文字列の配列にはなりません。デフォルト値を ["en","jp"] として表示させるにはどうすれば良いのでしょうか?

返信投稿者:ks-solruserml-bot (2024/08/06 21:50 投稿)

こんにちは、

それはかなり実現可能に見えますが、現時点では実際には不可能です。

https://github.com/apache/solr/blob/main/solr/core/src/java/org/apache/solr/update/DocumentBuilder.java#L280

--
よろしくお願いします、
Mikhail Khludnev

返信投稿者:ks-solruserml-bot (2024/08/06 21:50 投稿)

複数の copyFields を使用し、ターゲットがそのフィールドになるように設定すれば、うまくいくかもしれません。ただし、正確な設定を見つけるためにはいくつかのテストが必要です。

というのも、ターゲットが非多値フィールドであり、そのフィールドにすでに値がある場合に copyField を使用すると、「非多値フィールドに複数の値を入れようとしています」という例外が発生します。逆の操作もおそらくうまくいくはずです。

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?