【问题标题】:SolrNet proper mapping approachSolrNet 正确的映射方法
【发布时间】:2011-11-22 12:23:14
【问题描述】:

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

我希望能够尽可能灵活地处理此问题,因此我希望使用通过 SolrNet 提供的各种映射方法。阅读“Solr 映射文档”后,似乎“完全松散的映射”可能会提供我正在寻找的内容。

现在,只是为了确保我正确理解这一点:我是否仍然有可能提供,例如,“str_title”作为字典中的键,例如,“A Title”作为字典中的值,它会正确映射到上述声明吗?

如果有人能帮我解决这个问题,我真的很感激,因为这将对如何继续产生影响......

希望这是有道理的:)

【问题讨论】:

    标签: dynamic mapping field solrnet


    【解决方案1】:

    是的,完全松散的映射将使您能够按照您的描述定义映射并获得预期的 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 查询的结果也是如此。

    【讨论】:

    • 嗨佩奇!听起来不错,但我想在我的原始帖子中添加一些东西,因为它似乎已经消失了:( . 所以你要确认的是,如果我提供 key="str_title" 和 value="A Title" 这将被 SolrNet 提供的松散映射成功映射?
    • 请参阅编辑以获取示例...此外,如果您编辑问题并在代码 sn-ps 周围加上勾号 ` ,它们将显示出来。
    • @PaigeCook :这个答案是正确的,但我认为 Kodo 是在询问 code.google.com/p/solrnet/wiki/Mapping#Fully_loose_mapping 中描述的“完全松散映射”选项,即直接使用字典而不是具有 SolrField 属性的自定义类(是的,这也将按预期工作)
    • @MauricioScheffer 好点,我在回答中忽略了“完全松散的映射”。我已经更新它以包括两者。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2020-08-02
    相关资源
    最近更新 更多