SOlR 和关键字
我有这个脚本:
$removeList = array('+', '-', '&&', '||', '!', '(', ')', '{', '}', '[', ']', '^', '"', '~', '*', '?', ':', '\\');
$keyword = str_replace($removeList, '', mb_strtolower($_GET['query'], 'UTF-8'));
$keyword_str = strlen($keyword);
if($keyword_str>=3){
$options = array('hostname' => '**.*.*.*','login' => '', 'password' => '', 'port' => 8080);
$client = new SolrClient($options);
$query = new SolrQuery();
$query->setTerms(true);
$query->setTermsLimit(10);
$query->setTermsSort(1);
$query->setTermsField('keywords')->setTermsPrefix($keyword);
$updateResponse = $client->query($query);
}
这个脚本运行良好。但怎样才能让它按类别搜索呢?
示例:我的 var 是 $_GET['query'] = 'au'
但我只想在 cat = 2 中搜索。现在它搜索整个数据库。我怎样才能做到这一点?谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要使用TermsComponent吗?如果没有,我的建议是使用
SolrQuery::setQuery
构建查询,并借助 Solr 的 查询语法。示例:
...或使用
SolrQuery
构造函数的简短形式:Do you need to use the TermsComponent? If not, my suggestion would be to build your query by using
SolrQuery::setQuery
and setting a static filter on the cat field by the help of Solr's Query Syntax.Example:
... or in short form using
SolrQuery
constructor: