【问题标题】:How to retrieve dynamic fields in SolrNet 3.6?如何在 SolrNet 3.6 中检索动态字段?
【发布时间】:2012-07-21 09:43:10
【问题描述】:

我们正在使用 SolrNet 3.6 开发 ASP.NET MVC3 C#。 我们使用了动态字段。已使用适当的数据成功创建了 Solr 索引,并且它在 Solr Admin 以及我们的应用程序中也可以在没有动态字段的情况下完美运行。
我们已经使用 QueryOption 检索了所有静态字段,如 Id、Name 等。

但我们不知道如何检索动态字段?

所以请建议我们如何检索它?

【问题讨论】:

    标签: solr solrnet


    【解决方案1】:

    使用 SolrNet 访问动态字段非常简单。下面是一个映射一组动态字符串字段的例子:

    schema.xml 中定义了以下字段

     <field name="dynamicFields_*" fieldType="string" stored="true" indexed="true" />
    

    那么让我们假设你已经索引了包含以下字段的文档:

    dynamicFields_item1
    dynamicFields_item2
    

    然后您将以下属性添加到您的 C# 类中:

     public class IndexItem
     {
        ...
    
        [SolrField("dynamicFields_")]
        Dictionary<string, string> DynamicFields { get; set;}
    
        ....
     }
    

    然后,一旦您查询了 Solr 并拥有一个 IndexItem 类,您就可以像这样访问动态数据字段:

    //already have gotten the indexItem before here
    
     var item1Value = indexItem.DynamicFields["item1"];
     var item2Value = indexItem.DynamicFields["item2"];
    

    希望这将帮助您在代码中使用动态字段...

    【讨论】:

    • 我正在使用 Solr 4.0 并遇到错误。我已经按照你的建议实施了。错误是:“System.Collections.ArrayList”类型的对象无法转换为“System.String”类型。可能是什么问题呢???是与较新版本的 solr 相关还是什么?
    【解决方案2】:

    您可以使用Luke Handler 检索所有索引字段(以及更多) - 静态和动态。例如。 http://localhost:8983/solr/admin/luke

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多