我怎样才能总是使用Drupal Apache Solr强制使用确切短语的最新文章?

时间:2014-03-22 02:58:11

标签: drupal solr drupal-7

我想在身体或标题的任何地方找到确切的短语结果。它必须从最近到最早订购。我获得非常接近结果的唯一方法是通过此钩子强制引用我的所有搜索:

/**
 * Implements hook_apachesolr_query().
 */
function hcp_node_apachesolr_query_prepare($query) {  
  // Adding quotes to all searches so it gives an accurate search result
  $search_result = $query->getParam('q');
  $has_quotes = preg_match('/^(["\']).*\1$/m', $search_result);
  if(!$has_quotes) {
    $query->replaceParam('q', '"' . $search_result . '"');
  }
}

我的偏见设置:

  • 结果偏差:全部设置为忽略但最近创建的设置为10
  • 类型偏移:全部设置为忽略
  • 字段偏向:全部设置为省略。

这似乎适用于两个或三个单词短语但如果我搜索一篇文章的整个标题就找不到任何内容。

我尝试将标题和完整的渲染内容字段偏向同一事物(21)。再次,它会显示出良好的效果,但它不会是最近的顺序(我认为这非常接近但只是希望它最近显示最近)。

我也尝试更新我的schema.xml:将WhitespaceTokenizerFactory更新为KeywordTokenizerFactory,但我没有得到好的结果。

1 个答案:

答案 0 :(得分:0)

这就是我解决这个问题的方法:

  • 已安装的Apache Solr术语接近模块已将字段偏置更新为.3
  • 表示Title和完整呈现的内容(其余内容设置为 省略)将术语接近度设置为.1
  • 将最近创建的设置为10

仅供参考我尝试了不同的设置,这似乎是最好的。