HTMLストリップ文字フィルター
テキストからHTML要素を削除し、HTMLエンティティをデコードされた値に置き換えます(例:&
を&
に置き換えます)。
## 例
次の[分析API](/read/elasticsearch-8-15/1a51b9d359d8a54c.md)リクエストは、`````html_strip`````フィルターを使用してテキスト`````<p>I'm so <b>happy</b>!</p>`````を`````\nI'm so happy!\n`````に変更します。
#### Python
``````python
resp = client.indices.analyze(
tokenizer="keyword",
char_filter=[
"html_strip"
],
text="I'm so happy</b>!</p>",
)
print(resp)
`
Ruby
response = client.indices.analyze(
body: {
tokenizer: 'keyword',
char_filter: [
'html_strip'
],
text: 'I'm so happy</b>!</p>'
}
)
puts response
Js
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
フィルターを使用して新しいカスタムアナライザーを構成します。
Python
resp = client.indices.create(
index="my-index-000001",
settings={
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "keyword",
"char_filter": [
"html_strip"
]
}
}
}
},
)
print(resp)
Ruby
response = client.indices.create(
index: 'my-index-000001',
body: {
settings: {
analysis: {
analyzer: {
my_analyzer: {
tokenizer: 'keyword',
char_filter: [
'html_strip'
]
}
}
}
}
}
)
puts response
Js
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要素をスキップします。
カスタマイズ
次の[インデックス作成API](/read/elasticsearch-8-15/b5c127aabf881d48.md)リクエストは、カスタム`````html_strip`````フィルター`````my_custom_html_strip_char_filter`````を使用して新しい[カスタムアナライザー](/read/elasticsearch-8-15/f8c7123dddb484d0.md)を構成します。
`````my_custom_html_strip_char_filter`````フィルターは`````<b>````` HTML要素の削除をスキップします。
#### Python
``````python
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)
`
Ruby
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
Js
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"
]
}
}
}
}
}