自定义返回搜索页面上的结果 -- 7 领域 和 search 领域 drupal 相关 的问题

Custom facets return no results on search page


1
vote

问题

中文

我已为Apache Solr的节点索引创建了自定义字段。这是代码。

  function myModule_apachesolr_index_document_build_node(ApacheSolrDocument $document, $node, $env_id) {   if($node->type == "feature") {     $support = db_select("custom_table", 'a')         ->fields("a", array('Support'))         ->condition('nid', $node->nid)         ->execute()->fetchField();       $document->addField('custom_field', $support);   } }   

然后对于此自定义字段,我创建了小平面。这是代码。

  function myModule_facetapi_facet_info(array $searcher_info) {   $facets = array();      $facets['custom_abot_support'] = array(       'label' => t('Custom Facet'),       'description' => t('Filters by Support'),       'field' => 'custom_field'     ); }   

成功创建的刻面,它已经存在于小平面列表中。但问题在搜索页面上。当我尝试搜索一些东西时,在搜索结果上,此面仅显示面部块的标题。它没有显示任何内容。

任何问题?

英文原文

I have created a custom field to the node index of apache solr. Here is the code.

function myModule_apachesolr_index_document_build_node(ApacheSolrDocument $document, $node, $env_id) {   if($node->type == "feature") {     $support = db_select("custom_table", 'a')         ->fields("a", array('Support'))         ->condition('nid', $node->nid)         ->execute()->fetchField();       $document->addField('custom_field', $support);   } } 

And then for this custom field I have created the facet. Here is the code.

function myModule_facetapi_facet_info(array $searcher_info) {   $facets = array();      $facets['custom_abot_support'] = array(       'label' => t('Custom Facet'),       'description' => t('Filters by Support'),       'field' => 'custom_field'     ); } 

The facet successfully created and it has been present in the facets list. But the problem is on the search page. When I try to search some thing, on the search results page this facet only display the title of the facet block. It does not display any content.

Any one what is the problem?

     

回答列表

1
 
vote
vote
最佳答案
 

我已经找到了解决方案。

  • 如果你写了这个钩子 hook_apachesolr_index_document_build_node 那么 您必须从Apache Solr搜索索引中删除索引数据 然后reindex所有数据。如果您只有reindex数据,那么它就不会 工作。

  • 和第2点。你必须要小心领域的前缀。如果是单个字符串,则使用 ss 如果多值字段,则使用 sm

  • 第3点是您必须调用 hook_apachesolr_query_alter

      function myModule_apachesolr_query_alter($query){    $query->addParams(array('fl' => array('ss_custom_field')));   

    }

 

I have found the solution.

  • if you wrote this hook hook_apachesolr_index_document_build_node then you have to delete the indexed data from apache solr search index and then reindex all the data. if you only reindex data then it will not work.

  • and 2nd point. you have to keep care of the prefixes of the field. if it is a single string then use ss if multivalue field then use sm

  • 3rd point is you have to call hook_apachesolr_query_alter.

    function myModule_apachesolr_query_alter($query){    $query->addParams(array('fl' => array('ss_custom_field'))); 

    }

 
 
0
 
vote

//模块名称:apache_group // publicatin字段:field_publcation_rits_dev //人员价格:Field_peoples_rits_term //研究价格:$ field_research_rits_term // $ term_id = field_get_items('node',$ node,$ field_name);

函数apache_group_apachesolr_index_document_build_node(apachesolrdocument $ document,$ node,$ env_id){

  $support = db_select("node", 'a')     ->fields("a", array('title'))     ->condition('nid', $node->nid)     ->condition('type', 'publications')     ->execute()->fetchField();   $document->addField('field_publcation_rits_dev_abc', $support);   

}

函数apache_group_facetapi_facet_info(数组$ searcher_info){ $ facet = array(); $ Facets ['custom_abot_support'] =数组( '标签'=> t('自定义方面'), '描述'=> T('按支持筛选'), '字段'=> 'field_publcation_rits_dev_abc' ); }

