バリューのランタイムタイプ

(The bot translated the original post https://lists.apache.org/thread/hn3bsxp53m0bw42279qx9m0grf3lvcgy into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)
こんにちは!
クライアントAPIでは、インデックスに追加するドキュメントを指定できます。
例えば:
final var document = new SolrInputDocument();
document.addField("x", "a");
document.addField("y", "b");
document.addField("z", "c");
client.add(collection, document);
サーバー側にスキーマがあり、そこに「x」「y」「z」の型が定義されている場合、ドキュメントのインデックス作成時に正しい型が割り当てられます。ただし、これらのフィールドがスキーマに存在しない場合、ほぼ間違いなくテキスト型のようなフォールバック型が割り当てられるでしょう。
addField()
メソッドのドキュメントには次のように記載されています:
"既存の値があってもなくてもフィールド値を追加します。valueパラメータとnameパラメータのクラス型はschema.xmlに一致する必要があります。schema.xmlはデフォルトでsolr homeのconfディレクトリ内にあります。"
パラメータ:
name – フィールド名。schema.xml内の "fields" タグで定義されたフィールド名の1つに一致する必要があります。
value – フィールド値。schema.xmlで該当フィールドの"type"属性で定義されたクラス型と同じクラス型である必要があります。
この記述から、「同じクラス型」とは、solr.UUIDField
や solr.BoolField
などの solr.*
型を指していると推測されます。しかし、このドキュメントはすでに誤りを含んでいるようです。なぜなら、上記の例では明らかに文字列定数値を渡していても問題なく受け入れられているからです。
実際に solr.*
クラスの値を提供しようとすると、solr-core
を依存関係として取り込む必要があります。しかし、それにより大量のサーバー側コンポーネントが含まれるようになります。それでも、例えば solr.UUIDField
の値をどうやって作成すればよいのか明確ではありません。これらのクラスはフィールドの型に関するものであり、フィールドの値についてではないようです。
スキーマ内のほとんどのフィールドの型を指定することは可能ですが、一部のフィールドについては事前に正確な型を把握していません。これらのフィールドに対して、単なるテキスト型以上に精密な型が推論されるように値をAPIに渡すには、どうすればよいのでしょうか?
--
Mark Raynsford | https://www.io7m.com
トピックへ返信するには、ログインが必要です。