2011-04-25 43 views
1

我想在Solr的多個字段中搜索。 (知道複製字段的概念,我知道(e)dismax搜索處理程序。)Solr:在多個字段中搜索,但是如果找到文件匹配,則停止

所以我有一個字段的有序列表,我想要搜索的術語。 1.)SKU 2.)名稱 3.)描述 4.)總結 等等。

現在,當查詢匹配一個術語時,讓我們說在SKU字段中,我想要這個匹配,並且在繼續的字段中不再進行搜索。

只有在第一個字段(SKU字段)中沒有任何匹配的情況下,才應該使用第二個字段(本例中爲「name」),依此類推。

Solr可以嗎? 我必須爲此實現我自己的Lucene搜索處理程序嗎?

歡迎任何建議!

謝謝 伯恩哈德

回答

2

我覺得你的情況需要執行4個不同的搜索。如果你實現了你自己的SearchHandler,你可以避免在4個不同的請求中對搜索結果累積的懲罰。這意味着,您將發送一個查詢,並且自定義SearchHandler將執行4次搜索並準備一個結果集。

+0

+1我同意......... – 2011-04-25 22:44:40

+0

謝謝。我會嘗試這種方法。如果我深入瞭解源代碼並進行編碼,會出現一個新問題:我應該將它實現爲LuceneSearchHandler還是Solr Java Classes?有什麼優點/缺點?謝謝! – schube 2011-04-28 13:46:49

+0

如果您已經在使用Solr,那麼基於Solr API構建應該更容易,創傷更小。然後,您可以配置自定義搜索處理程序的附加Seeting以及Solr配置的其餘部分。 – jarekrozanski 2011-04-28 23:20:35

0

如果我的猜測是正確的,你想根據字段的順序排列結果。如果是這樣,那麼你可以用標準的查詢像

Q = SKU:(查詢)^ 4名:(查詢)^ 3或說明:(查詢)^ 2或摘要:(查詢)

這將按字段的順序排列結果。

希望是幫助。

+0

我喜歡這個想法,但它不符合OP的所有要求。 – 2011-04-26 18:11:53

相關問題