我剛開始使用的Solr和SolrNet。在我對當前項目進行太多調整之前,我想驗證自己是否正確。這是我想實現:Solr的和SolrNet問題,並指導
基本要求:
- 提供,搜索對多個實體(汽車,輪船,飛機,自行車等),我只是做了這些在這裏搜索解決方案。每個實體可以具有可變數量的非對稱數據的字段。
- 爲每個實體提供構面。
- 爲每個實體提供過濾器。
工作流程:
- 與長期用戶搜索。
- 四鏈路,一個用於每個實體已顯示具有數值旁邊指示每個實體的命中數。
- 用戶單擊一個鏈接並顯示該頁面的面和該實體的搜索結果。
所以,有了這一要求,這裏是我迄今所做的:
- 創建一個單一的指標,但與像car_name,car_model,car_company,ship_name,ship_model,ship_company每個實體的具體領域, ship_age,ship_size等
- 我在指數,其被設置爲實體之一的字段ENTITY_TYPE。
- ID在所有實體中都是唯一的。
- 我有一個DisMax搜索處理機solrconfig.xml中,在我把所有的領域(從所有實體)應搜索上。
這裏是我的DisMax搜索處理機的樣子:
<requestHandler name="DisMax" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="defType">edismax</str>
<str name="qf">
car_name car_company car_model ship_name ship_company ship_model ship_sailing_route plane_name plane_company plane_model bicycle_name bicycle_company bicycle_model
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
<str name="facet">on</str>
<str name="facet.field">car_comapny</str>
<str name="facet.field">car_model</str>
<str name="facet.field">ship_name</str>
<str name="facet.field">ship_company</str>
<str name="facet.field">ship_sailing_route</str>
...
</lst>
</requestHandler>
最後,這裏是我的問題:
- 這是一個索引的路線是正確的做法,或者我應該創建單獨的每個實體的索引?請解釋。
- 如果它們應該是單獨的索引,我如何在給定的術語上搜索它們?重要的是,我如何使用SolrNet來做到這一點?
- 有沒有一種方法可以搜索使用SolrNet的所有實體並檢索結果?或者是否需要爲每個實體分別執行查詢(可能會並行)使用相同的搜索詞?
- 我有應可作爲DisMax處理程序方面,你可以看到的所有字段的列表,這是正確的做法?如果不是,那是什麼?
我相信當我通過我的項目工作時,我會有更多的問題,但現在這會做。
您只是部分回答了我的問題,所以我不接受它作爲正式答案,但非常感謝您的意見。由於我索引的記錄量很低,因此我將使用單一索引。 – codelove 2012-04-17 14:30:35