ホーム > 製品紹介 > 全文検索エンジン SAVVY

全文検索エンジン SAVVY

 

全文検索エンジン「SAVVY」(サビー)とは


全文検索エンジン「SAVVY」は、お客様のシステムやパッケージ・サービスなどに全文検索機能を組み込むためのSDK(ソフトウェア開発キット)・ API(アプリケーション・インターフェース)です。
全文検索機能により、数値や単語などの定型的なデータだけでなく、文や文章に対しての検索も可能になります。


当社は全文検索エンジン メーカーの老舗です

1986年のSAVVY販売開始以来、多くのお客様のご相談に対応して参りました。以下、これまでにいただいたご相談の一例です。

  • RDBのLIKEだと速度が出せない、全文検索インデクサを試したがうまくヒットさせられない
  • 他の全文検索エンジンを組み込んだのだが、委託した開発会社がチューニングできずとん挫してしまい困っている
  • サーチャーの求める特殊な検索の要件に対応して欲しい
  • PC内のアプリケーションで使うので、クライアントOSでも動くライブラリが欲しい
  • CDやDVDにコンテンツと共に検索アプリを入れて配りたいので、インストールレスで動くものが欲しい
  • レガシー システムに組み込みたいので開発言語や動作プラットフォームに制限がある
  • Javaが利用できない環境で使いたい
  • OCRの誤認識やスペルミスなども検索したい
  • 数万語ある独自の重要語の辞書を持っているので、それを使って文書の表示時に重要な部分を目立たせたい
  • 蓄積されているデータではなく、リアルタイムに流れてくるデータを全文検索したい
  • 全文検索機能の組み込みやチューニングのために、エンジニアの習得コストをかけるのは避けたい
  • OSSの有償サポートはパッチの情報提供がメインで、機能追加などの相談には乗ってもらえず困っている
  • 自社製品・サービスに組み込みたいので、自社のビジネスモデルに合う提供価格や保守ポリシーに対応して欲しい

全文検索についてご不明な点やお悩みなどありましたら、お気軽にご相談ください。


全文検索について

全文検索エンジンは目的によって大きく2種類に分かれます。弊社では両方のエンジンを開発・販売しております。

1.蓄積されたデータに対する検索

大量に蓄積されたデータ(ストック データ)を検索する仕組みです。
高速に検索するために、事前に検索対象のデータをエンジンに登録してインデックス(検索を高速に行うために使う索引情報)を作成します。 検索時は、そのインデックスのみを使うことで高速な検索を実現します。

2.流れているデータに対する検索

流れているデータ(フロー データ、ストリーム データ)を検索するための仕組みです。
高速に検索するために、事前に検索条件をエンジンに登録してインデックスを作成します。 それに対して流れてくるデータを渡すことで、事前に登録した条件に該当するかどうかを高速に判定します。


メールアプリには事前に分類条件を設定しておくとメールを自動的に振り分ける仕組みがありますが、 それを大規模な条件や文章に対応させたイメージです。条件が数百万件あっても高速な判定ができます。

主な検索の機能

SAVVYに搭載している主な検索機能の一覧です。なお、製品によって搭載機能が一部異なります。
No. 機能 概要
1 完全一致検索機能 指定された条件と一致するものを検索します。
2 あいまい検索機能 あいまい度を指定して検索する機能です。
条件と部分的にしか一致しないものも検索することができます。入力ミスやOCRの誤認識などを検索できます。
3 近傍検索機能 複数の条件と、距離、順序指定の有無を指定して検索する機能です。
6の検索式による「かつ」で連結する検索機能と似ていますが、距離、および順序の指定をできる点が異なります。
4 ワイルドカード検索機能 「*」(0文字以上)と「?」(1文字)のワイルドカード文字を指定して検索する機能です。
5 ノイズ除去検索機能 検索ノイズを除外するために、検索語、および重なる除去語を指定した検索を行う機能です。
6 検索式 複数の条件と、その条件間の演算子を指定して検索します。
条件間の演算子は「AND」(かつ)、「OR」(または)、「NOT」(除く)の3種類が指定できます。 条件は、1〜5の機能を組み合わせることができます。
7 文字列正規化フィルター 異体字や全半角の同一視、大小文字の同一視、「バ」と「ヴァ」の同一視、記号の無視などを実現する機能です。
同一視や無視する文字を事前定義しておくことで、全検索機能で自動的に利用されます。 定義を変更していただくことで、これらを区別した検索や、記号の検索も行うこともできます。
8 辞書展開検索 条件をシソーラス辞書で展開して検索します。
辞書に登録された同義語や関連語などを自動的に条件に含めることで、より幅広い全文検索を行います。
9 自然語調検索 短文を条件として検索します。
辞書データは不要ですが、辞書データがある場合は、より精度の高い検索が行えます。
10 ファセット検索 検索結果を指定した項目で集計する機能です。
検索結果に合わせた、動的なファセット ナビゲーションを実現できます。
11 検索結果のソート 検索結果を、スコア(条件に対する合致度合い)や、任意の項目で並び替えることができます。

製品ラインナップ

