Facebookで投稿や写真などをチェックできます。
NILScriptには軽量データベースエンジンSQLiteを扱うクラスが用意されています。 SQLiteには文字列中の単語をインデックス化して高速な全文検索を行うFTS3という機能が用意されていますが、標準搭載されている単語分割処理は文字列を空白文字で分割するだけの簡易的なものなので、そのままでは日本語のテキストをまともに処理できません。 そこで、日本語の文字列を分かち書きする機能を提供する「Segmenter」クラスを新たに用意しました。 アルゴリズム本体はプラグイン方式で追加できるようになっており、現在はTinySegmenter- Javascriptだけで実装されたコンパクトな分かち書きソフトウェアに高速化のための修正を加えたものにSpiderMonkey独自機能を利用したチューニングを加えて作成したプラグインが用意されています。 TinySegmenterは簡易的な物なので、「す
mal_blue@tumblrでFirefox3に載っているSQLiteに全文検索機能がついたのを知りました。昨年12月にGoogle Japan Blog: Google デベロッパー交流会 ( 第 4 回 )に参加させていただいたとき、Google Gearsの開発者がGoogle Gearsでサポートされているlocal storage(実体はsqliteのデータベースでSQLを使ってデータを読み書きできます)について非ASCIIのfull-text searchをサポートしたいと言われていたのを思い出しました。 その後どうなったかなー、と思ってちょっと検索してみたらGoogle Gearsと直接関係ないけどSQLite Full Text Search with MeCab - mynoteという記事が。この記事はSQLiteのCのAPIにはtokenizerを指定することができて
はじめに† SQLiteの全文検索の拡張FTSは、まだ実験的な段階でfts1, fts2と作っては破棄(?)してきて、今はfts3が最新のようです。(sqlite3.5.1)。ただし、コンパイル済みバイナリの配布は止めてしまったようです。実験段階なので欲しい人は自分でコンパイルしてね♥みたいな。このftsで日本語が使えないとか色々言われているのに加えて、ちょっとプロトタイプをでっち上げるのに必要になりそうな雰囲気なので、日本語でもftsが使えるようにしてみました。 ↑ そもそもの動機† 『SQLite の全文検索を Python から使ってみる (3)』を読んだ。ここでftsのデフォルトの英文用のtokenizer(空白で単語を区切る)で日本語を無理やり使うためにMeCabを使って分かち書きをして、その文字列を挿入し、取り出したあとに連結とかしてた・・・。誰も知らないようだが、実はfts2
2008-03-20 SQLiteで全文検索システムを実装する SQLiteで,掲示板の投稿文に対する日本語全文検索システムを実装することにしました。全文検索はかなり奥が深く,難易度の高い分野です。決して簡単ではありません。 検索対象の情報量が少ないのならさほど苦労しないのですよ。全情報をメモリに読み込んで,逐次検索すればよいのです。ところが全体をメモリに読み込むことができないくらい大容量の情報を扱う場合,なんらかの方法で「索引付け」をしなければ,探し出すのが難しくなってしまいます。 たとえば,「アルファベット順に並んでいない英和辞書」があったとします。これを使って単語を調べなければならないとしたら,どうでしょうか。大変なことになりそうですよね。単語がアルファベットの逆順に並んでいるのならまだ救い様がありそうですが,「てきとー」に並べられている辞書だとしたら,そんなの使い物になりません。
FTS3を使って全文検索してみた。 SQLiteの全文検索というと、昔はFTS1とか2とかのモジュールを使用する方式だったみたいだけど、現在はFTS3なるものがsqlite3.exeとかに含まれているので、得に下準備をすることなく使用できるっぽい。 公式の説明 http://www.sqlite.org/fts3.html 参考にしたサイト http://cast-a-spell.at.webry.info/200806/article_15.html フルテキストサーチする為にやることは以下の3つ。 ・CREATE VIRTUAL TABLE テーブル名 USING fts3 でテーブルを生成する ・INSERTする時に、フルテキスト検索に使いたいカラムに、ヒットさせたいワードを半角スペースで区切りつつ登録 ・MATCHを使って検索する 検索方法とかそれなりに用意されているので、そこそこ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く