将具有多维数组的自定义字段添加到solr搜索索引中

时间:2014-02-07 04:16:37

标签: solr drupal-7

基于本教程,我尝试将自定义字段(带有多维数组)添加到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>

内容在哪里?为什么我的数组不会出现在结果中? 我希望,我可以在这里得到解决方案:)

谢谢,

1 个答案:

答案 0 :(得分:1)

目前Solr不支持多维数组字段。你可以在Google上找到很多讨论。即使Solr中的multivalued字段也为您提供了一个简单的数组。

  1. 您可以将多维数组数据存储为字段中的字符串(即使在多值字段中)。稍后您可以在应用程序中解析它。
  2. 或者您可以这样设计多维数组,以便将其存储在solr中可用的字段中。