как проиндексировать поле cck текстовой области типа в solr: drupal6

Я создал поле cck типа textarea с именем filed_desc, как мне заставить это поле индексироваться в solr.

я нашел эту статью http://acquia.com/blog/understanding-apachesolr-cck-api, я пробовал это, но он не индексирует файл, может кто-нибудь помочь.

    <?php
// $Id$
/**
* Implementation of hook_apachesolr_cck_fields_alter
*/
function example_apachesolr_cck_fields_alter(&$mappings) {
  // either for all CCK of a given field_type and widget option
  // 'filefield' is here the CCK field_type. Correlates to $field['field_type']
  $mappings['text'] = array(
    'text_textarea' => array('callback' => 'example_callback', 'index_type' => 'string'),

  );

}



/**
* A function that gets called during indexing.
* @node The current node being indexed
* @fieldname The current field being indexed
*
* @return an array of arrays. Each inner array is a value, and must be
* keyed 'value' => $value
*/
function example_callback($node, $fieldname) {
  $fields = array();
  foreach ($node->$fieldname as $field) {
    // In this case we are indexing the filemime type. While this technically
    // makes it possible that we could search for nodes based on the mime type
    // of their file fields, the real purpose is to have facet blocks during
    // searching.
    $fields[] = array('value' => $field['field_desc']);
  }
  return $fields;
}

?>

person pmarreddy    schedule 25.09.2009    source источник


Ответы (2)


В настоящее время я работаю над добавлением этого в хороший, красивый, общий способ. Если вам действительно нужно, чтобы это работало сейчас, взгляните на эту проблему на Drupal.org. Мой код в настоящее время находится на GitHub, хотя, надеюсь, я смогу включить его в апстрим и выпустить его. .

Надеюсь, это поможет!

person haxney    schedule 23.02.2010
comment
Как это в итоге прошло? Какой патч использовать, упомянутый в теме? И ваш код останется отдельной веткой или будет добавлен обратно в основную разработку apachesolr? - person lazysoundsystem; 04.06.2010

Отображением полей легче управлять.

изменить функцию:

$mappings['per-field']['field_specialities'] = array(
  'index_type' => 'string',
  'callback' => 'ge_search_apachesolr_field_specialities_callback'
);

перезвонить:

function ge_search_apachesolr_field_specialities_callback($node, $fieldname)
{
  $fields = array();
  foreach($node->$fieldname as $field) {
    $fields[] = array('value' => $field['value']);
  }
  return $fields;
}
person joetsuihk    schedule 28.11.2011