2017-08-29 90 views
0

我們使用Solr 6.6,並在我們的索引中有兩種不同類型的文檔:bookmovie。我想運行一個搜索,每頁會返回10個結果。前3個結果應該匹配book文檔,最後7個結果應該匹配movie文檔。然後在第2頁上,它將有另外3個book文檔和7個movie文檔。混合類型的Solr查詢結果

有誰知道這樣的事情是否可以用Solr查詢?我試圖避免2個單獨的查詢,其中一個用於每頁3 books和1個用於每頁7 movies。所以在單個查詢中這樣做會很理想。

回答

0

我們假設您有一些'類型'字段,表示文檔是電影還是書籍。鑑於此:

  • 你真正想要的是diversity in results。這是針對Lucene的,不幸的是,頂層沒有Solr層可以利用。
  • 所以你的下一個最好的事情是Grouping,通過要求更多的文檔比你需要,然後按類型分組,並希望你有每組至少3本書和7部電影(你可能不會)。如果您缺少一些書籍或電影,您可以隨時回到第二個查詢。它可能會正常工作。
+0

是的,我有一個'type'字段。我已經看過分組。我看到了'group.limit'設置,但似乎它會爲每種類型(即5本「書本」和5本「電影」)提供相同數量的文檔。有沒有辦法指定一種類型的3和另一種類型的7種? – matt

+0

不,請求7,然後過濾到客戶端的3本書 – Persimmonium

+0

這適用於結果的第一頁,但在此之後,偏移將不正確。 – matt