【发布时间】:2012-07-21 09:43:10
【问题描述】:
我们正在使用 SolrNet 3.6 开发 ASP.NET MVC3 C#。
我们使用了动态字段。已使用适当的数据成功创建了 Solr 索引,并且它在 Solr Admin 以及我们的应用程序中也可以在没有动态字段的情况下完美运行。
我们已经使用 QueryOption 检索了所有静态字段,如 Id、Name 等。
但我们不知道如何检索动态字段?
所以请建议我们如何检索它?
【问题讨论】:
我们正在使用 SolrNet 3.6 开发 ASP.NET MVC3 C#。
我们使用了动态字段。已使用适当的数据成功创建了 Solr 索引,并且它在 Solr Admin 以及我们的应用程序中也可以在没有动态字段的情况下完美运行。
我们已经使用 QueryOption 检索了所有静态字段,如 Id、Name 等。
但我们不知道如何检索动态字段?
所以请建议我们如何检索它?
【问题讨论】:
使用 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"];
希望这将帮助您在代码中使用动态字段...
【讨论】:
您可以使用Luke Handler 检索所有索引字段(以及更多) - 静态和动态。例如。
http://localhost:8983/solr/admin/luke 。
【讨论】: