Многосимвольный фильтр / анализатор - PullRequest
0 голосов
/ 03 апреля 2019

Пример

quatro
quattro
quatttro
...
quatttttttttttttttttttttttttro

Требуемый вывод

quatro

Как анализировать (или фильтровать ..?) Эти термины, чтобы анализаторasticsearch возвращал только quatro?

1 Ответ

0 голосов
/ 03 апреля 2019

Ну, может быть, не лучшее решение, так как мне приходится использовать _source, а _source довольно медленный, но он работает (вы можете найти способ вернуть 'abc' вместо 'a', 'b', 'c' i thinck; ))

Конечно, лучшим решением должно быть их удаление во время индексации. Я не думаю, что вы могли бы сделать анализатор для этого (потому что порядок вашего символа важен)

{
  "size": 0,
  "aggs": {
    "removeDup": {
      "terms": {
        "script": "def dup = new ArrayList(); def lastval = ''; def array_chars = params['_source']['yourfieldname'].toCharArray();for (int i=0; i< array_chars.length; i++){if(array_chars[i] != lastval) {lastval = array_chars[i];dup.add(lastval);}} return dup.toString();"
      }
    }
  }
}
...