【问题标题】:Elasticsearch pattern tokenizer to exclude commas and <br> tags用于排除逗号和 <br> 标签的 Elasticsearch 模式标记器
【发布时间】:2020-09-13 16:05:34
【问题描述】:

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

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&lt;br&gt;cat 这样的值,但我不知道如何使用模式标记器根据逗号 &lt;br&gt; 标签拆分值

【问题讨论】:

    标签: elasticsearch elasticsearch-dsl elasticsearch-mapping elasticsearch-analyzers


    【解决方案1】:

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

    char_group

    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",
                ";",
                "-",
                ","
                ]
            }
          }
        }
      }
    

    【讨论】:

    • 使用这种方法,像dog&lt;br&gt;cat 这样的值会被索引为dog\ncat。不幸的是,我不能将它们设为 2 个单独的值
    • @shAkur html_strip 用解码后的值替换 html,例如
      将变为 \n。 “空白”将自动对其进行拆分。如果要删除空格,则在 tokenize_on_chars 中添加“\n”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2014-03-24
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多