【发布时间】:2016-12-08 08:59:46
【问题描述】:
我在无模式模式下使用 Solr 6.1。在创建集合并索引示例数据后,创建的字段都设置为 MultiValued = true,唯一 id 除外。
问题是当使用 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
【问题讨论】:
-
那么,你问是否有办法在无模式模式下建立索引,并且仍然以某种方式将一个字段设置为只有 singleValue,对吧?
-
是的,确切地说,我正在尝试以无模式模式运行 Solr,但动态字段创建正在将所有内容创建为多值类型。这样做会在将结果映射回模型而不将我的所有属性转换为 ICollection 类型时导致问题。
标签: indexing solr solrnet schemaless