HTML 剥离字符过滤器
编辑HTML 剥离字符过滤器
编辑从文本中剥离 HTML 元素,并将 HTML 实体替换为其解码值(例如,将 &
替换为 &
)。
html_strip
过滤器使用 Lucene 的 HTMLStripCharFilter。
示例
编辑以下 analyze API 请求使用 html_strip
过滤器将文本 <p>I'm so <b>happy</b>!</p>
更改为 \nI'm so happy!\n
。
resp = client.indices.analyze( tokenizer="keyword", char_filter=[ "html_strip" ], text="I'm so happy</b>!</p>", ) print(resp)
response = client.indices.analyze( body: { tokenizer: 'keyword', char_filter: [ 'html_strip' ], text: 'I'm so happy</b>!</p>' } ) puts response
const response = await client.indices.analyze({ tokenizer: "keyword", char_filter: ["html_strip"], text: "I'm so happy</b>!</p>", }); console.log(response);
GET /_analyze { "tokenizer": "keyword", "char_filter": [ "html_strip" ], "text": "<p>I'm so <b>happy</b>!</p>" }
该过滤器产生以下文本
[ \nI'm so happy!\n ]
添加到分析器
编辑以下 创建索引 API 请求使用 html_strip
过滤器配置新的 自定义分析器。
resp = client.indices.create( index="my-index-000001", settings={ "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "keyword", "char_filter": [ "html_strip" ] } } } }, ) print(resp)
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_analyzer: { tokenizer: 'keyword', char_filter: [ 'html_strip' ] } } } } } ) puts response
const response = await client.indices.create({ index: "my-index-000001", settings: { analysis: { analyzer: { my_analyzer: { tokenizer: "keyword", char_filter: ["html_strip"], }, }, }, }, }); console.log(response);
PUT /my-index-000001 { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "keyword", "char_filter": [ "html_strip" ] } } } } }
可配置参数
编辑-
escaped_tags
- (可选,字符串数组)不包含尖括号 (
< >
) 的 HTML 元素数组。该过滤器在从文本中剥离 HTML 时会跳过这些 HTML 元素。例如,[ "p" ]
的值会跳过<p>
HTML 元素。
自定义
编辑要自定义 html_strip
过滤器,请复制它以创建新的自定义字符过滤器的基础。你可以使用其可配置参数修改过滤器。
以下 创建索引 API 请求使用自定义的 html_strip
过滤器 my_custom_html_strip_char_filter
配置新的 自定义分析器。
my_custom_html_strip_char_filter
过滤器跳过删除 <b>
HTML 元素。
resp = client.indices.create( index="my-index-000001", settings={ "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "keyword", "char_filter": [ "my_custom_html_strip_char_filter" ] } }, "char_filter": { "my_custom_html_strip_char_filter": { "type": "html_strip", "escaped_tags": [ "b" ] } } } }, ) print(resp)
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_analyzer: { tokenizer: 'keyword', char_filter: [ 'my_custom_html_strip_char_filter' ] } }, char_filter: { my_custom_html_strip_char_filter: { type: 'html_strip', escaped_tags: [ 'b' ] } } } } } ) puts response
const response = await client.indices.create({ index: "my-index-000001", settings: { analysis: { analyzer: { my_analyzer: { tokenizer: "keyword", char_filter: ["my_custom_html_strip_char_filter"], }, }, char_filter: { my_custom_html_strip_char_filter: { type: "html_strip", escaped_tags: ["b"], }, }, }, }, }); console.log(response);
PUT my-index-000001 { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "keyword", "char_filter": [ "my_custom_html_strip_char_filter" ] } }, "char_filter": { "my_custom_html_strip_char_filter": { "type": "html_strip", "escaped_tags": [ "b" ] } } } } }