如何在Apache Solr的搜索结果中添加自定义字段? -- search 领域 和 entities 领域 drupal 相关 的问题

How to add custom fields in Apache Solr's search result?


4
vote

问题

中文

我正在尝试在Apache Solr的搜索结果中添加一些自定义字段(映像字段,文本字段)。 我最终找到了下面的代码;但是,我不知道:

  1. 将此代码放在哪里(是它template.php?)
  2. 如何获取信息以显示它们。

`

  function mymodule_apachesolr_update_index($document, $node, $namespace) {   // When indexing nodes, add field from my custom content type.   if ($node->type === 'my_contenttype') {     // Grab the image URI and the description.     $image_uri = $node->field_image['und'][0]['uri'];     $description = $node->field_description['und'][0]['safe_value'];     // Add the image and description to the document in the solr index.     $document->addField('ss_my_contenttype_image', $image_uri);     $document->addField('ts_my_contenttype_description', $description);   } }  function mymodule_apachesolr_query_prepare($query) {   // Add the image.   $query->addParam('fl', 'ss_my_contenttype_image');   // Add the description text.   $query->addParam('fl', 'ts_my_contenttype_description'); }   

我欣赏任何建议。 谢谢。

英文原文

I'm trying to add some custom fields(image field, text field) in Apache Solr's search result. I ended up found the code below; however, I don't know:

  1. Where to put this code (is it template.php?)
  2. How to get the information to display them.

`

