日本語は、分かち書きしない言語のため日本語でちゃんと全文検索できるようにする為には、検索対象のコンテンツの内容、利用するユーザーのスキルなどを考慮しなければ検索精度を向上させることは非常に困難です。逆を言えば、検索対象のコンテンツ、利用するユーザーのスキルが変われば設計が変わってくると言えます。 日本語を検索できるようにトークナイズするには、代表的なものに形態素解析とN-グラムがあります。簡単に説明すると形態素解析を検索で使用すると、単語単位で検索するため、適合率が高く(マッチ度が高いものが検索される)、再現率が低くなります(検索漏れが多くなる)。例えば、キーワード ”京都” では、”東京都” はヒットしません。一方、N-グラムを検索で使用すると、データベースのLike検索に近い検索が可能になり、形態素解析とは逆に、再現率が高くなり、適合率が低くなります。 これらの日本語解析の特徴と、検索
![Elasticsearch 日本語で全文検索 その1](https://cdn-ak-scissors.b.st-hatena.com/image/square/94d7335f8cf3102c588912497114931eb14b37c4/height=288;version=1;width=512/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1200%2F1%2AepZ26LLL4YO-kF9PdZSkOQ.jpeg)