私はSchemalessモードでSolr 6.1を使用しています。コレクションを作成してサンプルデータを索引付けした後、作成されたフィールドはすべて一意のIDを除いてMultiValued = trueに設定されました。Solr SchemalessモードでMultiValuedフィールドを作成する
SolrNetを使用してこのデータをクエリすると、結果がモデルに正しくマップされません。クエリ結果は配列として返され、モデル内のすべてのプロパティがICollection型に更新される必要があります。
サンプルデータのインデックスを作成するときに、これらのフィールドをMultiValued = falseに設定することはできますか?
問題説明する例:
1)インデックススキーマレスモードで次のモデルのサンプル:
public class TestModel
{
[SolrUniqueKey("id")]
public int Id { get; set; }
[SolrField("guid")]
public Guid Guid { get; set; }
}
2)Solrの管理・スキーマファイルは、次のフィールド
に追加されますモデルの照会/マッピング中<field name="guid" type="strings"/>
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
3)エラー
Object of type 'System.Collections.ArrayList' cannot be converted to type
したがって、スキーマレスモードでインデックスを作成する方法があるのかどうかを尋ねて、何らかの方法で1つのフィールドにsingleValueだけを設定するのは正しいでしょうか? – Mysterion
はい、私はスキーマレスモードでSolrを実行しようとしていますが、動的フィールドの作成はすべてを多値型として作成しています。そうすることで、すべてのプロパティをICollectionタイプに変換せずに、結果をモデルに戻すときに問題が発生します。 –