Elasticsearch-sudachi的罗马字读音假名过滤器
假名过滤器
在Elasticsearch的Sudachi插件中,有一个sudachi_readingform过滤器,用于获取读音形式的假名。
{
"settings": {
"index": {
"analysis": {
"filter": {
"romaji_readingform": {
"type": "sudachi_readingform",
"use_romaji": true
},
"katakana_readingform": {
"type": "sudachi_readingform",
"use_romaji": false
}
},
"tokenizer": {
"sudachi_tokenizer": {
"type": "sudachi_tokenizer"
}
},
"analyzer": {
"romaji_analyzer": {
"tokenizer": "sudachi_tokenizer",
"filter": [ "romaji_readingform" ]
},
"katakana_analyzer": {
"tokenizer": "sudachi_tokenizer",
"filter": [ "katakana_readingform" ]
}
}
}
}
}
}
在这个设置下,您可以使用以下查询获得读音。
{
"analyzer": "katakana_analyzer",
"text": "寿司"
}
结果将会变成这样。
{
"tokens" : [
{
"token" : "スシ",
"start_offset" : 0,
"end_offset" : 2,
"type" : "word",
"position" : 0
}
]
}
您还可以选择使用罗马拼音进行阅读。
{
"analyzer": "romaji_analyzer",
"text": "寿司"
}
{
"tokens" : [
{
"token" : "susi",
"start_offset" : 0,
"end_offset" : 2,
"type" : "word",
"position" : 0
}
]
}
黑字与罗马字的格式差异
该罗马字拼音转换功能最初来自于kuromoji,并且是按照它的规则进行的。然而,kuromoji和Elasticsearch-sudachi在罗马字拼音的表示规则上有所不同。kuromoji采用了Hepburn式(的一种),而Elasticsearch-sudachi则采用了类似MS-IME风格的罗马字输入形式。
入力kuromojiEs-sudachi寿司sushisusi京都
kyoutoコーヒーkohiho-hi-勘案kan’ankannanっN/Altu
kyoutoコーヒーkohiho-hi-勘案kan’ankannanっN/Altu
在罗马字拼写法中,常见的有Hepburn式、kunrei式和日本式,但是 Elasticsearch-sudachi 选择了与kuromoji不同的 MS-IME 风格的输入法规则作为其拼写规则。
当考虑到在 Elasticsearch 中使用读音的罗马字拼写的目的时,最有价值的应该就是增量搜索。在输入搜索关键词时,不会出现使用“Hepburn”或其他常见罗马字输入的情况。因此,我们采用了输入法的格式,尤其是最广泛使用的MS-IME系列的拼写规则。
总结
在Elasticsearch-sudachi中,您可以使用sudachi_readingfrom过滤器获取罗马字拼音。罗马字的格式是为了在增量搜索中使用,使用类似于MS-IME的输入法。
祝你过上美好的酸橙生活。