順次走査検索、逐次検索ともいう。「grep」とはUNIXにおける文字列検索コマンドであり、複数のテキストファイルの内容を順次走査していくことで、検索対象となる文字列を探し出す。一般に「grep型」と呼ばれる検索手法は、事前に索引ファイル(インデックス)を作成せず、ファイルを順次走査していくために、検索対象の増加に伴って検索速度が低下するのが特徴である。ちなみに「grep型」とは実際にgrepコマンドを使っているという意味ではない。 インデックス作成型全文検索システム 検索対象となる文書数が膨大な場合、grep型では検索を行うたびに1つ1つの文書にアクセスし、該当データを逐次検索するので、検索対象文書の増加に比例して、検索にかかる時間も長くなっていってしまう。そこであらかじめ検索対象となる文書群を走査しておき、高速な検索が可能になるような索引データを準備することで、検索時のパフォーマンスを向
検証対象 ・PostgreSQL GIN Index http://www.postgresql.jp/document/pg836doc/html/gin.html - PostgreSQLの転置インデックス ・Lucene http://lucene.apache.org/ - Javaで書かれた全文検索エンジン 実績多数 今回使用したソース。 Senの辞書、Luceneのインデックス等は自分で作成してください。 fulltextsearch-sample.zip 調査データ 青空文庫(http://www.aozora.gr.jp/)のデータを取り込んでそれぞれ検証した。 テキストデータの行ごとにレコード、インデックス作成を行い。 それぞれ検証を行った。 対象レコードは約100万レコード 検証はローカルのPostgresql 8.4上で行った。 設定はデフォルト。 PostgreSQ
適当な単語群を含む辞書があったとします。「京都の高倉二条に美味しいつけ麺のお店がある」*1という文章が入力として与えられたとき、この文章中に含まれる辞書中のキーワードを抽出したい、ということがあります。例えば辞書に「京都」「高倉二条」「つけ麺」「店」という単語が含まれていた場合には、これらの単語(と出現位置)が入力に対しての出力になります。 この類の処理は、任意の開始位置から部分一致する辞書中のキーワードをすべて取り出す処理、ということで「共通接頭辞検索 (Common Prefix Search)」などと呼ばれるそうです。形態素解析、Wikipedia やはてなキーワードのキーワードリンク処理などが代表的な応用例です。 Aho Corasick 法 任意のテキストから辞書に含まれるキーワードをすべて抽出するという処理の実現方法は色々とあります。Aho Corasick 法はその方法のひと
最近、「Introduction to Information Retrieval」というStanfordの大学院向け教科書のドラフトを読んでいます。id:naoyaあたりが勉強会で読んでいる教科書です。この教科書には、効率のいい全文検索システムを作るにはどうすればいいか、という(まさに)教科書的手法が網羅的に書いてあり、そのあたりに興味がある人には、非常に興味深く読めるお勧めの本です。 ただ、面白い面白いと言っているだけでは、エンジニアとしては価値半減ですので、GW中にrubyで一日かけて実装してみました。 さすがに実装は、一日で作ったものですから、非常に素朴です。マルチバイト文字はbi-gramで、シングルバイトはスペースなどの区切り記号で認識しています。インデックスは、rubyの処理系のHashやArrayで保持しており、外部にMarshallで書き出す、というものです。検索エンジン
こんにちは 。 検索 関連 を 担当 して いる やましー です 。 今回は livedoor で提供しているサービスの中の「検索関連」について書きます。 このブログでも過去に何度か取り上げられていますが、livedoor では検索エンジンとして HyperEstraier、lucene、mysql + senna、Namazu、SUFARY などを利用しています。 その中で lucene の利用方法や機能拡張について説明します。 lucene とは Apache Lucene は、Java で書かれた高性能で高機能な検索エンジンライブラリです。全文検索を(特にクロスプラットフォームで)必要とするほとんどのアプリケーションに適している技術です。※ 公式サイトから抜粋 インデックスの作成 lucene は転置インデックス型の検索エンジンなので、ドキュメントを検索するには、まずインデックスの作
i-revo お客様サポート 重要なお知らせ i-revoマイポータル終了のお知らせ(2017年3月31日) 日頃よりi-revoマイポータルをご愛顧いただき誠にありがとうございます。 このたび、当サイトは2017年3月31日付けにてサービスを終了いたしました。 併せて「プニマル」、「i-revo 占い」についてもサービスを終了いたしました。 2006年3月のサービス開始以来、 お客様および関係各社の皆様にはさまざまに、ご協力をいただきました。 ここに御礼申し上げます。 i-revoマイポータルのサービス終了につきまして、なにとぞご理解いただきたく存じます。 今後とも「i-revo」をよろしくお願い申し上げます。 全て見る
INDEX このページの目的 全文検索技術について簡単に フリーソフトウェアで日本語の通るもの フリーソフトウェアだが日本語が通らないもの 商用製品で日本語の通るもの どのシステムを選ぶべきか 実際の導入事例の比較一覧 参考文献紹介 掲載ありがとう ページ作者のつぶやき Since: Thu Apr 17 13:43:10 1997 Last Refreshed: Fri Nov 12 00:05:46 JST 2004 時間の都合上、この一年ほどは十分にメンテナンスできていません。 ご利用の際には、その旨、悪しからずご了承下さい。(2002/5/31) ★ (2003/7/1) 拙著『Namazuシステムの構築と活用』を改訂しました。 詳しくは サポートページをご覧ください。 ★ (2003/5/21) MitakeSearch v4.0 リリース。 ★ (2003/4/25) Ver
システムアップグレードの課題として大きく残っているのが検索エンジンの選定だ。MySQLの標準の全文検索エンジンでは日本語の単語の切り分けができないので、Slashcodeの標準のものは使えない。現状はSlashcodeとは完全に並行する形でNamazuを使っているが、辞書を鍛えてないこともあり「わかち書き」の不完全さにより、精度が低すぎてほとんど使えないものだ。そこで、新システムでは新しいエンジンを使って、より統合された検索システムを実装したい。ストーリー本文だけでなく、コメントや日記も検索対象になる予定だ。 要求仕様はこんな感じだ 精度が高い。index付きgrep並の精度が欲しい。=> n-gram方式?複数のマシンでNFSを使ってindexを共有可能。検索は絶対必要。書き込みのきちんとした排他もできれば。統合できる様、Perl APIが欲しい代案としては、XML-RPCなどの軽いリモ
Namazuとは? Namazu は手軽に使えることを第一に目指した日本語全文検索シス テムです。CGI として動作させることにより小中規模の WWW 全文 検索システムを構築することができるほか、コマンドラインや Emacs上から利用するといった個人用途にも使えます。 目次 新着情報 主な特徴 ライセンス ダウンロード 安定版ソースコード Debian GNU/Linux用debパッケージ Windows版 インストール 検索 チュートリアル 説明書 豆知識 FAQ 関連リンク集 メイリングリスト Wiki/バグ追跡システム セキュリティに関する考察 開発情報 歴史資料 出版物 催し関連 Namazu Projectとは サービス復旧状況 新着情報 2011-07-18: Namazu 2.0.21 を公開 セキュリティフィックスリリース IE6,7のクロスサイト スクリプティング脆弱性
全文検索エンジン性能評価 (2006/08/19) 概要 弊社が開発致しました圧縮インデックス方式全文検索エンジン「Sedue」(Sedue 24やGenome Sedueで利用されているエンジンSedue コア)とオープンソースな全文検索エンジン(HyperEstraier, Lucene, Senna)との性能比較を行いました。検索サーバーにはマシン1台のみを使用しました。 更新履歴 2006/09/13 インデクシングの作成方法に関して分かりにくい表現を訂正 使用環境 ベンチマークを取るに際しまして以下のようなスペックのマシンを使用致しました。 CPU: AMD Athlon(tm) 64 Processor 3000+ Memory: 2GB OS: Linux pfidev1 2.6.16-1.2111_FC4 #1 Sat May 20 20:00:28 EDT 2006 x8
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く