使用关键字标记生成器时,聚合为空

时间:2015-04-15 10:13:08

标签: php elasticsearch aggregate

对于聚合结果,我的映射中有一个字段(type_name2),带有一个小写过滤器和一个关键字标记器。但是,如果我将此过滤器和标记器设置为该字段,则我的存储桶现在为空。我已设置此标记并过滤以忽略单词中的空格,如:Fun X或Viva X. 这是我的映射(在PHP中):

'cars' => array(
                            'properties' => array(
                                /**'type_name2' => array(
                                    'type' => 'string',
                                    'fields' => array(
                                        'raw' => array(
                                            'type' => 'string',
                                            'analyzer' => 'keyword'
                                        )
                                    )
                                ),**/
                                'type_name2' => array(
                                    'type' => 'string',
                                    'analyzer' => 'keyword_lower'
                                ),
                                'type_kw' => array(
                                    'type' => 'float'
                                ),
                                'type_hp' => array(
                                    'type' => 'float'
                                )

                            )
                        ),

和自定义分析器:

'analysis' => array(
                'analyzer' => array(
                    'keyword_lower' => array(
                        'tokenizer' => 'keyword',
                        'filter' => 'lowercase'
                    ),
                    'nGram_analyzer' => array(
                        'type' => 'custom',
                        'tokenizer' => 'whitespace',
                        'filter' => array(
                            'lowercase',
                            'asciifolding',
                            'nGram_filter'
                        )
                    ),
                    'whitespace_analyzer' => array(
                        'type' => 'custom',
                        'tokenizer' => 'whitespace',
                        'filter' => array(
                            'lowercase',
                            'asciifolding'
                        )
                    )
                ),
                'filter' => array(
                    'nGram_filter' => array(
                        'type' => 'ngram',
                        'min_gram' => 2,
                        'max_gram' => 20,
                        'token_chars' => array(
                            'letter',
                            'digit',
                            'punctation',
                            'symbol'
                        )
                    ),
                )
            )

但是type_name2的结果为空:

'type_name2' => 
    array (size=1)
      'buckets' => 
        array (size=0)
          empty

任何想法,有什么不对?

感谢和问候 斯蒂芬

0 个答案:

没有答案