热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用搜索API使用分页器从查看结果中删除重复的记录

我的项目是在Drupal7中设置的,我正在使用搜索API来显示我的自定义搜索结果。实

我的项目是在Drupal 7中设置的,我正在使用搜索API来显示我的自定义搜索结果。实际上,我想显示基于两种内容类型内容的搜索结果,因此我已经为这些内容类型配置了搜索api,然后选择了要搜索的字段,然后为内容建立了索引。

为了显示搜索结果,我使用的是索引节点类型的drupal视图。但是问题是,在我的搜索结果中,由于某些内容具有相同的标题但具有不同的正文,因此我得到的结果重复。

我要删除标题重复的搜索结果。 (由我自己创建的自定义字段)

我尝试通过View挂钩尝试一些自定义解决方案,但是它无法正常工作,给了寻呼机问题

function custom_views_pre_render(&$view) {
if ($view->name == 'search_books') {
$view_ISBN = array();
foreach ($view->result AS $key => $res_view) {
$ISBN = $res_view->entity->field_isbn[und][0]['value'];
if (!in_array($ISBN,$view_ISBN)) {
$view_ISBN[] = $ISBN;
unset($view->result[$key]);
}
}
$view->query->pager->total_items = count($view->result);
$view->query->pager->update_page_info();
}
}

这会删除重复的结果,但会给出错误的寻呼机结果。

我也尝试了Query alter hook,但是它对我不起作用。

function custom_query_alter($ query){

if (isset($query->alterMetaData)) {
if (isset($query->alterMetaData['view'])) {
if($query->alterMetaData['view']->name == 'search_books') {
$fields =& $query->getGroupBy();
// Tried various fields to check which was the field creating the problem.
$query->groupBy('field_isbn');
$query->distinct = TRUE;
}
}
}
}

我还尝试安装“ views_distinct”模块,从视图中区分出该字段,但这也给我传呼机的问题。

任何想法如何解决此问题?



您可以使用“分组”字段从视图格式使用“分组”字段,也可以使用
Use aggregation视图Advanced部分中的


推荐阅读
author-avatar
Levenmamatq_267
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有