Фильтр символов HTML strip
Удаляет HTML-элементы из текста и заменяет HTML-сущности их декодированными значениями (например, заменяет & на &).
Фильтр html_strip использует HTMLStripCharFilter из Lucene.
Пример
Следующий запрос 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" ]пропускает HTML-элемент<p>.
Настройка
Для настройки фильтра html_strip дублируйте его, чтобы создать основу для нового пользовательского фильтра символов. Вы можете изменить фильтр, используя его настраиваемые параметры.
Следующий запрос API создания индекса настраивает новый настраиваемый анализатор с использованием пользовательского фильтра html_strip, my_custom_html_strip_char_filter.
Фильтр my_custom_html_strip_char_filter пропускает удаление HTML-элемента <b>.
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"
]
}
}
}
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/analysis-htmlstrip-charfilter.html