function mymodule_apachesolr_update_index($document, $node, $namespace) {   // When indexing nodes, add field from my custom content type.   if ($node->type === 'my_contenttype') {     // Grab the image URI and the description.     $image_uri = $node->field_image['und'][0]['uri'];     $description = $node->field_description['und'][0]['safe_value'];     // Add the image and description to the document in the solr index.     $document->addField('ss_my_contenttype_image', $image_uri);     $document->addField('ts_my_contenttype_description', $description);   } }  function mymodule_apachesolr_query_prepare($query) {   // Add the image.   $query->addParam('fl', 'ss_my_contenttype_image');   // Add the description text.   $query->addParam('fl', 'ts_my_contenttype_description'); } 

I appreciate any advice. Thank you.

     

回答列表

5
 
vote

如果您有D7和最新的Solr搜索集成模块,则可以按照以下步骤操作:

  • 使用以下代码创建自定义模块(如果您的字段是单值文本,则应将"TS_" 前缀添加到其名称。)

      function mymodule_apachesolr_query_alter($query) {   $query->addParam('fl', 'ts_field_name'); }   
  • 在template.php文件中添加以下函数

      function YOUR_THEME_preprocess_search_result(&$variables) {   $variables['ts_field_name'] = $variables['result']['fields']['ts_field_name']; }   
  • 在搜索结果中显示字段.tpl.php

      <?php if ($ts_field_name): ?>   <?php print $ts_field_name; ?> <?php endif; ?>   

这是一种快速方式,不使用 99887669 的任何主题函数,用于搜索结果片段。

您可以在此处找到更多信息:

  • http://archive.org/details/apachesolrsearchmastery_250
  • http://www.slideshare.net/acquinc/apache-solr-搜索掌握
 

If you have D7 and latest Solr search integration module then you can follow these steps:

  • Create a custom module with the following code (If your field is single value text then you should add "ts_" prefix to its name.)

    function mymodule_apachesolr_query_alter($query) {   $query->addParam('fl', 'ts_field_name'); } 
  • Add the following function in the template.php file

    function YOUR_THEME_preprocess_search_result(&$variables) {   $variables['ts_field_name'] = $variables['result']['fields']['ts_field_name']; } 
  • Display the field in search-result.tpl.php

    <?php if ($ts_field_name): ?>   <?php print $ts_field_name; ?> <?php endif; ?> 

This is a quick way that doesn't use any theme function like theme_apachesolr_search_snippets() for search results snippets.

You can find more information here:

  • http://archive.org/details/ApacheSolrSearchMastery_250
  • http://www.slideshare.net/AcquiaInc/apache-solr-search-mastery
 
 
0
 
vote

这些函数将转到自定义模块,在这种情况下名为mymodule.module。您可以在Template.php中挖掘主题中的查询字段(在mytheme_preprocess_search_result()中,您通常可能会进一步处理字段并修改$变量阵列以包括修改后的字段)或在搜索结果中。 tpl.php直接。

 

Those functions would go to a custom module, in this case named mymodule.module. You can dig out the queried fields in your theme, either in template.php (in mytheme_preprocess_search_result(), where you would typically perhaps process the fields further and modify the $variables array to include the modified fields) or in your search-result.tpl.php directly.

 
 

相关问题

1  如何在SOLR字段的值上进行或操作?  ( How can i do an or operation on the values of a solr field ) 
说我有一个各个方面的方面,我希望能够点击一个以上的国家(说我们和英国)并获得结果标记为"我们" 或"英国" 。 当前如果我在面部块上单击"英国" ,则其他术语如果这是"单个索尔字段" ,则会消失。 如果是一个多值索尔字段,则其他术语不会消失,但是完成了AND操作。 如何更改默认行为以允许或操作"单个" 和"多值" 索...

3  使用CreateFilter使用和或使用搜索API构建高级查询  ( Use createfilter to build an advanced query using and and or with the search api ) 
我的搜索索引约为15个字段(Profile2字段)和搜索API索引器(MySQL)构建,我需要构建高级查询。所有字段都是全文。查询输入表单有大约6个字段: name, postal code, zip, city, keywords 完整的SQL查询(伪代码),条件基于用户在表单字段中输入的内容,看起来像这...

1  模块要将关键字搜索功能添加到Content Admin页面? [关闭]  ( Module to add keyword search capability to content admin page ) 
此问题似乎在帮助中心中定义的范围内涉及Drupal。。 想要改进这个问题?更新问题,所以它是关于drupal答案的主题。 ...

4  如何在Drupal中设置OpenSearch?  ( How to set up opensearch in drupal ) 
我想设置 opensearch 所以它在Drupal 7中工作,因此可以集成搜索体验使用用户浏览器在Drupal.stackexchange.com上完成的方式。 我找到了以下Contrib模块(无移植D7): http://drupal.org/project/opensearchplugin - d5...

6  搜索API是否会提高视图中的搜索性能的性能?  ( Will the search api increase performance of searches in the views exposed filter ) 
如何提高性能,如果网站上的一个主要活动将在视图中搜索公开过滤器?搜索API模块(带数据库搜索/不是SOLR)是否会显着提高此类搜索的性能? ...

3  是否有可能制作嵌套搜索API查询?  ( Is it possible to make a nested search api query ) 
我需要以下列形式进行查询: SELECT * FROM {index} ... AND ( (field1 = value AND field2 = value) OR (field1 = other_value AND field2 = other_value) ) ... 但它似乎与现有的 cr...

0  搜索框内的文字  ( Text inside search box ) 
如何在Drupal搜索框中添加默认文本?我用jQuery做到了这个,但我需要翻译文本。 我知道这可以用自定义搜索模块,但它是一个小的矫枉过正模块用于这种小功能。希望可以使用我的主题的预处理功能来实现这一目标。任何关于如何完成的想法? ...

1  APACHR SOLR是否使用分类系统或CCK字段进行刻面搜索?  ( Does apachr solr use taxonomy or cck fields for faceted search ) 
我正在尝试使用solr将简单的面位搜索块放在一起。使用solr工作,但我不确定为面位搜索创建搜索属性块所需的内容。 例如,我的内容是为了住宿,所以我希望能够按价格范围,容量和位置搜索。价格范围和容量数据已填充为CCK字段,但位置设置为分层分类。 我想知道Solr需要什么来实现一个简单的刻面的搜索块。它是否使用CCK字...

1  如何加载Apache Solr文档并在Drupal 7完成后发送reindex以进行reindex  ( How to load a apache solr document and send it for reindex after editing is done ) 
标题说, 我想加载特定节点的文档,当编辑完成后,我需要将修改后的文档发送到solr以编程重新索引。 如何完成? ...

8  搜索API模块是否能够在数字值上进行范围方面?  ( Is the search api module able to do range facets on numeric values ) 
我正在使用drupal商业,搜索api和 facets api ;我想把产品价格作为小平面。配置搜索API索引,我设法获取此关节,但搜索API模块似乎没有处理价格范围的刻面。这就是方面的样子。 1230,23 340,21 ... 我希望它像以下一样。 从10到100 从100到200 ......

6  Apache Solr搜索仅显示Currrent用户语言  ( Apache solr search show only currrent user language ) 
我正在使用apache solr搜索集成要在我们的网站上进行搜索,除了我为网站上的所有语言获得结果而不是仅使用用户目前使用的结果。 有没有办法仅显示当前用户语言中的节点?通过简单的检查或直接在查询中过滤它的结果? 我希望在创建寻呼机之前,我希望有一个钩子改变结果,我得到了摘地在hook_apachesolr_sear...

5  如何使用视图作为搜索结果页面与刻面?  ( How to use a view as a search result page with facets ) 
我在这个家伙的教程。它基本上是一种廉价的方法,无需设置SOLR。 我所拥有的问题是,我实际上希望使用搜索表单的主页预先查询索引的一些搜索字词......基本上是: 搜索一个术语,并通过方面重定向到视图。 使用方面进一步过滤我的节点。 如何这样做是可能的? 目前我已配置(在搜索API配置中)一个使用数据库...

0  有没有办法在Solr搜索页面中访问完整的结果列表?  ( Is there a way to access the full list of results in a solr search page ) 
我想在Apache Solr搜索结果中操纵结果的顺序。 我正在使用 apachesolr 以及 apachesolr_panels 。 在hook_apachesolr_process_results()我可以获取 $results 对于当前页面,但我正在寻找一种方法来在分页之前找到完整列表。 编辑:我询问结果集,...

3  如何使用方框设置Apache Solr,以便它使用前页搜索表单?  ( How to set up apache solr with facets so that it uses a front page search form ) 
所以我正在研究我的第一个中等大小的D7项目,它需要一些相当高级的搜索能力(至少为我提升)。我已经安装了Solr,创建了一个服务器和搜索API的索引,并创建了一个搜索页面。 到目前为止很好......一切都根据你的期望工作,它甚至有面部,这是我真正想要这个网站的方面。问题是,这似乎是我的天花板......而且我想改变一...

1  搜索结果寻呼机  ( Search result pager ) 
任何人都知道如何在搜索结果页面上打印所有结果? (没有寻呼机) 默认模板,打印寻呼机,我不知道它来自哪里来自 感谢 ...

1  主题搜索页面  ( Theming search page ) 
我正在自定义我的搜索结果页面。我已经找到了两个模板 search-result.tpl 和 search-results.tpl ,但除了这些还有一个可折叠的 fieldset ,用于高级搜索。来自哪里?如何整体主题页面?喜欢在 page.tpl 或 node.tpl 文件中。 也 Themer 告诉我这个整个节点(...

1  如何使用曝光过滤器搜索视图  ( How to search views with exposed filters ) 
我有一个包含曝光过滤器的页面视图(带有Ajax调用的4个复选框)哪些用户可以更改。 我想更改默认搜索,仅搜索此视图中出现的结果。 如何做到这一点? ...

1  搜索找不到所有匹配项  ( Search does not find all matches ) 
我在使用自定义搜索以及搜索autocomplete时,我有问题在我的站点上配置搜索。我设置了两个模块选项,只包含2种类型的内容。在这些类型中,我有4个节点,其中标题与模式匹配: ABC-.... ,其作为自动完成项呈现。但是,当我输入<代码> ABC 并按Enter键,发现只有一个节点。什么可能是原因? ...

1  搜索结果表明  ( Search result theming ) 
我有问题配置搜索结果。是这样,搜索结果视图模式中设置的字段始终是纯文本的代码段吗?我在每个节点上都有分类项,我将其设置为搜索结果视图模式中的链接,但它始终作为纯文本输出。 我正在使用自定义搜索和搜索API,如果这是一个重要的话。 ...

1  如何在节点内从搜索Bock显示具有不同样式的搜索表单?  ( How can i display a search form with a different style from search bock inside ) 
我在网站的顶部启用了一个搜索块。但我也需要显示相同的搜索表单,但是在节点内应用了不同的CSS类。如何完成? ...




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


Licensed under cc by-sa 3.0 with attribution required.