Solr + Solarium에서 일하고 있습니다. 멀티 패싯 검색을 정의했습니다. 각 패싯 옵션 뒤에는 반환 된 결과의 개수를 보여주는 카운터가 있습니다.Solr + Solarium : 카운터가 다중 선택 패싯과 함께 작동하지 않습니다.
다중 선택 패싯에서 옵션을 선택하면 다른 패싯의 카운터가 여전히 작동 할 것으로 예상됩니다.
solr 결과가 있습니다. 내 오래된 코드 (단일 선택 패싯)에서는 가솔린/디젤의 값을 반환했습니다.
예. 다음 2면 :
자동차 브랜드 : - 볼보 (3) -mazda (2) -volkswagen (5)
연료 : -Diesel (4) -Petrol (6)
이제 볼보와 마쓰다를 선택하고 싶습니다. 선택된 -mazda (2) -volkswagen (5)
연료 - - 볼보 (3) : -Diesel (0
제작사 : 볼보 SOLR/일광을 선택하면 다음 2 개면을 반환) -Petrol (0)
브랜드 측면이 좋습니다. 나는 연료면 계수기가 볼보에서 디젤/휘발유 자동차 수를 반환 할 것으로 기대합니다. 예컨대 : -Diesel (2) -Petrol (1)
내 코드 :
$exclude= array("brand");
$q_brand = id_brand:volvo
$q_fuel = "";
// create a client instance
$client = new Solarium_Client($config);
// get a select query instance
$query = $client->createSelect();
$query->createFilterQuery(array('key'=>'id_brand', 'query'=>'$q_brand', 'tag'=>'brand'));
$query->createFilterQuery(array('key'=>'id_fuel', 'query'=>'$q_fuel', 'tag'=>'fuel'));
// get the facetset component
$facetSet = $query->getFacetSet();
$facetSet->createFacetField('id_brand')->setField('id_brand')->setExcludes($exclude);
$facetSet->createFacetField('id_fuel')->setField('id_fuel');
// this executes the query and returns the result
$resultset = $client->select($query);
// display facet counts
echo '<hr/>Facet counts for field "id_brand":<br/>';
$facet = $resultset->getFacetSet()->getFacet('id_brand');
foreach ($facet as $value => $count) {
echo $value . ' [' . $count . ']<br/>';
}
// display facet counts
echo '<hr/>Facet counts for field "id_fuel":<br/>';
$facet = $resultset->getFacetSet()->getFacet('id_fuel');
foreach ($facet as $value => $count) {
echo $value . ' [' . $count . ']<br/>';
}
이 사용하고있는 실제 코드가 될 수 없습니다, 사방에 구문 오류와 이상한 물건이있다. 샘플 .json 파일과 테스트에 사용중인 스키마가 있으면 유용 할 것입니다. – MatsLindh