2013-06-21 83 views
1

我有4個索引文件。 1.產品類別,2.產品,3.產品詳細信息4.賣家。我需要在所有四個文檔的所有字段中執行關鍵字搜索並返回排名最高的產品。排序/分數如何在solr/lucene/elastic search中加入文檔?

例產品類別:電子,布和等

舉例產品:電視,移動在類電子

例產品詳情:尺寸14,黑色品牌三星電視

例賣家:經銷商1,經銷商2

實施例的搜索查詢: 「三星LED電視」

關係的交叉這些文件是用外鍵維護的。例如:產品包裝將具有類別主鍵。

我需要一個關鍵字搜索,它應該匹配這4個文檔的所有字段,並根據等級返回產品。

我會通過從孩子搜索,分別搜索賣家字段,產品詳細信息,產品和類別來處理此問題,並最終加入結果。問題在於排名。用戶關鍵字中一些更相關的產品在結果中下降。

有什麼最好的方式來加入文件和搜索一些關鍵字的連接文件的所有字段,以便結果更具相關性和排序?

回答

1

加入文檔之前,最好的方法是將文檔添加到索引中。 Lucene不是一個關係數據庫。有一些軟件包和類似的功能可以提供類似的功能,但通常在文檔本身提供所有希望搜索文檔的內容時可以更好地滿足您的需求。我相信你想在這裏尋找產品,因此你可以創建一個產品文檔中包含的字段:

Name:TV 
Category:Electronics Entertainment 
Seller:Dealer1 Dealer2 
Details:14 in size black etc etc etc 
text:TV Electronics Entertainment Dealer1 Dealer2 14 in size black etc etc etc 

以上text字段添加到提供的字段加入文件中都在一起,輕鬆地搜索任何東西附加到文檔中,這似乎對您的情況有所幫助,因爲您可以在搜索時將text設置爲默認字段,或者運行text:(samsung LED TV)之類的查詢。