我有以下嵌套分面,这是一段时间内的总和
{
"query": "*:*",
"facet": {
"daterange": {
"type": "range",
"field": "created_date",
"start": "2019-07-10T18:34:10Z",
"end": "2019-07-11T19:51:56Z",
"gap": "+8640000MILLISECONDS",
"facet": {
"x":"sum(price)"
}
}
}
}
solr java API是否支持它?
我希望能够将分面对象作为参数传递
public SolrQuery addDateRangeFacet(String field, Date start, Date end, String gap) {
add(FacetParams.FACET_RANGE, field);
add(String.format(Locale.ROOT, "f.%s.%s", field, FacetParams.FACET_RANGE_START), start.toInstant().toString());
add(String.format(Locale.ROOT, "f.%s.%s", field, FacetParams.FACET_RANGE_END), end.toInstant().toString());
add(String.format(Locale.ROOT, "f.%s.%s", field, FacetParams.FACET_RANGE_GAP), gap);
this.set(FacetParams.FACET, true);
return this;
}
Using org.apache.solr-solrj 7.0.1
我一直在使用 Java 中的 SolrQuery 寻找嵌套分面的答案,刚刚找到了这篇文章:https://chakrayel.wordpress.com/2017/03/30/consuming-json-facet-api/基于此,我猜您的情况的解决方案将是这样的(伪语法(:
SolrQuery query = new SolrQuery();
query.set("json.facet", """{
"daterange": {
"type": "range",
"field": "created_date",
"start": "2019-07-10T18:34:10Z",
"end": "2019-07-11T19:51:56Z",
"gap": "+8640000MILLISECONDS",
"facet": {
"x":"sum(price)"
}
}""");
我还没有测试过这篇文章。
呵呵。