Drupal 7在搜索结果中打印内容字段

Drupal 7在搜索结果中打印内容字段,drupal,solr,drupal-7,drupal-theming,Drupal,Solr,Drupal 7,Drupal Theming,我正在使用Drupal7和ApacheSolr 我想在搜索结果中打印一个内容字段…听起来很简单 我将此函数放置在自定义模块中: function module_name_apachesolr_modify_查询(&$query,&$params){ $query->params['fl'].=',im_字段_名称'; } 我在/admin/reports/apachesolr中验证了字段名是否正确。我启用了模块,到目前为止一切正常 然后在search-result.tpl.php中,我对 没有

我正在使用Drupal7和ApacheSolr

我想在搜索结果中打印一个内容字段…听起来很简单

我将此函数放置在自定义模块中:

function module_name_apachesolr_modify_查询(&$query,&$params){
$query->params['fl'].=',im_字段_名称';
}

我在/admin/reports/apachesolr中验证了字段名是否正确。我启用了模块,到目前为止一切正常

然后在search-result.tpl.php中,我对


没有成功…我想我可能在做一些愚蠢的事情。我会继续努力,但任何帮助都是非常感谢的!谢谢

目前正在学习这一点,我也在寻找同样的东西,但还是设法让它发挥作用。不幸的是,关于Drupal7的文档似乎不多,但在《Drupal7最终指南》一书中有一小章是关于它的

我使用了hook\u apachesolr\u query\u 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; ?>

对于那些想要定制Apache Solr显示搜索结果的方式的人,我强烈建议查看该模块。它提供了搜索页面的高级定制,包括由ApacheSolr生成的页面。查看此屏幕广播: