可以为standard
分析仪提供定制的分隔符列表吗?
我的应用程序提供了一个元素下拉列表,我可以在其中选择dog,cat,mouse
并将其用作搜索的过滤器。我希望能够选择狗,猫或鼠标作为过滤器值。请注意,逗号不是此元素字段的唯一分隔符。我也可以有dog&cat
或dog<br>cat
或dog;cat;mouse
字段映射:
"mappings": {
"properties": {
"element": {
"type": "text",
}
................
}
}
[您可以使用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
}
]
}