如何使用范围方面

时间:2013-04-11 19:03:22

标签: scala lift facets

我正在使用facet将分区搜索结果放入范围。 搜索返回一个列表项,每个项都有一个分数。在列表中,项目按从高到低的分数排序。有些项目也可能有相同的分数。

我使用facet获得前10名,然后是下一名100。

我的想法是使用范围方面。问题是,我从来不知道格言scor。每次都不同。但是由于搜索结果按照得分顺序返回,我可以使用范围方面而不关心范围:
//top 10 best matches with score: [0-infinity) but since they items are ordered I think it will return top 10 items FacetBuilders.rangeFacet("top10Matches").field("score").addUnboundedTo(0).size(10)

这很简单。现在我不知道如何获得下一个块,这是上一个方面停止的地方,大小为100.我可以检查结果中第一个方面返回的结果中的最后一个项目的分数,并将其用作我的顶部范围,但如果有具有该确切分数的项目,则将跳过它们。

有没有办法用facet做我需要的东西?

1 个答案:

答案 0 :(得分:0)

我可以使用setFrom(Int)方法。不需要任何方面。

val queryString = client.get.prepareSearch()
  .setQuery(QueryBuilders.matchQuery(NODE_PATH_TO_SEARCH, query))
  .setFrom(currentPageNumber*MAX_DISPLAYABLE_RESULTS)
  .setSize(MAX_DISPLAYABLE_RESULTS)
queryString.execute().actionGet()