用于标准分析仪的Elasticsearch定制分隔符

问题描述 投票:1回答:1

可以为standard分析仪提供定制的分隔符列表吗?

我的应用程序提供了一个元素下拉列表,我可以在其中选择dog,cat,mouse并将其用作搜索的过滤器。我希望能够选择狗,猫或鼠标作为过滤器值。请注意,逗号不是此元素字段的唯一分隔符。我也可以有dog&catdog<br>catdog;cat;mouse

字段映射:

"mappings": {
    "properties": {
        "element": {
            "type": "text",
        }
        ................
    }
}
elasticsearch elasticsearch-mapping
1个回答
0
投票

[您可以使用char_filter将特定字符替换为其他字符,elasticsearch已经在, &上中断,对于其他字符(不是定界符),您可以在char_filter中定义它们。

您还可以使用如下所示的Analyze API来查看char_filter是否正确替换了定界符。

由于<br>是HTML代码,标准分析器将为其创建令牌,因此您可以使用html_strip char_filter,如下所示:

{
  "tokenizer" : "standard",
  "filter" : ["lowercase"],
  "char_filter" : ["html_strip"],
  "text" : "dog<br>cat"
}


{
    "tokens": [
        {
            "token": "dog",
            "start_offset": 0,
            "end_offset": 3,
            "type": "<ALPHANUM>",
            "position": 0
        },
        {
            "token": "cat",
            "start_offset": 7,
            "end_offset": 10,
            "type": "<ALPHANUM>",
            "position": 1
        }
    ]
}
© www.soinside.com 2019 - 2024. All rights reserved.