SolrNet适当的映射方法

时间:2011-11-22 12:23:15

标签: dynamic mapping field solrnet

我有一个相当“复杂”的场景,我需要能够处理来自n个源的信息 - 每个源都有自己的结构。我已经为数据转换目的构建了一个灵活的“黑盒子”,这使得可以描述给定源可用的列/属性。它还可以创建多值属性,而任何数量的列都可以聚合并索引到Solr字段中。

我希望能够尽可能灵活地处理这个问题,因此我想使用SolrNet提供的各种映射方法。阅读“Solr Mapping Document”之后,似乎“完全松散的映射”可能会提供我正在寻找的东西。

现在,只是为了确保我理解这一点:我是否还有可能提供“str_title”作为词典中的键,并说“A Title”作为词典中的值并且它会被正确映射到上面提到的声明吗?

如果有人能帮助我,我真的很感激,因为这会影响到如何继续......

希望这是有道理的:)

1 个答案:

答案 0 :(得分:2)

是的,完全松散的映射将使您能够按照您的描述定义映射并获得预期的Solr索引结果。

修改

您可以执行以下操作,这将在两侧进行映射...

 <dynamicField name="str_*" type="string" ... />

然后映射如下,这将适用于插入和检索索引中的文档。

传统制图:

 [SolrField("str_")]
 Dictionary<string, object> myDynamicStrings { get; set; }

然后,您可以像下面这样添加到词典项目中:

myDynamicStrings.Add("title", "A title");

完全松散的映射:

  Dictionary<string object> myDynamicFields { get; set; }
  myDynamicFields.add("str_title", "A title");

同样适用于解析/访问Solr查询的结果。