我在無模式模式下使用Solr 6.1。在創建一個樣本數據的集合和索引之後,創建的字段都被設置爲MultiValued = true,唯一的ID除外。Solr無模式創建字段爲MultiValued
問題是,當使用SolrNet查詢這些數據時,它不會將結果正確映射到模型。查詢結果作爲數組返回並要求模型中的所有屬性都更新爲ICollection類型。
是否有無論如何我們可以設置這些領域MultiValued =假索引樣本數據?
一個例子來說明這個問題:
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
因此,你問是否有一種方法在無模式下進行索引,並以某種方式設置一個字段只有singleValue,對嗎? – Mysterion
是的,我試圖在無模式下運行Solr,但動態字段創建是將所有東西都創建爲多值類型。這樣做時將結果映射回模型而不將所有屬性轉換爲ICollection類型都會導致問題。 –