【问题标题】:Multiple-characters filter / analyzer多字符过滤器/分析器
【发布时间】:2019-04-03 09:14:01
【问题描述】:

例子

quatro
quattro
quatttro
...
quatttttttttttttttttttttttttro

期望的输出

quatro

如何分析(或过滤..?)这些术语,所以弹性搜索分析器将只返回quatro

【问题讨论】:

    标签: elasticsearch character stemming


    【解决方案1】:

    好吧,也许不是最好的解决方案,因为我必须使用 _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();"
          }
        }
      }
    }
    

    【讨论】:

    • 谢谢。我不能使用脚本,所以最好的方法是在将它们放入索引之前删除服务器端的重复字符
    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    相关资源
    最近更新 更多