MySQL,fulltextインデックス,Ngram化のまとめ。サイトマップ考えてる?MySQL,fulltextインデックス,Ngram化のまとめ。00:46少し説明的に。MySQLには、fulltextという全文検索用のインデックスがあります。日本語は単語単位で区切られていないので、なんらかの方法で区切る必要があります。区切り方には、形態解析で区切る方法と、意味なんて考えずに1文字とか2文字とかで区切っていくNgramという方式があります。(あ、その前に、検索対象が数万件くらいなら、「REGEXP」で検索するのがいいと思います。速いし、おそらく厳密だし。)で、今までは形態解析の方でやってました(mecabなるものを利用)。このインデックス化は、「アイスクリーム」を検索したい時に、インデックスに「アイスクリーム」しかないと、「アイス」という検索ではヒットしないというところが難点でした。初期導入時は、、なんとなく意味で区切った方がインデックス文字列が少なくていいし、優れているのではないかというのが選択動機だったと思います。インデックス文字列の作り方。Ngram化したい文字列。',$str));こんな感じで、$strをMySQLにインサートします。