我們正在使用SolrNet 3.6開發ASP.NET MVC3 C#。 我們已經使用動態fields.Solr索引已成功創建與適當的數據,它在Solr管理員以及我們的應用程序中也完美地工作,也沒有動態字段。
我們使用QueryOption和所有這些檢索了所有靜態字段,如Id,Name等。如何檢索SolrNet 3.6中的動態字段?
但我們不知道如何檢索動態字段?
那麼請向我們建議如何檢索它?
我們正在使用SolrNet 3.6開發ASP.NET MVC3 C#。 我們已經使用動態fields.Solr索引已成功創建與適當的數據,它在Solr管理員以及我們的應用程序中也完美地工作,也沒有動態字段。
我們使用QueryOption和所有這些檢索了所有靜態字段,如Id,Name等。如何檢索SolrNet 3.6中的動態字段?
但我們不知道如何檢索動態字段?
那麼請向我們建議如何檢索它?
使用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
。
你有爲此更改SolrQueryExecutor。請參閱http://stackoverflow.com/questions/13393700/how-we-changes-standard-query-handler – cuh 2014-01-17 13:23:39
我正在使用Solr 4.0並掙扎於一個錯誤。我已經實現了你的建議。錯誤是:無法將類型'System.Collections.ArrayList'的對象轉換爲類型'System.String'。可能是什麼問題呢???是與更新版本的solr或什麼有關? – 2012-12-27 10:18:58