PHP中的多个Solr过滤器查询

时间:2011-07-26 11:32:03

标签: php solr facet

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

我在浏览器上使用了此网址: 本地主机:8888 / solr的// collection1 /选择/ Q = :<?/ EM>&安培;版本= 2.2&安培;开始= 0&安培;行数= 10安培;缩进= ON&安培;小面=真安培; FQ = PUBLISHER_NAME:”沙特新闻社(SPA)“&amp; fq = datecreated:20110725

它工作正常。我在我的php代码中使用apache_solr_service类中的(search())函数。我将数组设置如下:


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

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

但是如何使用两个构面查询设置此查询

3 个答案:

答案 0 :(得分: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.'"')

答案 1 :(得分:1)

您也可以这样写:

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

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

答案 2 :(得分:0)

使用AND运算符:

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