【发布时间】:2019-04-03 09:14:01
【问题描述】:
例子
quatro
quattro
quatttro
...
quatttttttttttttttttttttttttro
期望的输出
quatro
如何分析(或过滤..?)这些术语,所以弹性搜索分析器将只返回quatro?
【问题讨论】:
标签: elasticsearch character stemming
例子
quatro
quattro
quatttro
...
quatttttttttttttttttttttttttro
期望的输出
quatro
如何分析(或过滤..?)这些术语,所以弹性搜索分析器将只返回quatro?
【问题讨论】:
标签: elasticsearch character stemming
好吧,也许不是最好的解决方案,因为我必须使用 _source 并且 _source 很慢但它可以工作(你可以找到一种方法来返回 'abc' 而不是 'a','b','c' i think; ))
当然最好的解决方案应该是在索引时删除它们。 我不认为你可以为此做一个分析器(因为你的 char 的顺序很重要)
{
"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();"
}
}
}
}
【讨论】: