2012-04-03 39 views
0

我正在嘗試將我的Lucene搜索解決方案放在一起,而且我很難搞清楚如何啓動。按多個索引編號的分區Lucene索引

  • 在我的網站上,我想要一次搜索跨越模型中5種不同類型的對象。
  • 我想我的結果回來作爲一個列表,最佳匹配排序第一,有辦法來區分類型,以便我可以顯示適當
  • 我們的系統拆分到我們所說的網站的數據。我想通過網站爲5個不同的模型對象建立索引。搜索將始終由網站完成。

我不知道從哪裏開始索引此係統以獲得最佳性能。我也不確定如何最好地實施搜索這個設置。任何建議,articalse,和例子,不勝感激。

編輯:

既然已經說這是過於寬泛,

比方說,我有3個站點,站點1,站點2,站點3

比方說,我索引狗,貓和倉鼠。每種類型的記錄都鏈接到一個網站。

所以,舉例來說,我的數據可能是(類型,名稱,SITEID)

Dog, "Fido" 1 
Cat, "Sprinkles", 2 
Hamster, "Sprinkles", 2 
Cat, "Mr. Pretty", 3 
Cat, "Mr. Pretty 2", 3 

所以,當我做一搜「漂亮先生」,我想針對特定的網站ID。如果我違反網站ID 1,我會得到0結果。如果我對搜索網站的ID 3,我會得到

Mr. Pretty 
Mr. Pretty 2 

如果我搜索「灑」在現場2,我就知道一個結果是一隻貓,另一結果是倉鼠。

什麼是我可以去實現這種搜索索引的最佳方式?

+0

這太寬泛了,無法在這裏回答。您可能需要查看Solr,SolrCloud或ElasticSearch或Sensei。 – bmargulies 2012-04-03 21:08:29

+0

這些都很好,但我不能使用它們。只需要我使用Lucene.net的權力。 – Josh 2012-04-03 21:34:31

+1

難道你不是簡單地爲每個文檔添加一個SiteID字段,並始終讓你的查詢的一部分? – goalie7960 2012-04-03 22:00:40

回答

2

根據goalie7960的建議,您可以爲每個文檔添加一個「SiteID」,併爲查詢添加一個查詢詞,如siteid:3,以便僅從本網站檢索文檔。您還可以通過爲每個不同站點創建和存儲Filter來提高性能,因此您可以將其應用於對應的查詢。

關於同一索引中的不同類型,您可以使用相同的策略。爲每個具有相應類型的文檔(可能只是一個ID)創建一個「類型」字段。 Elasticsearch使用相同的策略在同一索引中具有不同的可區分類型。同樣,您可以在類型上使用過濾器來加速查詢(Elasticsearch也是如此)。