2016-01-01から1年間の記事一覧
GroongaはC/C++で書かれた国産の全文検索エンジンライブラリです。 サーバとしても組み込みのライブラリとしても利用することが可能です。 Groongaでは従来よりドリルダウン機能(ファセット)が提供されていましたが、 ドリルダウン機能の結果をつかってさら…
はじめに あいまい検索はたとえば、編集距離を求めることによって実現することができます。 レーベンシュタイン距離(レーベンシュタインきょり、英: Levenshtein distance)は、二つの文字列がどの程度異なっているかを示す距離の一種である。編集距離(へ…
MySQL5.7でできたgenerated columnってどんなのかな〜って調べていると、参照時に所定の計算結果を反映してから取得する仮想カラムVIRTUALと、更新時に所定の計算結果後の値を格納してくれるSTORED(Mariaの場合PERSISTENT)があることがわかりました。 MySQL…
先日、Groongaでビットパラレルで高速な編集距離の実装を検証してました。 ビットパラレルを使ってGroongaで高速な編集距離関数の検証 - CreateField Blog 編集距離とは挿入、置換、削除、並び替えの編集操作によって一方の文字列をもう一方の文字列に変形す…
Groongaではサジェスト機能のためにedit_distance関数が実装されています。 これはO(nm)の計算量が必要な動的計画法で文字数が多くなると結構遅くなります。 そこで、高速化するためにビットパラレル法をGroongaの関数で実装してみて比較してみました。 naoa…