我正在做一个PHP项目,在这个项目中,我使用Solr作为与Apache Solr接口的主库。
我正在使用Solr的Json Facet API,如下所示:
json.facet={"unique_docs":"unique(doc_id)","hll_docs":"hll(doc_id)"}如何将类似的查询与Solarium一起使用。
我发现了一个解决了的问题,在日光Github页面,这是我关心的。
但是,页面并没有解释它的使用方法。在日光文档中也没有任何与此相关的内容。
发布于 2019-03-07 22:23:30
我让它和customizerequest一起工作:
$facet_json = '{my_key:{type:terms,field:my_solr_field_name,domain:{blockChildren:"my_parent_filter:1"}}}';
$customizer = $this->client->getPlugin('customizerequest');
$customizer->createCustomization('json.facet')
->setType('param')
->setName('json.facet')
->setValue($facet_json);有一个release应该支持像$facetset->createJsonFacetTerms($options)这样的API,但是我从来没有设法让它像它应该的那样工作,也找不到任何文档。
为了在请求执行后获得json facet,我有如下代码:
$facet_result = $this->result_set->getFacetSet()->getFacet('my_key');
foreach($facet_result as $facet) {
$value = $facet->getValue();
$count = $facet->getCount();
}发布于 2019-10-11 01:29:15
要将Solr-JSON-facet for添加到Solarium查询API,您需要创建一个Solarium facet集对象。为了使用stat facet函数(又称聚合函数),Solarium提供了创建和设置查询的方法。
所以这应该是你想要的:
$query = new \Solarium\QueryType\Select\Query\Query();
$query->getFacetSet()
->createJsonFacetAggregation('unique_docs') // the JSON key
->setFunction('unique(doc_id)'); // the aggregate function (JSON value)
->createJsonFacetAggregation('hll_docs')
->setFunction('hll(doc_id)');https://stackoverflow.com/questions/52026611
复制相似问题