全文検索
個人のローカルファイルを検索するためのアプリケーションソフトウェア。Word、Excel、PDFなど様々なファイル形式に対応している。また、画像データなどの、個人の保有にあるマルチメディアデータの検索に特化したものもあり、スピードと手軽さが求められている。
Tokyo Dystopia: a full-text search system 以下の製品群と組み合わせて使用する。Tokyo Cabinet: a modern implementation of DBM、Tokyo Tyrant: network interface of Tokyo Cabinet、Tokyo Promenade: a content management system、Kyoto Cabinet: a straightforward implementation of DBM、Kyoto Tycoon: a handy cache/storage server
Hyper Estraier N-gramベース (N.M-gram)。わかち書き方式も併用可。 分散インデクス、Webクローラ、検索用CGIなど標準添付のプログラムが充実。 N.M-gram方式とは、N文字に続くM文字のハッシュ値を計算し保持することによって、フレーズ検索が可能。フォルスドロップあり。類似検索あり。 大規模なインデックスも作成可。
msearch インデックスは「ファイル名|タブコード|本文|改行コード」の単純なもので、これにGrep検索をかけることで対象文書を抽出する。 設置が非常に容易であり、root権限が無くてもインデックスの更新が可能なため、個人の小規模サイトを中心に用いられている。 UTF-8などUnicodeにも対応したUnicode版msearchがある。
Namazu わかち書きベース。 2単語によるフレーズからハッシュ値を計算し保持することによって、フレーズ検索が可能。
リニアサーチ(通称「馬鹿サーチ」)やバイナリーサーチ(二分法)、ハッシュ法などがあるが、それぞれ得失があり、「辞書の登録語彙数が多くなると手間数が増えて遅くなる」という問題がある。
一般的な検索エンジンではダブル配列法が用いられているようだが、ダブル配列法は主記憶領域が狭い過去の環境に合わせて開発されたらしいので、現在では可読性が悪いため採用するのはお奨めできない ダブル配列法の解析から、その祖形であるトリプル配列法が発見(おそらくは再発見)されたが、発明者は知られていない。 トリプル配列は、辞書登録語彙に関わらず、最長の登録語彙の長さ l に比例した手間数しかかからないのでお手軽なあるアルゴリズムだが、最長語彙 l が増えるとヒットする語数が減るので、途中でリニアサーチに切替えるとコンパクトになる。また、プログラミング言語の予約語のように数が限られていて頻出する語については、ハッシュ法を使ったほうが簡単である。
フォルスドロップ(英: false drop=誤った候補)あり。 古くからあり、日本で広く使われている全文検索システム。 小中規模を対象とし、大規模が苦手。
Apache Lucene/Solr Analyzerと呼ばれるクラスを選ぶことにより、N-gramやわかち書き形式でのインデックス作成ができる。 Javaによる全文検索システム。 Luceneがクラスライブラリとして提供され、Luceneを利用した全文検索サーバーがSolrとなる。 IBM WebSphere Commerce, Salesforce, Microsoft Azure, SAP Hybris, 楽天などで利用されている。 大規模なインデックスも作成可。スケーリングし稼働率、対障害性を高めるZookeeperを使った仕組みを備える。
Rast わかち書きベース・N-gramベースの選択 単語の出現位置情報を保持し、正確なフレーズ検索が可能。フォルスドロップなし。
Senna わかち書きベース・N-gramベースの選択 他のプログラムからライブラリとして呼び出して利用する。 MySQLの中に全文検索エンジンを組み込むパッチが提供されており、MySQLを利用しているプログラムであれば全文検索機能を手軽に実現できる。 PostgreSQLに対して、Sennaを全文検索エンジンとして組み込むためのモジュールLudiaが公開されている。 Perlバインディングにより、Perlスクリプトから簡単に利用することができる。PHP、Ruby、Pythonバインディングも提供されている。 大規模なインデックスも作成可。ただし、分散検索の機能はない。
Groonga Sennaの後継エンジン