我正在使用drupal 7,使用apache solr ......
我想在搜索结果中打印一个内容字段......听起来很简单,
我将此功能放在自定义模块中:
function module_name_apachesolr_modify_query(&$query, &$params) {
$query->params['fl'] .= ',im_field_name';
}
我在/ admin / reports / apachesolr中验证了字段名称是否正确。我启用了模块,到目前为止看起来都是正确的。
然后在search-result.tpl.php中我做了几个变种,
<?php print render($content['im_field_name']); ?>
没有成功......我想我可能会做一些愚蠢的事情。我会继续关注它,但任何帮助都非常感谢!谢谢!
答案 0 :(得分:1)
目前正在学习这个,我正在寻找相同的东西,但设法让它工作。不幸的是,Drupal 7似乎没有太多文档,但是在 Drupal 7的权威指南一书中有一个小章节。
我使用 hook_apachesolr_query_alter(),例如:
function MODULE_apachesolr_query_alter(&$query, &$params, $caller) {
$query->addParam('fl', 'im_field_name');
}
添加上述内容意味着它现在可以在模板的预处理功能中看到,所以我做了以下内容:
function THEME_preprocess_search_result(&$vars) {
$vars['im_field_name'] = $vars['result']['fields']['im_field_name'][0];
}
然后它可用于模板:
<?php if ($im_field_name) : ?>
<?php print $im_field_name; ?>
<?php endif; ?>
答案 1 :(得分:1)
我强烈建议您查看Display Suite模块,了解那些希望自定义Apache Solr显示搜索结果的方法。它提供了高级别的搜索页面自定义,包括Apache Solr生成的搜索页面。看看这个截屏视频: