HTML Strip Character Filter
- 将html元素替换成对应的解码值(例如
&
替换成&
)。 - 示例
POST _analyze
{
"char_filter": [
"html_strip"
],
"tokenizer": "keyword",
"text": "<p>I'm so <b>happy</b>!</p>"
}
产生
I'm so happy!
keyword换成standard产生[ I'm, so, happy ]
。
- 配置参数
参数 | 说明 |
---|---|
escaped_tags | 会被保留的HTML元素 |
示例
POST _analyze
{
"char_filter": [
{
"type": "html_strip",
"escaped_tags":["b"]
}
],
"tokenizer": "keyword",
"text": "<p>I'm so <b>happy</b>!</p>"
}
产生
I'm so <b>happy</b>!
Mapping Character Filter
- 定义一堆键值对,匹配到键就替换成值。
- 配置参数
参数 | 说明 |
---|---|
mappings | 键值对数组,格式为key => value
|
mappings_path | 键值对文件路径。相对于config或绝对路径。 UTF-8编码。 每行一个键值对,格式为 key => value 。 |
示例
POST _analyze
{
"char_filter": [
{
"type": "mapping",
"mappings": [
"٠ => 0",
"١ => 1",
"٢ => 2",
"٣ => 3",
"٤ => 4",
"٥ => 5",
"٦ => 6",
"٧ => 7",
"٨ => 8",
"٩ => 9"
]
}
],
"tokenizer": "keyword",
"text": "My license plate is ٢٥٠١٥"
}
产生[ My license plate is 25015 ]
。
上一个例子是单字符的替换,也可以多字符。
POST _analyze
{
"char_filter": [
{
"type": "mapping",
"mappings": [
":) => _happy_",
":( => _sad_"
]
}
],
"tokenizer": "keyword",
"text": "I'm delighted about it :("
}
产生[ I'm delighted about it _sad_ ]
。
Pattern Replace Character Filter
- 使用正则表达式去替换。替换文本可以引用捕获组中的内容。
- 配置参数
参数 | 说明 | |
---|---|---|
pattern | Java正则表达式。必须。 | |
replacement | 替换文本。可以使用$1..$9 这样的语法,引用捕获组中的值。 |
|
flags | Java正则表达式flags,多个用` | `分离,例如"CASE_INSENSITIVE | COMMENTS"。 |
示例
POST _analyze
{
"char_filter": [
{
"type": "pattern_replace",
"pattern": "(\\d+)-(?=\\d)",
"replacement": "$1_"
}
],
"tokenizer": "keyword",
"text": "My credit card is 123-456-789"
}
产生[ My credit card is 123_456_789 ]
。
网友评论