|
 |
|

MindSearch Fuzzy の特徴
■概要
大規模/高速の MindSearch Hyper の基本性能をそのままに曖昧検索機能を持たせたモデルです。
データ登録時のタイプミス、検索時のキーワード入力ミスによる誤表記があってもヒットと判定できます。
誤表記を許容するような商品名・住所・氏名の検索や、会員情報の名寄せなど広範囲に応用できます。
・異表記やタイプミスが有っても綴りが類似していればヒットと判定できます(あいまい検索)。
・ヒットと判定するための合致率を百分率で指定できます。
・曖昧検索対象となるキーワードの最小文字数を指定できます。2文字〜3文字の短い
短いキーワードに曖昧処理が適用されることにより思わぬヒットを生じることを避けられます。
・辞書は使わずロジックだけで処理するため、固有名詞、外来語、専門用語、数字/記号列など
あらゆる語彙に適用できます。
・9種のソートキー(文字列または数値)、6種の絞り込みキー(文字列または数値)を併用した
検索ができます。(DBモードのみ: DB内属性情報も含めた検索をおこなえます)
・本来の絞り込みキーの他にテキスト域中にも準絞り込みキーを記入できます。長い属性値
がある場合に有用です(DBモードのみ)
(絞り込みキー、準絞り込みキーは曖昧合致率とは無関係に完全一致で検索されます)
・DBMSの種類を問いません(DBモードの場合)
・複数のインデックスを横断検索できます
・差分インデックシングが可能。運用時のインデックス更新を短時間で済ませることができます
・主・副2系統のインデックス。検索サービスと並行して次のインデックスを作成できます
・MindSearch 共通の強力なカタカナ表記揺れ同一視のほか、漢数字と算用数字の同一視、
ひらがな/カタカナ同一視など、正規化機能も強化されています。
・アプリケーションがMindSearchと通信するための Perl, Java, PHP の通信ドライバを添付
■適合するデータ規模の目安
性能/限界値 のページをご覧ください
■検索速度の社内比較
性能/限界値 のページをご覧ください
■ソート
データーベースモードでは、インデックス作成時に登録した9種のソートキーのいずれかを指定し検索結果をソートできます。ソートキーは数字または文字列(最大1KB長)が指定できます。
■絞り込み検索
データーベースモードでは、インデックス作成時に登録した6種の絞り込みキーを本文検索用のキーワードとは別に指定することで、いわゆる絞込み検索をおこなうことができます。
絞り込みキーのタイプは、整数、文字列(最大20桁)が使えます。整数はその範囲を指定することも可能です。
■DBMSを問わない柔軟なインデックス作成
データーベース上に存在するフリーテキストをインデックス化できます。MindSearchが直接にデーターベース読み出すのではなく、アプリケーションからデータを「渡してもらう」方法をとります(インデックス作成APIの一環としてデータ渡しが有ります)。
この方法ではアプリケーション側に若干のコーディング負担が及びますが、MindSearchとデーターベースとの直接のリンクが無いため、適用できるDBMSの種類を選ばないほか、データーベースに限らず、ダイナミックに沸いてくるようなデータすべてをインデックス化できる利点があります。
データーベース内のテキストフィールドは物理ファイルとして置かれているものではないため "On-the-fly" でインデックスを作成します。手法としては、アプリケーションが目的のDBに接続してオープンし、全レコード数を知り、各レコードについてそのプライマリキーとテキストデータのペアを次々とMindSearchに投げます。MindSearchはソケット経由で受け取ったプライマリキーとテキストを元にインデックス化する仕掛です。
この手法ではアプリケーション開発者の側に少し負担が生じます。つまり全レコードについて、プライマリキー・フィールドおよびテキスト・フィールドをスキャンして、それをMindSearchに投げる処理を組む必要があります。しかし、DBのプログラミングに慣れた開発者であれば「全レコードをスキャンする」という典型的な処理は恐らく10数行で書けてしまう小規模なもので負担は少ないでしょう。
■横断検索
複数のインデックスを横断検索できます。
もしコンテンツが複数のジャンルに分けることができ、全体を通しての検索のほかに各ジャンル個別の検索も考えられるのであれば、インデックスをそれぞれ独立させることができます。全体を通しての検索は複数インデックスを横断検索することでおこないます。このようにすることで、インデックスの更新に柔軟性を持たせることができ、またトータルなインデックス作成時間が短縮される利点もあります。
■差分インデックシング
差分インデックシングを使うことでインデックス更新を短時間で済ませることができます。
■インデックス構造の違い
・インデックス情報の一部を共有メモリに置くことで高速化を図っています。共有メモリの消費量は概ねオリジナルコンテンツ(プレーンテキスト換算)をバイト数で計った総サイズ程度になります。
