2016-10-06 23 views
1

我有一個Solr索引,其中type字段可以具有不同的值,如「電影」,「書籍」等。給定一個搜索詞,我怎樣才能找到索引中所有類型的前X個文檔?我如何獲得Solr索引中每種類型的頂部X結果

例如,如果我搜索「貓」,我正在尋找關於「貓」的頂級X書籍,頂級X電影等等。

我想看看這是否可以在單個查詢中完成,而不是對每個類型進行多個查詢。 (這些類型是預定義的,大約有六打,由使用Solr的應用程序完成)。

+0

爲什麼downvote? –

+1

不知道你爲什麼被低估。這是一個有效的問題。 Upvoted。 – jay

回答

3

您應該檢查Solr中的字段摺疊/結果分組。這是官方文件。 https://cwiki.apache.org/confluence/display/solr/Result+Grouping

在你的情況下,查詢可能是這樣的

http://localhost:8983/solr/your_index/select?wt=json&indent=true&fl=your_field1,your_field2&q=your query here&group=true&group.field=type 

組內的結果是在默認情況下被查詢的得分排序。請參閱sortgroup.sort下的請求參數部分在上述文檔中。

+0

我嘗試了上述方法,但沒有產生任何不同的結果(即使用單獨的文檔組)。經過一番探索後,我認爲與我們的應用程序一起使用的Solr版本太舊,無法使用此功能(1.4,而不是我的決定!)。我無法在1.4版本的文檔中找到任何對'group'的引用,或者任何涉及1.4的書籍。不管怎麼說,還是要謝謝你! –

+0

你可以申請一個補丁 - 這將確保你不必升級solr - http://stackoverflow.com/questions/2597972/best-practice-of-field-collapsing-in-solr-1-4如何應用補丁:https://wiki.apache.org/solr/HowToContribute#Working_With_Patches – jay

相關問題