1

我有弹性搜索,其映射创建如下。

PUT /test
{
  "settings":{
      "analysis":{
         "analyzer":{
            "my_analyzer":{
               "filter":[
                  "lowercase"
               ],
               "type":"custom",
               "tokenizer":"my_tokenizer"
            }
         },
         "tokenizer": {
           "my_tokenizer": {
             "type": "char_group",
             "tokenize_on_chars": [
                "whitespace",
                ":"
              ]
           }
         }
      }
   },
   "mappings":{
      "properties":{
         "data":{
            "type":"text",
            "analyzer":"my_analyzer"
         }
      }
   }
}

我想要做的是在遇到 : 字符时创建一个新令牌并将其从数据中删除。但我只想在它在双引号(“)之外时这样做。有没有办法完成它?

4

1 回答 1

0

恕我直言,您可以尝试使用正则表达式和模式标记器(https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-tokenizer.html)来表达它,或者......去地狱自己编写标记器并尝试将其添加到您的弹性搜索安装中。

于 2020-01-17T10:37:57.963 回答