Php Solr+日光浴室:计数器不适用于多选面

Php Solr+日光浴室:计数器不适用于多选面,php,solr,solr4,faceted-search,solarium,Php,Solr,Solr4,Faceted Search,Solarium,我在Solr+日光浴室工作。我定义了一个多方面的搜索。每个方面选项后面都有计数器,显示单击时返回的结果数 当在多选方面中选择一个选项时,我希望其他方面的计数器仍然工作 在solr中有一些结果。在我的旧代码single select facets中,它返回汽油/柴油的值 例如,以下两个方面: 汽车品牌: -沃尔沃3 -马自达2 -大众5 燃料: -柴油4 -汽油6 现在我希望能够选择沃尔沃和马自达。选择沃尔沃solr/solarium后,返回以下两个方面: 品牌: -沃尔沃3-入选 -马自达2 -

我在Solr+日光浴室工作。我定义了一个多方面的搜索。每个方面选项后面都有计数器,显示单击时返回的结果数

当在多选方面中选择一个选项时,我希望其他方面的计数器仍然工作

在solr中有一些结果。在我的旧代码single select facets中,它返回汽油/柴油的值

例如,以下两个方面:

汽车品牌: -沃尔沃3 -马自达2 -大众5

燃料: -柴油4 -汽油6

现在我希望能够选择沃尔沃和马自达。选择沃尔沃solr/solarium后,返回以下两个方面:

品牌: -沃尔沃3-入选 -马自达2 -大众5

燃料: -柴油0 -汽油0

品牌方面很好。我希望燃料方面计数器返回沃尔沃的柴油/汽油车数量。例如: -柴油机2 -汽油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/>';
    }

这确实是一个语法错误。我删除了createfilterquery数组中“query”的引号。我还为var$q_品牌添加了报价。这是个打字错误

旧的:

新的:


这不可能是您正在使用的实际代码,到处都是语法错误和奇怪的东西。如果您有一个sample.json文件和用于测试的模式,这也会很有用。
$query->createFilterQuery(array('key'=>'id_brand', 'query'=>'$q_brand', 'tag'=>'brand'));
$query->createFilterQuery(array('key'=>'id_fuel',  'query'=>'$q_fuel', 'tag'=>'fuel'));
$query->createFilterQuery(array('key'=>'id_brand', 'query'=>$q_brand, 'tag'=>'brand'));
$query->createFilterQuery(array('key'=>'id_fuel',  'query'=>$q_fuel, 'tag'=>'fuel'));