Добавить пользовательское поле с многомерным массивом в поисковый индекс solr

на основе этого руководства я пытаюсь добавить настраиваемое поле (с многомерным массивом) в поисковый индекс solr http://msankhala.wordpress.com/2012/12/14/drupal-7-apache-solr-add-custom-field-to-solr-search-index/

У меня есть массив, назовем $array.

print_f($array);
Array
(
    [currency] => USD
    [rates] => Array
        (
            [0] => Array
                (
                    [start] => 2006-11-29
                    [end] => 2007-11-05
                    [pricing] => Array
                        (
                            [monthly] => 7955
                            [anually] => 265000
                        )

                )

        )

    [tax] => 10
)

//перехватываем запрос apache solr

function search_engine_apachesolr_index_document_build(ApacheSolrDocument $document, $entity, $entity_type, $env_id) {
    $array= get_price($entity->nid);
    $document->setMultiValue('sm_price', $array);
}

function search_engine_apachesolr_query_prepare($query) {
    $query->addParam('fl', 'sm_price');
}

но результат, который я получил только от solr:

<arr name="sm_price">
    <str/>
</arr>

где содержание? почему мой массив не отображается в результате? Я надеюсь, я могу получить решение здесь :)

Спасибо,


person Rijalul fikri    schedule 07.02.2014    source источник


Ответы (1)


В настоящее время Solr не поддерживает поле многомерного массива. В гугле можно найти много обсуждений по этому поводу. Даже поле multivalued в Solr дает вам простой массив.

  1. Вы можете хранить данные многомерного массива в виде строки в поле (даже в многозначном поле). Позже вы можете разобрать его в своем приложении.
  2. Или вы можете спроектировать свой многомерный массив таким образом, чтобы вы могли хранить его в полях, доступных в solr.
person buddy86    schedule 07.02.2014
comment
да, после поиска пока это кажется невозможным :-/. Благодарность - person Rijalul fikri; 12.02.2014