我使用Solr製作了基於asp.net的solrnet產品目錄,到目前爲止,所有工作都非常順利。我需要通過添加一些分組選項來擴展搜索結果。Solr/SolrNet分組結果
首先,我將解釋如何架構看起來像:
<field name="product_id" type="string" indexed="true" stored="true" required="true" />
<field name="name" type="string" indexed="true" stored="true"/>
<field name="merchant" type="string" indexed="true" stored="true"/>
<field name="merchant_id" type="int" indexed="false" stored="true"/>
<field name="merchant_logo" type="string" indexed="false" stored="true"/>
<field name="brand" type="string" indexed="true" stored="true"/>
<field name="brand_id" type="int" indexed="false" stored="true"/>
<field name="group_id" type="int" indexed="true" stored="true"/>
<field name="group_name" type="string" indexed="true" stored="true"/>
<field name="has_group" type="boolean" indexed="true" stored="true"/>
所以當你看到上面的產品有一個「GROUP_ID」和「組名」我也有一個名爲布爾標誌「有組」在我的模式上。
這裏有一些產品的例子導致
Product A – group id 1 - group Name 1 – has group true
Product B – group id 1 - group Name 1 – has group true
Product C – group id 2 - group Name 2 – has group true
Product D – group id 2 - group Name 2 – has group true
Product E – has group false
Product F – has group false
但是當我展示這些成果,我需要它的組名顯示在頂部的結果組名稱(或ID)的產品。並且不屬於一個組的產品將在組之後列出。
所以我的結果應該是這樣的:
Group Name 1
Group Name 2
Product E
Product F
事實上,我需要實現分頁一樣,所以換句話說,當有人搜索某一產品,如果產品中含有組名,我會一一列舉在結果和其他產品之上。
這甚至可能嗎?如果可能的話,我需要做些什麼。我已經閱讀過有關Solr中的FieldCollapsing,但我仍然不知道這是否正確的方法http://wiki.apache.org/solr/FieldCollapsing
分組是否影響結果或僅用於顯示? (即只顯示Solr返回的組) – 2011-05-01 16:53:41
當前當我現在搜索產品時,它的工作方式是混合具有組數據的產品和沒有組數據的產品。基本上,當我打印產品結果時,我需要先打印產品組名稱(只有組名),然後再打印其他產品。 Solr本身是否支持分組Solr結果?因爲我需要使用分頁結果以及分面。所以可能是我正在尋找的是用於分組的Solr查詢。 – randika 2011-05-01 18:18:29
我問的是:你需要在整個索引中分組結果嗎?或者只在一個結果頁面內? – 2011-05-01 18:24:18