0

element字段使用逗号分隔的值进行索引,例如dog,cat,mouse. 我正在使用此分析器将上述值拆分为 3 个元素dogcat并且mouse

ES 配置

"settings": {
    "analysis": {
        "analyzer": {
            "separate_values" : {
                "type": "custom",
                "tokenizer": "separate_values",
                "filter": ["lowercase", "trim"]
            }
        },
        "tokenizer" : {
            "separate_values" : {
                "type" : "pattern",
                "pattern": ","
            }
        },
    }
}

映射

"element": {
    "type": "keyword",
    "normalizer": "normalizer_1",
    "fields": {
        "separated": {
            "type": "text",
            "analyzer": "separate_values",
            "fielddata": true
        }
    }
}

这很好用,但我也可以获得类似的值dog<br>cat,但我不知道如何使用模式标记器根据逗号 <br>标签拆分值

4

1 回答 1

0

一种选择是使用自定义标记器并提供用于拆分文本的所有字符。

字符组

char_group 标记器在遇到定义集中的字符时将文本分解为术语。它在需要简单的自定义标记化并且使用模式标记器的开销不可接受的情况下最有用。

{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "char_filter":  [ "html_strip" ], --> to remove html tags
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "char_group",
          "tokenize_on_chars": [    --> charcters on which to split text 
            "whitespace",
            ";",
            "-",
            ","
            ]
        }
      }
    }
  }
于 2020-05-27T03:04:54.763 回答