我有一个相当“复杂”的场景,我需要能够处理来自n个源的信息 - 每个源都有自己的结构。我已经为数据转换目的构建了一个灵活的“黑盒子”,这使得可以描述给定源可用的列/属性。它还可以创建多值属性,而任何数量的列都可以聚合并索引到Solr字段中。
我希望能够尽可能灵活地处理这个问题,因此我想使用SolrNet提供的各种映射方法。阅读“Solr Mapping Document”之后,似乎“完全松散的映射”可能会提供我正在寻找的东西。
现在,只是为了确保我理解这一点:我是否还有可能提供“str_title”作为词典中的键,并说“A Title”作为词典中的值并且它会被正确映射到上面提到的声明吗?
如果有人能帮助我,我真的很感激,因为这会影响到如何继续......
希望这是有道理的:)
答案 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查询的结果。