我有以下嵌套的构面,它们是时间的总和
{
"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;
}
使用org.apache.solr-solrj 7.0.1
答案 0 :(得分:0)
我正在使用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)"
}
}""");
我还没有测试过帖子。
HTH。