2

如何在 spring data solr 中组合查询以获取包含突出显示和分面的页面?现在我必须提出两个请求并结合结果。

我使用自定义存储库实现:

@Override
public Page<Sample> myQuery(Criteria query, Criteria filterQuery) {
   FilterQuery filterQuery = new SimpleFilterQuery(filterQuery);

   FacetQuery facetQuery = new SimpleFacetQuery(query)
    .setFacetOptions(new FacetOptions().addFacetOnField("availability"));
   facetQuery.addFilterQuery(filterQuery);

   FacetPage<Sample> page = solrTemplate.queryForFacetPage(facetQuery, Sample.class);

   // Or create highlight query 

   SimpleHighlightQuery highlightQuery = new SimpleHighlightQuery(query);
   highlightQuery.addFilterQuery(filterQuery);
   highlightQuery.setHighlightOptions(new HighlightOptions());
   HighlightPage<Sample> highLightPage = solrTemplate.queryForHighlightPage(highlightQuery, Sample.class);
  return page;
}

我想要的是一次执行突出显示和方面查询的查询 - 否则我必须将其拆分为两个方法和两个请求。

4

1 回答 1

0

至于 1.4.2-RELEASE 版本,则不支持。由于HighlightQueryFacetQuery是单独处理的,并且这两个接口没有共同的实现,因此查询是互斥的。见org.springframework.data.solr.core.DefaultQueryParser.doConstructSolrQuery(SolrDataQuery)

为此,已经存在一个问题:DATASOLR-244

于 2015-07-30T08:14:08.713 回答