昨日,プログラム中から単語を切り出して検索できるプログラムを作った.
検索はできるが,一単語でしか検索できない,記号を検索できないなどの問題があって,あまり便利ではなかった.
単語を切り出すのをやめて,n-gramして全文検索できるようにした.
こういう感じ.
これで,どんな文字でも検索できるようになった.
% searcher 'こんにち' /Users/fkd/co/newgrep/searcher.rb 3:# こんにちは,今日はよいお天気ですね 9:# こんにちこんにちこんにち % searcher '< Sequel::Model' /Users/fkd/co/newgrep/model.rb 16:class LineContent < Sequel::Model 27:class Directory < Sequel::Model 41:class Document < Sequel::Model 108:class Index < Sequel::Model 126:class Token < Sequel::Model
1文字ずつずらして見ていくので,インデックスを作るのは遅くなった.検索速度はそんなに変わってない.
次は高速化,という感じなのだけど,勘でやってるので,難しそう.