如何正确地在聚合中订购法语或德语单词(特殊字符)?

时间:2015-04-15 13:21:57

标签: sorting elasticsearch aggregation

当我尝试订购时,我遇到了问题,例如在德语中的条款:

  • Frankreich
  • Ägypten
  • Zypern
  • Algerien

我总是得到错误的顺序:

  • Algerien
  • Frankreich
  • Zypern
  • Ägypten

但我希望在“Algerien”之后得到“Ägypten”:

  • Algerien
  • Ägypten
  • Frankreich
  • Zypern

我对法语(例如Égypte)和波兰语(例如Łotwa)也有相同的行为。

我的聚合查询部分:

'aggs' => 
array (
  'lawInternational' => 
  array (
    'terms' => 
    array (
      'field' => 'lawInternational.singleWords',
      'size' => 10000,
      'shard_size' => 10020,
      'order' => 
      array (
        '_term' => 'asc',
      )
    )
  )

对任何想法都会感到高兴。

加成

我使用“lawInternational.raw”字段的以下定义:

            'lawInternational' => ['type' => 'string',
                'analyzer' => 'text_analyzer',
                'fields' => [
                    'singleWords' => ['type' => 'string',
                         'analyzer' => 'comma_analyzer'],
                    'raw' => ['type' => 'string',
                        'index' => 'not_analyzed'],
                    'autoSuggest' => ['type' => 'string',
                        'analyzer' => 'suggest_analyzer']]],

“comma_analyzer”定义为:

            'comma_analyzer' => ['type' => 'custom',
                                 'tokenizer' => 'comma_tokenizer']],
             'tokenizer' => ['comma_tokenizer' => ['type' => 'pattern',
                                                   'pattern' => ',']],

0 个答案:

没有答案