お世話になっております。
「貴社の記者が汽車で帰社する」というドキュメントに対して、漢字、読み仮名でサジェストを得たいのですが、うまくいかず相談させていただきました。
indexは以下のようになっております。
PUT kaiba
{
"settings": {
"index": {
"analysis": {
"analyzer": {
"tag_analyzer": {
"type": "custom",
"tokenizer": "kuromoji_tokenizer",
"filter": [
"kuromoji_readingform",
"lowercase"
],
"mode": "search"
}
}
}
}
},
"mappings": {
"tags": {
"properties": {
"name_completion": {
"type": "completion",
"analyzer": "tag_analyzer"
}
}
}
}
}
GET /kaiba/tags/_search
{
"suggest": {
"hoge": {
"prefix": "貴社",
"completion": {
"field": "name_completion"
}
}
}
}
- 貴社 => OK
- 貴社の記 => OK (こんな検索はしないでしょうが)
- キシ => OK
- キシャ => OK
- キシャノ => OK
- キシャノキ => NG
- キシャノキシャ => NG
kuromoji_readingformを使用せず、自前で読み仮名を得て、standard tokenizerを使用したフィールドを入れればうまくいくのですが、できればkuromoji_readingformに寄せたいです。
良い方法はないでしょうか?
どうも長い単語で試してみても3〜4文字でしかサジェストを得ることができないようで、他の問題のような気もします…