2017-08-29 131 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