首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solr Json Facet API使用Solarium

Solr Json Facet API使用Solarium
EN

Stack Overflow用户
提问于 2018-08-26 21:16:17
回答 2查看 490关注 0票数 1

我正在做一个PHP项目,在这个项目中,我使用Solr作为与Apache Solr接口的主库。

我正在使用Solr的Json Facet API,如下所示:

代码语言:javascript
复制
json.facet={"unique_docs":"unique(doc_id)","hll_docs":"hll(doc_id)"}

如何将类似的查询与Solarium一起使用。

我发现了一个解决了的问题,在日光Github页面,这是我关心的。

JSON Facet API #378

但是,页面并没有解释它的使用方法。在日光文档中也没有任何与此相关的内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-07 22:23:30

我让它和customizerequest一起工作:

代码语言:javascript
复制
$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,我有如下代码:

代码语言:javascript
复制
$facet_result = $this->result_set->getFacetSet()->getFacet('my_key');

foreach($facet_result as $facet) {
    $value = $facet->getValue();
    $count = $facet->getCount();
}
票数 1
EN

Stack Overflow用户

发布于 2019-10-11 01:29:15

要将Solr-JSON-facet for添加到Solarium查询API,您需要创建一个Solarium facet集对象。为了使用stat facet函数(又称聚合函数),Solarium提供了创建和设置查询的方法。

所以这应该是你想要的:

代码语言:javascript
复制
$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)');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52026611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档