我第一次使用Solr和Solrnet。SolrNet多面搜索
我已成功地創建一個模式,它具有在他們之中以下字段:
created_date DateTime
parent_id int
categories string multi-valued
我已經能夠得到一個基本的搜索對parent_id
領域工作,像這樣:
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<SolrNode>>();
ICollection<SolrNode> results = solr.Query(new SolrQueryByField("parent_id", currentNode.Id.ToString()));
我已經能夠找出(種)如何回報方面我所有的結果,像這樣:
var solrFacet = ServiceLocator.Current.GetInstance<ISolrOperations<SolrNode>>();
var r = solrFacet.Query(SolrQuery.All, new QueryOptions
{
Rows = 0,
Facet = new FacetParameters
{
Queries = new[] {
//new SolrFacetDateQuery("created_date", DateTime.Now /* range start */, DateTime.Now.AddMonths(-6) /* range end */, "+1DAY" /* gap */) {
// HardEnd = true,
// Other = new[] {FacetDateOther.After, FacetDateOther.Before}
//}
new SolrFacetDateQuery("created_date", new DateTime(2011, 1, 1).AddDays(-1) /* range start */, new DateTime(2014, 1, 1).AddMonths(1) /* range end */, "+1MONTH" /* gap */) {
HardEnd = true,
Other = new[] {FacetDateOther.After, FacetDateOther.Before}
}
//,
//new SolrFacetFieldQuery("categories")
},
}
});
//foreach (var facet in r.FacetFields["categories"])
//{
// this.DebugLiteral.Text += string.Format("{0}: {1}{2}", facet.Key, facet.Value, "<br />");
//}
DateFacetingResult dateFacetResult = r.FacetDates["created_date"];
foreach (KeyValuePair<DateTime, int> dr in dateFacetResult.DateResults)
{
this.DebugLiteral.Text += string.Format("{0}: {1}{2}", dr.Key, dr.Value, "<br />");
}
但是我無法弄清楚的是如何將它們放在一起。我的要求如下:
的網頁加載 - 顯示其中PARENT_ID匹配的搜索結果N.查詢方面,並顯示勾選框像這樣的方面所有的搜索結果:
分類
- 類別1
- 類別2
在
- 上週
- 上個月
- 最近3個月
- 最近6個月
- 所有時間
用戶點擊相關的勾選框,然後代碼執行另一個Solr的查詢,通過在這兩個parent_id標準以及用戶選擇的構面。
我在我的描述中意識到我已經簡化了這個過程,也許在StackOverflow上提出的問題是一個相當大的問題,所以我當然不會期待一個可行的例子(儘管如果你覺得無聊, - ))但任何人都可以提供任何指針或示例? SolrNet確實有一個MVC示例應用程序,但我正在使用WebForms,並且對MVC還不是很滿意。
任何幫助將不勝感激。
在此先感謝 鋁