汎用的な機能はパッケージ ソフトウェアとして販売しております。搭載機能やインターフェース、動作環境などによって、4種類の製品がございます。
全文検索の目的 製品 インターフェース システム構成 OS
蓄積されたデータの検索 SAVVY/DRS
サビー・
ディーアールエス
REST/JSON
CSV登録バッチ
(A) Apache Tomcat上のWebアプリケーション
(B) サーバープログラム
両者間はTCP独自プロトコルで通信し、ユーザー アプリケーションは (A) とRESTで通信する形です。
Windows
Linux
蓄積されたデータの検索 SAVVY/NEO
サビー・ネオ
C
Java
Windows COM
(VB、C#、etc.)
(A) APIライブラリ(lib/a/jar/dll)
(B) サーバープログラム
両者間はTCP独自プロトコルで通信し、ユーザー アプリケーションは (A) をリンクして使用します。
Windows
Linux
Solaris
AIX
HP-UX
蓄積されたデータの検索 SAVVY/NEO
サビー・ネオ
スタンドアロン版
C
Windows COM
(VB、C#、etc.)
(A) APIライブラリ(lib/a/dll)
ユーザー アプリケーションは (A) をリンクして使用します。
Windows
Linux
Solaris
AIX
HP-UX
流れているデータの検索 SAVVY Screener
サビー・
スクリーナー
C (A) APIライブラリ(lib)
ユーザー アプリケーションは (A) をリンクして使用します。
Windows
自社開発のため、お客様のご要件に合わせたラッパーAPIの開発や、上に記載のないOS・インターフェースの追加、 専用のサンプル コードの開発、検証のためのお貸出しなども承っております。特殊なご要件に関する専用エンジンの開発やPoCについてもご相談ください。
また、お客様の製品やサービスなどに組み込んで利用される場合は、ビジネス モデルに合わせたご提供方法や価格、保守サポートの形態なども検討いたします。

ご採用事例

SAVVYは、お客様情報の名寄せ、規程集の検索、学術文献の検索、法令情報の検索、蔵書の検索、会議録の検索、情報の分類や仕分けなど、 多くのシステムでご採用いただいております。また、当社のSAVVYシリーズ製品でも使用しております。

以下、事例をいくつかご紹介いたします。

【事例1】サーチャーの特殊な検索要件の対応

文献情報に対してサーチャーによる専門的な検索を行われるお客様から、複数条件間の文字数や順序を細かに指定した検索をしたいとのご相談を受け、 SAVVY/NEOスタンドアロン版をご採用いただきました。

対象の文献は約500万文書で、検索条件として複数の語句と各語句間の文字数・順序が指定され、かつ各語句の同義語も大量に指定されるご要件で、 検索速度が課題になるご相談でした。


お客様のご協力の元でPoC(考案ロジックの実証実験)を実施し、SAVVY/NEOに新たなロジックを組み込むことで要件をクリアいたしました。

動作プラットフォームはWindowsで、当時はVB6アプリからSAVVY/NEOスタンドアロン版の32bitのCOMライブラリをご利用いただいておりました。 その後、何度かのシステム更改を経て、現在は.NETアプリから64bitのCOMライブラリをご利用いただいております。

【事例2】リアルタイムな情報配信サービスにおけるデータの選別

情報提供サービスを運用されているお客様から、大量の配信条件と入電情報のリアルタイムな突合せの実現についてご相談を受け、 SAVVY Screenerをご採用いただきました。

この情報配信サービスは、エンド ユーザー様が事前に条件を登録しておくと、その条件に該当する情報が入った時にリアルタイムでお知らせが届くものです。 競合サービスが多くあり、株価に影響する情報などをお求めのエンド ユーザー様においては、速度がサービス選択の重要なポイントになります。

お客様の設定された速度要件をクリアできたことが、SAVVY Screenerご採用のポイントになりました。

動作プラットフォームはLinux、開発言語はJavaです。お客様専用のJava-APIの開発とLinuxへのポーティングを実施いたしました。

【事例3】学術文献のタグ付け支援

学術文献に対するタグ付け業務において、その精度や効率の改善をしたいとのご相談を受け、SAVVY Screenerをご採用いただきました。

文献のタグ付けは、専門家が内容を理解した上で実施する必要があります。 文献にはスペルミスも含まれており、紙文書を電子化したものにはOCRの認識ミスもあり、タグ付けの自動化は容易ではありません。
そこで、お客様が業務で構築されていた数十万語からなる用語辞書を活用し、文献の閲覧時に用語辞書の語句をハイライトさせたりタグの候補として提示したりすることで、 内容の把握やタグ付けの効率を改善する仕組みを構築いたしました。

数十万語の辞書用語を登録してもリアルタイムに表示できる点や、スペルミスやOCRの誤認識も拾えるあいまい検索機能、 ノイズ除去検索機能などがご採用のポイントになりました。

動作プラットフォームはWindowsで、コマンド実行によりご利用いただいています。 お客様専用のコマンドを、SAVVY Screenerを使って開発いたしました。

【事例4】配布用のデスクトップ アプリ

現在、当社で無償配布しております〔デスクトップ検索 SAVVY〕で、SAVVY/NEOスタンドアロン版を使用しております。 業務で利用されるPCを想定しているためJavaの使用を避け、TCP/IPの通信機能も使用しないスタンドアロンの.NETアプリとして開発いたしました。

〔デスクトップ検索 SAVVY〕はPC内のファイルを全文検索できるアプリです。 SAVVYのデモも兼ねておりますので、もしよろしければお試しください。


動作プラットフォームはWindowsで、C#アプリからSAVVY/NEOスタンドアロン版のCOMライブラリを使用しております。