在 Elasticsearch 中,字符过滤器(Character Filters)是文本分析器的重要组成部分,用于在分词之前对原始文本进行预处理。它们可以对字符流进行转换,例如添加、删除或更改字符。Elasticsearch 提供了三种内置的字符过滤器:`html_strip`、`mapping`和`pattern_replace`。以下是它们的详细说明和使用示例:
1.HTML 剥离字符过滤器(HTML Strip Character Filter)
功能:用于移除文本中的 HTML 标签,并解码 HTML 实体(如`&`转换为`&`)。
使用示例:
```json
POST _analyze
{
"char_filter": [
{
"type": "html_strip"
}
],
"text": "<p><b>听我说</b>谢谢你,因为有你</p>"
}
```
结果:
```
听我说谢谢你,因为有你
```
HTML 标签被移除,文本内容被保留。
2.映射字符过滤器(Mapping Character Filter)
功能:根据预定义的映