【问题标题】:Multiple Solr filter queries in PHPPHP 中的多个 Solr 过滤器查询
【发布时间】:2011-07-26 11:32:02
【问题描述】:

我正在尝试在 solr 中使用 facet,我想在我的数据库中进行搜索,我需要获取属于特定日期和特定出版商的文章。

我在浏览器上使用了这个网址: localhost:8888/solr//collection1/select/?q=:&version=2.2&start=0&rows=10&indent=on&facet=true&fq=publisher_name:"Saudi Press Agency (SPA)"&fq=datecreated:20110725

而且效果很好。我在我的 php 代码中的 apache_solr_service 类中使用 (search()) 函数。我将数组设置如下:

array('facet'=>'true','fq'=>"datecreated:".$date,'fq'=>"publisher_name:\"".$publisher.'"')

我知道因为 fq 索引它不会给我预期的结果,它会将 fq 的值覆盖到 publisher_name 中

但是我怎样才能用两个方面查询来设置这个查询

【问题讨论】:

    标签: php solr facet


    【解决方案1】:

    这可能会有所帮助: http://code.google.com/p/solr-php-client/wiki/FAQ#How_Can_I_Use_Additional_Parameters_%28like_fq,_facet,_etc%29

    代码应该是这样的(请检查语法错误,我的 PHP 生锈了): array('facet'=>'true','fq'=>array('datecreated:'.$date,'publisher_name:"'.$publisher.'"')

    【讨论】:

      【解决方案2】:

      你也可以这样写:

      array('fq'=>'+datecreated:'.$date.' +publisher_name:"'.$publisher.'"')
      

      http://wiki.apache.org/solr/CommonQueryParameters#fq

      【讨论】:

        【解决方案3】:

        使用 AND 运算符:

        array('fq'=> 'datecreated:'.$date.' AND publisher_name:"'.$publisher.'"');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-02
          • 1970-01-01
          • 2011-11-27
          • 1970-01-01
          • 2013-12-27
          • 1970-01-01
          相关资源
          最近更新 更多