function apache_group_apachesolr_query_alter($查询){ $ query-> addparam('fl','im_field_publcation_rits_dev_new'); // $ query-> addparams(array('fl'=> array('field_publcation_rits_dev_abc')))); }

但没有成功,问题是什么?

 

// module name: apache_group // publicatin field : field_publcation_rits_dev //people rits : field_peoples_rits_term //research rits : $field_research_rits_term // $term_id = field_get_items('node', $node, $field_name);

function apache_group_apachesolr_index_document_build_node(ApacheSolrDocument $document, $node, $env_id) {

$support = db_select("node", 'a')     ->fields("a", array('title'))     ->condition('nid', $node->nid)     ->condition('type', 'publications')     ->execute()->fetchField();   $document->addField('field_publcation_rits_dev_abc', $support); 

}

function apache_group_facetapi_facet_info(array $searcher_info) { $facets = array(); $facets['custom_abot_support'] = array( 'label' => t('Custom Facet'), 'description' => t('Filters by Support'), 'field' => 'field_publcation_rits_dev_abc' ); }

function apache_group_apachesolr_query_alter($query){ $query->addParam('fl', 'im_field_publcation_rits_dev_new'); // $query->addParams(array('fl' => array('field_publcation_rits_dev_abc'))); }

But no success, what is the issue ??

 
 

相关问题

1  在视图筛选条件中启用分类学术语名称而不是ID存储  ( Enable storing of taxonomy term name instead of id in views filter criteria ) 
背景 我使用功能模块将代码部署到我的滞留。例如,我有一个出口的功能: 内容类型 - 播放器 在这种内容类型的转子学术语 - 奖牌 查看其中包含过滤器类型的播放器: Content: Has taxonomy term (=gold) 奖牌有三个术语 - 金,银,青铜。 在该功能中,术语不会导出...

2  omega kickstart亚文体中的次媒体媒体查询CSS  ( Subtheme media query css in omega kickstart subtheme ) 
我想建立基于Omega Kickstart的网站,这是欧米茄的一个次次。当然,我想稀疏地在我的变化中划分,所以我制作了一个欧米茄kickstart的次次。 所有 指南在那里这样做假设您只希望在新次次上面的一个全局CSS文件。对我来说似乎很疯狂 - 我想遵循我的象限中的相同移动第一模式,并单独覆盖每个目标的CSS文件...

1  查看最新版本VID  ( Get latest revision vid in views ) 
我正在使用修订模块来处理节点的状态。就节点来,他们一直在工作完美,工作流程正是我想要的。但是,我在尝试构建视图时运行到一个问题。 到目前为止我能做什么: 创建视图 设置节点类型 将其限制为只有待定修订的节点 (我获得两个节点,待定修订(未发布的Rev) 获取节点的nid 我有问题: 我尝试选择待定版本的...

1  根据菜单设置覆盖节点模板  ( Override node template depending on menu settings ) 
如何根据菜单中的位置覆盖节点的模板? 例如,我创建一个节点,在"菜单设置" 中,我将其放在一些"父项" 下。我希望为特定内容类型的节点使用特定模板,该节点归属于特定父项下。 ...

0  试图打印Apache Solr搜索的结果  ( Trying to print results of apache solr search ) 
我正在尝试打印到Drupal消息,索引项目作为Drupal中的对象。 这是我到目前为止的内容: function resource_library_search_apachesolr_process_results(&$results, DrupalSolrQueryInterface $query){ ...

1  检查面板页面是否以编程方式启用?  ( Check if a panel page is enabled programmatically ) 
我需要能够验证是否启用或禁用面板页面(仅仅是CTools页面的变体)。人会如何以编程方式执行此操作?如果它被禁用,如何通过编程方式启用它? ...

1  按URL /标题将Drupal节点作为JSON  ( Fetch drupal nodes as json by url title ) 
我们的Drupal系统使能服务模块已启用,并且能够使用以下URL格式将节点作为JSON返回 http://www.example.com/my_endpoint_path/node/123.json < / a> 但我想使用URL路径设置选项卡中设置的URL别名检索节点。我希望下面工作 http://ww...

0  drupal函数field_get_Items vs user_load  ( Drupal function field get items vs user load ) 
在drupal中,我想在登录管理员帐户时读取一组用户的自定义字段值。我只需要每个用户的1个字段值,相同的字段,我不需要这个信息缓存。 当我使用 user_load 时,它请求用户对象,因为我只需要一个字段,这是非常效率的。 所以我调查了 field_get_items ,但我看不到如何使用 user_load 。我...

2  如何在他的个人资料页面上显示用户按用户显示所有节点  ( How to display all nodes by user on his profile page ) 
我想创建一个"用户" /profiles/<RealName> ,它从用户内容类型列出所选字段。我完成了这一点。但现在,我希望从该用户创建的节点显示所选Fieds的相同视图。 我试图自己做,但我无法与所需内容类型添加关系。 ps:我是一个新手,如此恳求在答案中抛出一些细节。 ...

1  如何向这本书添加审查  ( How to add reviews to the book ) 
我有两个内容类型的"书" &amp; "审查" 。我希望角色的用户 reviewers 向他们想要的任何书添加评论。 我是怎么做到的?: 我已添加实体引用以通过(自动完成)小部件从审核中读取书籍。这只是允许审阅者添加评论节点并从自动完成中选择"预订" 。谁那样?我对它不满意。 如何我想要它: 我是每本书的...

0  将模板应用于特定页面  ( Apply template to a specific page ) 
我需要将模板应用于特定页面,而不是遵循相同的URL模式的页面。 例如,我有一个带有路径/亚洲的页面。我还有路径/亚洲/印度,/亚洲/中国等的页面。我想创建一个仅适用于/亚洲的模板,而不是其他路径。我创建了模板文件页面 - Asia.tpl.php,但它也适用于/亚洲/印度和/亚洲/中国。有没有办法将模板专门映射到此...

5  如何防止用户点总计低于给定用户的阈值?  ( How to prevent user point totals from going below a threshold for a given user ) 
我想为个人用户点设置一个绝对的地板(使用用户点模块)。具体而言,为了使得不可能在1以下的用户点数。 在Drupal 6中,userpoints_contrib中有 userpoints_no_negative 模块,但是删除了规则集成7.x( https://drupal.org/project/userpoints...

0  如何在页面加载中打开模态表单[重复]  ( How to open modal form on page load ) 
这个问题已经在这里有一个答案: ctools模块没有ajax (1答) ...

3  重定向不适用于nginx  ( Redirect does not work on nginx ) 
我正在将旧站点迁移到drupal(使用 migrate 模块),我管理了直接在代码中,使用重定向中的所有旧网址重定向到新的Drupal URL。例如: www.mysite.com/userprofile.php?user=5 重定向到: www.mysite.com/it/community/peoples/...

0  在不创建页面的情况下创建表单  ( Create a form without creating a page ) 
似乎足够简单,可以使用表单API在DRUPAL 7中创建表单,但是,我发现的一切都显示您必须使用hook_menu()添加页面,然后生成那种方式的表格。 我想创建一个独立的表单,然后只使用drupal_get_form()和drupal_render()显示表单来呈现表单。 如何在不创建自己的页面的情况下创建自定义表...

0  验证一组字段,以便只有0或2+字段已完成,只能提交表单  ( Validate a group of fields so that form can only be submitted if 0 or 2 fields ) 
在Drupal 7中,我需要验证几个CCK字段,以便仅在完成0或两个或更多字段时才可以保存节点。因此,如果只有其中一个字段已完成验证,则错误消息将失败,如"请提交两个或多个数年的数据,或者根本没有数据" 。 我知道我可以使用字段组和字段组多个设置字段组。我可以看到验证提供基本验证选项,包括检查最少的几个字段中的1个完...

0  获取代码库中所有模块的列表  ( Get a list of all the modules in code base ) 
这更像是开发者问题。 我需要在我的代码库中存在的所有模块的列表。我不是在寻找启用或安装模块。我只是在寻找我的代码库中存在的所有模块(代码)。 ...

1  导入shapefiles / kml  ( Importing shapefiles kml ) 
我需要添加支持kml文件或shapefile,最好是使用effile。这个想法是每个记录都与单个节点有关,上传的文件可能包含数百个新节点。我尝试了空间工具,但饲料进口只在drupal 6中工作。我也试过<一个href ="https://drupal.org/project/gdal" rel ="nofollow"...

0  设置自定义模块主题/布局[关闭]  ( Setting a custom module theme layout ) 
关闭。这个问题需要更多聚焦。它目前不接受答案。 想要改进这个问题?更新问题,因此它仅介绍了编辑此帖子。 关闭 7年前。 ...

3  如何允许在具有不同查询字符串的同一URL上重定向?  ( How to allow for redirecting on same url with different query strings ) 
我正在使用drupal 7.我有大约120个具有不同查询字符串的URL,而 drupal不允许我在相同的URL上重定向,以不同的查询字符串/参数。 例如: 我必须从这个URL博客/它的时间占据它重定向它?Page = 1 到博客/它的时间占用 - 它。查看下面给出的更多例子; (from url) blog/a...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.