最后更新时间为2013年7月16日。创建于2011年5月16日。
由acbramley,ayalon,scor编辑。登录以编辑此页面。
默认情况下,apacheolr Drupal模块设置为在有2个关键字时进行AND搜索,然后对DisMax应用 3个或更多关键字的模糊性。这是通过mm
solrconfig.xml中的参数设置的,默认为。2<-35%
您可以通过mm
在查询中将参数设置为solr之前设置参数来禁止此行为:
function HOOK_apachesolr_query_alter($query) {
// Force an OR keyword search.
$query->params['mm'] = '1';
}
使用Solr 3:
function HOOK_apachesolr_query_alter($query) {
// Force an AND keyword search.
$query->replaceParam('mm', '100%');
}
Drupal 7
在Drupal 7中,mm参数默认为1(参见apachesolr_search_basic_params())。这意味着默认行为本质上是一个OR。您可以使用上面相同的replaceParam方法将其更改为AND。
请注意,您将实现此代码的钩子将取决于您正在运行的apachesolr的版本:
hook_apachesolr_prepare_query(),hook_apachesolr_modify_query()或hook_apachesolr_query_alter(),用于最新版本的apachesolr。
寻求支持?访问Drupal.org论坛,或加入IRC中的#drupal-support 。
评论
使用hook_apachesolr_modify_query()
如果需要使用hook_apachesolr_modify_query(),$ params数组不是$ query对象的一部分。所以它看起来像这样:
登录或注册以发表评论
嘿ajross。你能提一下吗?
嘿ajross。
你能提到Apachesolr Drupal模块的版本,Apachesolr和Lucene,你使用的是因为我试过这个参数,但对我不起作用。
还有一个问题,此参数仅适用于关键字内部或关键字和过滤器之间的元素?
在此先感谢您的回复。
恩佐
-
enzo - Eduardo Garcia
weKnow- http://www.weknowinc.com
请使用git author选项: - author =“enzo”我在新模块版本中所做的任何补丁
登录或注册以发表评论
我试过了所有的挂钩_
我已经尝试了所有的
hook_
功能,但它们似乎都不适合我。我正在运行:Apache Solr PHP客户端库 - 正确版本“版本:22”。
Apache Solr框架(Drupal模块) - 6.x-1.3
Drupal - 6.19。
任何帮助将深表感谢。谢谢。
登录或注册以发表评论
这不适合我
这对我也不起作用
登录或注册以发表评论
对于Solr 3,您必须使用更新的代码示例
登录或注册以发表评论
不适合我
我正在使用Solr 3.4和Drupal 7.工作原理是:
登录或注册以发表评论
更改默认运算符
将schema.xml中的默认运算符更改为“OR”在D7 + SOLR 3.4上为我工作。
登录或注册以发表评论
replaceParam
下面的代码适用于D7.26,Solr 4.5.1,Solr模块7.x-1.5
看起来mm param总是被添加,所以你可以只做replaceParam()行。
编辑:我在完成此操作后重新阅读了上述文档,并且D7的说明很清楚,我只是误读了它们。
请注意,addParam()将不起作用,因为不是替换参数值(如apachesolr.interface.inc中addParam()的注释中所示),调用此函数实际上会导致mm的两个值('1'和' 100%')。
function HOOK_apachesolr_query_alter(DrupalSolrQueryInterface $ query){
//强制进行AND关键字搜索。
//使用1强制OR(默认值),100%强制AND
$ mmvalue = $ query-> getParam('mm');
if(isset($ mmvalue)){
$ query-> replaceParam('mm','100%');
}
else {
$ query-> addParam('mm','100%');
}
}
登录或注册以发表评论
关键字搜索问题
在solrdata是像“新年快乐”的索引。我把它作为自动完成。一旦我选择了这个,现在要求solr的查询是“快乐”+ AND +“新”+“年”,所以solr没有给出结果。如何在查询中进行更改,以便以“happy + new + year”的形式命中solr
登录或注册以发表评论
来自 https://www.drupal.org/node/1159424