我有以下嵌套的方面,这些方面是随时间变化的总和
{
"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中是否支持它?
我希望能够将facet对象作为参数进行传递。
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
发布于 2020-09-23 19:47:12
我正在寻找在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)"
}
}""");我还没有测试过post。
HTH。
https://stackoverflow.com/questions/57063859
复制相似问题