2012-11-14 127 views
0

在我的應用程序中,我有幾個搜索,如用戶搜索,討論搜索,博客搜索等。現在我還需要一個「全局搜索」,它應該會導致所有類型的搜索。我的問題是,任何類型的搜索都有幾個限制。Solr - 複雜查詢

用戶搜索:

q=userLastName:*searchString*^9 userFirstName:*searchString*^10&fq=documentType:4 AND marketId:(281807 1950) 

討論搜索:

q=userLastNameLowerBoost:*searchString*^6 userFirstNameLowerBoost:*searchString*^5 title:*searchString*&fq=(documentType:2 AND boardType:2 AND country:3028) OR (documentType:2 AND boardType:1) 

我怎麼能在一個查詢合併這些查詢?那可能嗎?

+0

'(user_search)(discussion_search)'因爲這 – ajreal

+0

您可以使用copyfield用戶搜索和討論搜索內容複製到新的領域,在運行全局搜索一樣簡單這個新領域。 –

+0

'(user_search)(discussion_search)' - >不會因爲過濾器查詢而工作?複製域也不是一個好主意,因爲這些領域的一些提升(忘了說).. – user1731299

回答

0

我的查詢示例只是查詢中的片段。如果我提供更多細節,這將超出討論的範圍。每個查詢(用戶,討論區,博客,..)都有幾個字段,也有一些相同的字段。所有查詢都有一個'fq'查詢這是問題。我通過documentType來限制(1 =博客,2 =討論,..),同時我也必須受到不同市場的限制。

如果我合併這兩個查詢,我失去了結果。

例如

user search result = 60 results 
    discussion search results = 10 results 
    merge search results = 68 result 
    --> 2 lost 

FQ查詢:

(documentType:4 AND marketId:(1956 1960 ..and so on..)) OR (documentType:3 AND marketId:(1956 ..and so son..))