2010-03-01 60 views
12

當您設置您的架構時,是否構建了內置搜索?還是您需要做一些設置?Solr和構面搜索

它基本上可以在您設置爲可排序的所有字段上開箱即用嗎?

那麼你只是使用fq查詢語法,它會返回facet xml連同搜索結果?

有沒有關於此的一篇不錯的文章,幫助你第一次呢?

回答

18

是的,你可以面向任何索引開箱即用。但是,直到configure faceting fields according to your data types之前,它可能不會給你預期的結果。

通過facet.* parameters啓用並使用分面,而不是fq。當用戶選擇方面值時使用fq。

一些很好的Solr教程:

+0

@Mauricio_Scheffer你知道的任何項目 - github上或CodePlex上 - 目前已刻面實施基準搜索 - Solr的Lucene的或 - ! brgds。 – 2013-01-16 11:32:54

+1

@sebastian_h問這個問題的適當位置是http://lucene.apache.org/solr/discussion.html。但是,你想要完全基準嗎?有幾十個影響Solr/Lucene性能的因素,配置,查詢和模式設計。 – 2013-01-16 14:52:26

+0

@Mauricio_Scheffer感謝您的回覆。因此,我對這個領域有了新的認識,我想知道C#中的任何項目是否可以看到實現solr的方法。 brgds! – 2013-01-16 15:57:53

10

是,只需添加&facet=true&facet.field={fieldname}到您請求的URL。

這裏是另一個教程:Faceting

+1

URL不再可找到。您可以用http://searchhub.org/2009/09/02/faceted-search-with-solr/ – paranza 2013-11-06 16:38:14

+0

替代它。謝謝。我會更新。 – 2013-11-06 16:46:50

2

下面的代碼在C#中,通過使用SolrNet包。 The Facet您可以在存儲在SOLR中的字段上執行該操作,確保其字符串沒有空間以獲得更好的結果。小數是用於限制最小數量以在方面列出。

 QueryOptions options = new QueryOptions 
     {     
      Facet = new FacetParameters 
      { 
       Queries = new ISolrFacetQuery[] 
       { 
        new SolrFacetFieldQuery("field1"), 
        new SolrFacetFieldQuery("field2") 
       }, 
       MinCount = 20 
      } 
     }; 

而下面的代碼來獲得結果,查詢 - 是在前端輸入的搜索。

var result = solr.Query(query, options);