弹性搜索中的模式标记器在白色空间和特殊字符上分裂

时间:2018-02-02 12:40:47

标签: elasticsearch

我在elasticsearch中创建了一个分析器,如下所示。

   {
    "analyzer": {
        "pattern_analyzers": {
            "type": "custom",
            "pattern": ",",
            "tokenizer": "pattern"
        }
    }
}

将相同的分析器添加到字符串字段,其中我将值存储为逗号分隔。 该字段的值将如下所示,

"skills":"software-engineer,hardware,android developer"

这里我没有得到确切的结果,因为想要得到的就是它只有在遇到逗号时才应该拆分。我目前得到的结果是,字符串在空格和特殊字符上分割。

如何修改我的分析器,使其仅在遇到逗号时才拆分字符串。

修改

在这样的情况下"software,Engineer (Core, Non-IT),hardware" 它不应该像"software","Engineer (Core"," Non-IT)","hardware"

那样分开

而不是"software","Engineer (Core, Non-IT)","hardware"

1 个答案:

答案 0 :(得分:1)

我认为这不是制作自定义分析仪的正确方法 试着这样做。

PUT my_index

{
  "settings": {
    "analysis": {
      "analyzer": {
        "pattern_analyzers": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "pattern",
          "pattern": ","
        }
      }
    }
  }
}