示例
quatro
quattro
quatttro
...
quatttttttttttttttttttttttttro
所需的输出
quatro
如何分析(或过滤..?)这些术语,因此elasticsearch分析器将仅返回quatro
?
答案 0 :(得分:0)
也许不是最好的解决方案,因为我必须使用_source,并且_source相当慢,但是它可以工作(您可以找到一种返回'abc'而不是'a','b','c'的方法,我想办法了; ))
当然,最好的解决方案应该是在索引时间删除它们。 我不希望您为此做一个分析器(因为字符的顺序很重要)
{
"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();"
}
}
}
}