Фильтр токенов CJK bigram
Формирует биграммы из токенов CJK (китайский, японский и корейский).
Этот фильтр включён в встроенный анализатор языка CJK Elasticsearch. Он использует CJKBigramFilter Lucene.
Пример
Следующий запрос API analyze API демонстрирует работу фильтра токенов CJK bigram.
resp = client.indices.analyze(
tokenizer="standard",
filter=[
"cjk_bigram"
],
text="東京都は、日本の首都であり",
)
print(resp) response = client.indices.analyze(
body: {
tokenizer: 'standard',
filter: [
'cjk_bigram'
],
text: '東京都は、日本の首都であり'
}
)
puts response const response = await client.indices.analyze({
tokenizer: "standard",
filter: ["cjk_bigram"],
text: "東京都は、日本の首都であり",
});
console.log(response); GET /_analyze
{
"tokenizer" : "standard",
"filter" : ["cjk_bigram"],
"text" : "東京都は、日本の首都であり"
} Фильтр генерирует следующие токены:
[ 東京, 京都, 都は, 日本, 本の, の首, 首都, 都で, であ, あり ]
Добавление в анализатор
Следующий запрос API создания индекса использует фильтр токенов CJK bigram для настройки нового пользовательского анализатора.
resp = client.indices.create(
index="cjk_bigram_example",
settings={
"analysis": {
"analyzer": {
"standard_cjk_bigram": {
"tokenizer": "standard",
"filter": [
"cjk_bigram"
]
}
}
}
},
)
print(resp) response = client.indices.create(
index: 'cjk_bigram_example',
body: {
settings: {
analysis: {
analyzer: {
standard_cjk_bigram: {
tokenizer: 'standard',
filter: [
'cjk_bigram'
]
}
}
}
}
}
)
puts response const response = await client.indices.create({
index: "cjk_bigram_example",
settings: {
analysis: {
analyzer: {
standard_cjk_bigram: {
tokenizer: "standard",
filter: ["cjk_bigram"],
},
},
},
},
});
console.log(response); PUT /cjk_bigram_example
{
"settings": {
"analysis": {
"analyzer": {
"standard_cjk_bigram": {
"tokenizer": "standard",
"filter": [ "cjk_bigram" ]
}
}
}
}
} Настраиваемые параметры
-
ignored_scripts -
(Необязательно, массив скриптов символов) Массив наборов символов, для которых необходимо отключить биграммы. Возможные значения:
-
han -
hangul -
hiragana -
katakana
Весь ввод, не относящийся к CJK, передаётся без изменений.
-
-
output_unigrams - (Необязательно, Булево) Если
true, генерировать токены как в форме биграммы, так и униграммы. Еслиfalse, символ CJK выводится в форме униграммы, если у него нет смежных символов. По умолчаниюfalse.
Настройка
Для настройки фильтра токенов CJK bigram продублируйте его, чтобы создать основу для нового пользовательского фильтра токенов. Вы можете изменить фильтр с помощью его настраиваемых параметров.
resp = client.indices.create(
index="cjk_bigram_example",
settings={
"analysis": {
"analyzer": {
"han_bigrams": {
"tokenizer": "standard",
"filter": [
"han_bigrams_filter"
]
}
},
"filter": {
"han_bigrams_filter": {
"type": "cjk_bigram",
"ignored_scripts": [
"hangul",
"hiragana",
"katakana"
],
"output_unigrams": True
}
}
}
},
)
print(resp) response = client.indices.create(
index: 'cjk_bigram_example',
body: {
settings: {
analysis: {
analyzer: {
han_bigrams: {
tokenizer: 'standard',
filter: [
'han_bigrams_filter'
]
}
},
filter: {
han_bigrams_filter: {
type: 'cjk_bigram',
ignored_scripts: [
'hangul',
'hiragana',
'katakana'
],
output_unigrams: true
}
}
}
}
}
)
puts response const response = await client.indices.create({
index: "cjk_bigram_example",
settings: {
analysis: {
analyzer: {
han_bigrams: {
tokenizer: "standard",
filter: ["han_bigrams_filter"],
},
},
filter: {
han_bigrams_filter: {
type: "cjk_bigram",
ignored_scripts: ["hangul", "hiragana", "katakana"],
output_unigrams: true,
},
},
},
},
});
console.log(response); PUT /cjk_bigram_example
{
"settings": {
"analysis": {
"analyzer": {
"han_bigrams": {
"tokenizer": "standard",
"filter": [ "han_bigrams_filter" ]
}
},
"filter": {
"han_bigrams_filter": {
"type": "cjk_bigram",
"ignored_scripts": [
"hangul",
"hiragana",
"katakana"
],
"output_unigrams": true
}
}
}
}
}
© 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-cjk-bigram-tokenfilter.html