1

我正在尝试在 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

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

4

3 回答 3

1

你也可以这样写:

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

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

于 2011-08-13T20:24:10.923 回答
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.'"')

于 2011-07-26T17:57:39.150 回答
0

使用 AND 运算符:

array('fq'=> 'datecreated:'.$date.' AND publisher_name:"'.$publisher.'"');
于 2011-07-26T15:12:37.093 回答