JP4422742B2 - 全文検索システム - Google Patents

全文検索システム Download PDF

Info

Publication number
JP4422742B2
JP4422742B2 JP2007154467A JP2007154467A JP4422742B2 JP 4422742 B2 JP4422742 B2 JP 4422742B2 JP 2007154467 A JP2007154467 A JP 2007154467A JP 2007154467 A JP2007154467 A JP 2007154467A JP 4422742 B2 JP4422742 B2 JP 4422742B2
Authority
JP
Japan
Prior art keywords
index
group
file
search
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007154467A
Other languages
English (en)
Other versions
JP2008305352A5 (ja
JP2008305352A (ja
Inventor
達也 進藤
Original Assignee
達也 進藤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 達也 進藤 filed Critical 達也 進藤
Priority to JP2007154467A priority Critical patent/JP4422742B2/ja
Priority to PCT/JP2008/059128 priority patent/WO2008152884A1/ja
Publication of JP2008305352A publication Critical patent/JP2008305352A/ja
Publication of JP2008305352A5 publication Critical patent/JP2008305352A5/ja
Application granted granted Critical
Publication of JP4422742B2 publication Critical patent/JP4422742B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

この発明は、全文検索システムに関し、特に、全文検索におけるインデクスの更新に関するものであり、大量のテキストデータ群を対象に任意のキーワードを含むデータを探し出す際に用いられ、特に、企業や官公庁など組織内でファイルサーバに蓄積される電子文書(プレーンテキスト、HTML、Word、Excel、Powerpoint、PDFなどオフィス系のフォーマット)を組織のメンバが、必要な電子文書をいつでも探し出せるようにする検索エンジンで使われる。本発明は、特に、検索対象となるデータ数が数T(テラ)クラス以上の大規模ストレッジで顕著な効果を発揮する。大量のテキストデータ群を高速に検索する手法として「転置ファイル法(Inverted file indexing)」が知られており、本発明は、転置ファイル法に代表される「インデクス」を作成するタイプの検索技術にかかわるものである。
大量のテキストデータ群を高速に検索する方法として、転置ファイル法が知られている。この転置ファイル法は、技術文献1にその詳細が説明されているように、各索引語が出現する文書や文書内での出現位置情報を転置ファイルと呼ばれる表構造の索引に格納し、検索時には、この転置ファイルのみにアクセスして、単語を検索する方法である。図6は、転置ファイル法を用いた企業内検索向け検索システムの代表的な構成例を示している。
同図に示した検索システムでは、検索対象となるのがストレッジを持ったSMBサーバ群であり、ここに各種の電子文章がプレーンテキスト、HTML、Word、Excel、Powerpoint、PDFなどオフィス系のフォーマットに格納される。
ここで、SMBサーバとは、マイクロソフト社がファイルアクセスのためのプロトコルとして採用しているSMB(あるいはCIFS)プロトコルによりアクセス可能なファイルサーバである。クライアントPCは、組織内の各自が使用するPC、あるいは、特定アプリケーションを実行させるPCである。
インデクサ用PCは、転置ファイル法を実現する上で検索対象ファイルのデータからインバーテッドインデクス(以下インデクス)を生成したり、検索対象ファイルのデータの更新(新規作成,部分的な変更,削除)に合わせてインデクスを更新する。
対象となるファイルが大規模な場合には、インデクスの生成や更新を分担して行うために複数のインデクサ用PCが用意される。検索用PCは、インデクサ用PCが生成したインデクスを用いて全文検索サービスを提供する。クライアントPCから発行された検索条件に対して検索した結果を返す。
インデクサ用PCでは、図7に示す2種類のプログラムが動作する。ファイルサーバ用クローラとインデクサである。
ファイルサーバ用クローラが、検索対象ファイルを格納するSMBサーバ群の全ファイルを最初全て収集し、インデクサの入力としインデクスを作成する(インデクサ全更新機能)。図7の左側に、1つのSMBサーバのファイル構造の詳細が示されている。
その際に、収集したファイルの一覧をファイルの更新時間(タイムスタンプ)と合わせてタイムスタンプリストとして保存する。図7では、2007年3月20日23時30分00秒に作成したタイムスタンプリストを同図(b)に一覧表として示している。
2回目以降のクローリングでは、ファイルサーバ用クローラは、SMBサーバ内の全ファイルについてタイムスタンプを確認し、新しいタイムスタンプリストを作成する。図7では、前回から1日経過した2007年3月21日23時30分00秒に作成したタイムスタンプリストを同図(c)に一覧表として示している。
次に、今回の収集により作成したリスト(c)と、前回収集したリスト(b)と照らし合わせる。照らし合わせた結果、新たに追加されたファイル、更新されたファイル、削除されたファイルを見つけ出し、差分リスト(d)を作成する。
差分リスト(d)には、変化のあったファイルについて、それが新たに追加されたファイル(New)なのか、更新されたファイル(Update)なのか、削除されたファイル(Delete)なのかを示す印とともに、フアイルのパスとタイムスタンプが列挙される。
その結果「新たに追加されたファイル」と「更新されたファイル」は、クローラによりファイルの本体を収集する。収集したファイルと差分リストを用いて、それまでに使われてきたインデクスを更新する。
しかしながら、このような従来の全文検索システムには、特に、インデクスを更新する際に、以下に説明する技術的な課題があった。
北研二 他著、「情報検索技術」2005年11月20日北立出版発行 pp.160−179 第6章6.2 「転置ファイルを用いた全文検索」
すなわち、図6に示した従来の全文検索システムでは、検索対象となるストレッジの大規模化に対応が困雄になるという問題と、クローリングに時間がかかるという問題があった。
その理由は、上述したシステムでは、インデクスを更新するために毎回全ての検索対象ファイル群をクローリングしてタイムスタンプを確認しなくてはならないため、この処理がSMBサーバの持つストレッジのサイズに比例して時間がかかり、非就業中の夜中のうちに昨日の変化分を処理できないことも起き得る。 ここで、クローリング時間を短縮するためには、複数のインデクサ用PCから異なるストレッジに分散して、複数スレッドにてクローリングすることで対処できるが、この方法では、本来のアプリケーションの処理に使われるべきストレッジの処理能力を、クローリングのために使ってしまうことになり、システム全体のパフォーマンスが低下することになる。
さらに、上記システムでは、全てのファイルをクローリングして初めて更新を行うことになるために、更新状況を即時にインデクスに反映することが困難になり、タイムリーな更新ができないという問題があった。
本発明は、このような従来の問題点に鑑みてなされたものであって、その目的とするところは、検索対象ストレッジの大規模化に容易に対応することができるとともに、ファイルサーバの負荷を増加することなく、クローリング時間の短縮化して、短時間にインデクスに反映することができる全文検索システムを提供することにある。
上記目的を達成するために、本発明は、検索対象となる電子文書が蓄積されたデータベースを有するファイルサーバ群と、前記電子文書の新規作成、または削除、または部分的な変更を入力するとともに、検索対象文書のインデクス中のキーワード文言を入力するクライアントPC群と、前記ファイルサーバ群の前記電子文書を巡回走査して、当該電子文書に含まれている属性から検索用インデクスを作成するとともに、作成した検索用インデクスを格納するインデクスデータベースを有するインデクサ用PC群と、前記インデクサ用PC群で作成された前記検索用インデクスを格納する検索用PCとを有し、前記ファイルサーバ群,クライアントPC群,インデクサ用PC群,検索用PCの間のそれぞれがスイッチイングハブを介して接続される通信路とを備え、任意のクライアントPCから入力された前記検索対象文書の前記キーワード文言に基づいて、前記検索用PCから前記検索対象インデクスに該当するインデクスを抽出して、当該クライアントPCに出力する全文検索システムにおいて、前記クライアントPC群を接続するスイッチングハブと前記ファイルサーバ群を接続するスイッチングハブとの間の前記通信路に設けられたタップと、前記クライアントPC群から前記ファイルサーバ群へアクセスされる情報を前記タップを介して取得し、取得した情報のうちから、前記前記電子文書の新規作成、または削除、または部分的な変更に関連する更新候補情報を抽出するパケット判別モジュールと、抽出した前記更新候補情報を格納するメモリとを有するキャプチャ用PCとを備え、前記インデクサ用PC群は、前記インデクスを最初に作成する際にのみ、前記ファイルサーバ群を全体走査し、前記インデクスの新規作成、または部分的な変更、または削除に伴う更新は、前記キャプチャ用PCに格納されている前記更新候補情報に基づいて、前記ファイルサーバ群を照査して、新規作成、または削除、または部分的な変更が実際に行われた更新実行情報を抽出し、当該更新実行情報に基づいて前記インデクスの更新を行うようにした。
このように構成した全文検索システムでは、ファイルサーバ群(ストレッジ)へのアクセスをイベントとして捕らえる。本発明では、毎回全ファイルをクロール(走査)することはしないで、最初の1回だけ全ファイルをクロールしてインデクスを作成し、2回目からは、ファイルに対するアクセス(新規作成、部分的な更新、削除、アクセス権の変更)をイベントとして捕らえ、各イベントの対象となったファイルのみインデクス更新の対象とする。
このため、更新の度ごとに全ファイルをクロールする従来の方式に対して、クローリング時間の大幅な短縮化が可能になり、ストレッジの大規模化も簡単に対応することができ、しかも、このような効果は、アプリケーションの処理に使われるべきストレッジの処理能力を、クローリングのために消費することなく得られるので、システム全体のパフォーマンスの低下を回避することができ、さらには、更新状況を即時にインデクスに反映することが可能になり、タイムリーな更新をも可能にする。
前記インデクスには、前記検索対象となる電子文書へのアクセス権の作成、および、同アクセス権の新規作成、または削除、または部分的な変更からなる更新情報を含ませることができる。

本発明に係る全文検索システムによれば、クローリング時間の大幅な短縮化が可能になり、ストレッジの大規模化も簡単に達成することができ、しかも、このような効果は、アプリケーションの処理に使われるべきストレッジの処理能力を、クローリングのために消費することなく得られるので、システム全体のパフォーマンスの低下を回避することができ、さらには、更新状況を即時にインデクスに反映することが可能になり、タイムリーな更新をも可能にする。
以下に、本発明を実施するための最良の形態を実施例に基づいて説明する。図1から図3は、本発明に係る全文検索システムの一実施例を示している。図1は、システムの全体構成図である。本実施例の全文検索システムは、SMBサーバ1と、クライアントPC2と、インデクサ用PC3と、検索用PC4と、スイッチングハブ5を備えた通信路6を備えている。
SMBサーバ1は、複数がスイッチングハブ5に並列接続されていて、これらがファイルサーバ群を構成している。各SMBサーバ1には、検索対象となる電子文書が蓄積されたデータベース7と、自サイトにアクセスされた文書の名前や時間,数などを記憶しておくアクセルログ8を有している。具体的には、ストレッジを持ったWindows ServerやSambaサーバ、あるいはNAS(Network Attached Storage)がこれに相当する。
クライアントPC2は、複数がスイッチングハブ5に並列接続されていて、これらがクライアントPC群を構成しており、SMBサーバ1に格納する文書の新規作成,削除,部分的な変更を入力し、SMBサーバ1上のデータを操作するアプリケーションブログラムを実行するとともに、検索対象文書のインデクスが入力される。
インデクサ用PC3は、複数がスイッチングハブ5に並列接続されていて、これらがインデクサ用PC群を構成している。各インデクサ用PC3には、インデクスを格納するインデクスDB9を有している。
インデクサ用PC3は、ファイルサーバ群(SMBサーバ1群)の電子文書(デレクトリとファイル)を巡回走査して、検索対象となるファイルの属性(更新日時、アクセス権、ファイルの種別)を読み出す。ファイルの属性からインデクスの作成に必要なファイルを読み出す。これらを用いて検索用のインデクスを作成する。
検索用PC4は、各インデクサ用PC3で作成されたインデクスのコピーを格納するデータベース10を有しており、これを用いて検索処理機能を提供する。インデクスのコピーは、インデクサ用PC3が新規の更新を終わるごとに作られ、それまで使っていた古いインデクスと交換される。
スイッチングハブ5を備えた通信路6は、ギガビットイーサーなどのPC間通信路であって、例えば、企業などで採用されているイントラネットがこれに相当する。このような検索システムでは、任意のクライアントPC2から入力された検索対象インデクスに基づいて、検索用PC4から検索対象インデクスに該当するインデクスを抽出して、当該クライアントPC2に出力することになる。
以上のような全文検索システムとしての基本的な構成は、前述した従来のシステムと相違はないが、本実施例の全文検索システムは、以下に説明する点に顕著な特徴がある。
すなわち、本実施例の場合には、クライアントPC2群からSMBサーバ1群(ファイルサーバ群)へアクセスされる情報のうちから、電子文書の新規作成,削除,部分的な変更に関連する更新候補情報を抽出して、格納するキャプチャ用PC20を備えている。
キャプチャ用PC20は、タップ21を介して通信路6に接続されている。タップ21は、通信路6に影響を与えることなく、通信路6を通過するパケットを取り出すための機器であり、例えば、シスコムethergazer1000(市販商品名)を用いることができる。
また、キャプチャ用PC20には、ネットワークインターフェイス20a,トランスポート層20b,パケットフィルタ20c,パケット判別モジュール20d,キャプチャ制御用ファイル20e,メモリ領域20f,パケットログ20gを備えている。
このように構成されたキャプチャ用PC20では、タップ21で取り出した通信パケットを解析し、SMBサーバ1上のファイルに対する操作(その中でも検索用インデクスの更新に関連するもの)履歴をアクセスパケットとしてパケットログ20gに出力する。 タップ21と繋がるポートは、パケットの受信専用であるが、図1の右側のスイッチングハブ5に繋がるポートには、IPアドレスを割り当て、インデクサ用PC3と通信可能とする。より具体的には、スイッチングハブ5とキャプチャ用PC20のオペレーティングシステム20hとを介して、パケットログ20gにアクセス可能になっていて、この機能が実現される。 これにより、アクセスパケットログ20gは、インデクサ用PC3からこの通信経路を介して、参照できるようになっている。キャプチャ用PC20には、キャプチャ(抽出)しないIPアドレスの一覧を予め設定しておくことができる。
キャプチャするのは、クライアントPC2からSMBサーバ1上のファイル操作を行っているパケットに限られる。従って、インデクサ用PC3によるクローリング(走査)のためのパケットなどを抽出することがないようにしておく必要があるので、キャプチャの対象外とすべきIPアドレスを設定できるようにしておく。
ここで、キャプチャ対象とすべきパケットの情報は、ログとしてファイルに出力される前にまずメモリ(メモリ領域20f)上に格納され、複数まとめてファイル出力するようになっている。
これは、ファイルアクセスの性能を向上させる目的と、メモリ上で「同一ファイルやディレクトリに対する同一アクセスのログを一つにまとめる」処理を行うためである。この際にメモリ上に格納するログ数の上限を、実際に使うサーバのメモリ量に合せて設定できるようにする。
ログファイル(パケットログ20f)に出力する間隔の最長時間は、以下のように設定する。メモリ上に格納されたログが、ある一定時間たった場合、「ログ数上限」に達しなくても強制的にログファイルに吐き出させるため、出力する間隔の最長時間を設定する。
パケット判別モジュール20dでは、電子文書の新規作成,削除,部分的な変更に関連する更新候補情報の抽出が、以下の記号とフォーマットによりどのアクセスが行われたかが判別される。
T(パス名)←タッチ:そのファイルやディレクトリに触れた
D(パス名)← 削除:そのファイルやディレクトリを削除した
R(パス名,old)(パス名,new)← ファイル名やディレクトリ名を変更した
M(パス名,old)(パス名,new)← ファイルやデイレクトを移動した
すなわち、本実施例の場合、電子文書の新規作成,削除,部分的な変更に関連する更新候補情報として、T(タッチ),D(削除),R(old,new),M(old,new)が抽出されることになる。
インデクサ用PC3は、インデクスを最初に作成する際にのみ、SMBサーバ1群(ファイルサーバ群)を全体走査する。すなわち、一番最初にインデクスを作成するときには、検索対象となる全てのファイルを基点リスト(「ファイル巡回」&「インデクス」制御ファイル内で定義)からたどり、ファイル属性を読み出しタイムスダンプリストをつくる。
またその際に列挙した全ての検索対象ファイルをインデクサ用PCに読み出す。これらを用いてインデクスを作成する。なお、インデクサ用PC3は、負荷分散によるインデクス作成/更新時間の短縮のために複数の存在が可能であり、各インデクサPC3に走査対象となるSMBサーバ1を割り当てればよい。
また、「ファイル巡回」&「インデクス」制御ファイルには、インデクサ用PC3における処理の設定を可能にするために、以下の内容を含む。
・基点リスト ツリー型のディレクトリ構造を持ったファイル
システム内を巡回する基点となるパス名の列
・検索非対称パス列 基点リストからツリーを巡る際に「その部分だけは検索対象にしない」パス列
・検索対象サフィックス txt,htm,html,pdfなど検索対象とするファイルのサフィクス列
・ログ確認周期
キャプチャ用PC20の出力する「アクセスパケットログ」を確認する周期
一方、インデクサ用PC3は、インデクスの新規作成,部分的な変更および削除に伴う更新は、キャプチャPC20に格納されている更新候補情報に基づいて、SMBサーバ1群を照査して、新規作成,削除,部分的な変更が実際に行われた更新実行情報に基づいてインデクスの更新を行う。
以上のより具体的な手順について、図2および3を参照にして説明する。図2は、キャプチャ用PC20による更新候補情報を取得する手順が示されている。 クライアントPC2において、アプリケーション(ワープロ、スプレッドシート、等々)からネットワークファイルアクセスが発生した場合に、まずファイル共有サービス層(Windows システムの場合にはSMBあるいはCIFSと呼ばれるプロトコルが使われる)を経由し、ネットワークの通信プロトコルをサポートするトランスポート層を経由しTCP/IPの規約に従ったパケットが作られ、ネットワークインターフェイス20aで物理的なネットワークアクセスがなされる。
SMBサーバ1は、この逆の順序で各層にて処理が行われファイル共有サービスがSMBサーバ1に接続されているディスクに対応する処理を行う。このようなネットワーク経由のファイルアクセスが行われている状況において、キャプチャ用PC20は、タップ21を使い、ネットワーク上を流れるパケットをキャプチャする。
キャプチャ用PC20の内部においてネットワークインターフェイス層およびトランスポート層は、オペレーティングシステム(WindowsサーバOSなど)の機能が使われる。そこからパケットを選別して取組むためのパケットフィルタ20cとしては、1ibcapのような標準品を用いる。パケットフィルタ20cにおいて、SMB/CIFSに関連するパケットに絞って取り込むためにTCPポート445番だけを取り出すように設定する。
これを図2に基づいて具体的に説明すると、手順がスタートすると、s1で、パケットフィルタ20cを用い、ネットワーク(通信路6)からパケットが抽出される。
次いで、s2で、抽出したパケットのIPアドレスが、インデクサ用PC3のものか、否か判断され、インデクサ用PC3のものでなければ、s3に移行する。s3では、抽出したパケットの処理がSMB/CIFSに関連するものか、否かが判断され、これがSMB/CIFSに関連するものであれば、s4が実行される。
s4では、パケット判断モジュール20dにより、SMBプロトコルとして、前述したT(タッチ),D(削除),R(変更),M(移動)であれば、これらが抽出され更新候補情報として、処理を表す記号と処理対象(ファイル,フォルダ)をメモリ領域20fに記録する。
続くs5では、メモリ領域20fで、同一の対象に同一の処理を施すものは、複数残さず、単一にする処理が行われる。次のs6では、メモリ領域20f上の記録が、メモリ上に格納するログ数の条件を越えたか否かが判断され、これが超えている場合には、s7で、メモリ領域20f上の全記録をパケットログ20gに出力して、ここに格納する。
s6で、メモリ領域20f上の記録が、メモリ上に格納するログ数の条件を越えていないと判断された場合には、s8で、メモリ領域20f上の記録が1つ以上あって、前回ログ出力して以来「パケットログ20gに出力する間隔時間が最長時間を超えたか否かが判断され、越えている場合には、s7に移行して、メモリ領域20f上の全記録をパケットログ20gに出力して、ここに格納する。
一方、s8で、バケットログ20gに出力する間隔時間が最長時間を超えていないと判断されると、s1に戻って処理が続行される。なお、s2で、抽出したパケットのIPアドレスが、インデクサ用PC3のものであると判断された場合と、s3で、抽出したパケットの処理がSMB/CIFSに関連するものでないと判断された場合には、s8に移行する。
以上のような手順を順次実行することにより、キャプチャPC20のパケットログ20gには、更新候補情報として、T(タッチ),D(削除),R(変更),M(移動)と処理対象(ファイル,フォルダ)とが蓄積されることになる。 このようにしてパケットログ20gに蓄積された更新候補情報は、インデクサ用PC3から定期的ないしは不定期に読まれて、インデクスの更新に使用される。この際には、インデクスの新規作成,部分的な変更および削除に伴う更新は、更新候補情報に基づいて、SMBサーバ1群を照査して、新規作成,削除,部分的な変更が実際に行われた更新実行情報を抽出し、この更新実行情報に基づいてインデクスの更新が行われる。
この際に行われる具体的な手順を図3に示している。なお、図3に示した手順では、初回にインデクサPC3で全SMBサーバ1を走査して、インデクスを作成するステップを含んでいる。
同図に示した手順がスタートすると、まず、s10で、検索対象とする全ファイル(全SMBサーバ1群のファイル)を「ファイル巡回」で取得し、インデクスを作成する(最初ないしは初回だけ)。作成したインデクスは、データベース9に格納する。同時にタイムスタンプリストを作成する。
続くs11では、ファイルアクセルパケツトログ20gが新規に追加されたか否かが判断され、新規に追加されたと判断された場合には、s12に移行する。s12では、新規に追加されたアクセスログの内容を参照して、対象となるファイル,フォルダおよびフォルダ下の全ファイルを巡回し、変化があった対象を差分リストとして出力する。また、タイムスタンプリストをこの差分リストで更新する。
続くs13では、巡回の結果、実際に、新規追加,削除および変更のあったファイル情報を取得し、差分リストと合わせて実際に新規追加,削除および変更のあった更新実行情報に基づいて、インデクスを更新する。次のs14では、一定時間待機して、s11に戻ることになる。また、s11で、パケットログに新規追加がないと判断された場合も、s14の一定時間の待機を経てs11に戻ることになる。
さて、以上のように構成した全文検索システムによれば、クライアントPC2群からSMBサーバ1群(ファイルサーバ群)へアクセスされる情報のうちから、電子文書の新規作成,削除,部分的な変更に関連する更新候補情報を抽出して、格納するキャプチャ用PC20を備え、インデクサ用PC3群は、インデクスを最初に作成する際にのみ、SMBサーバ1群(ファイルサーバ群)を全体走査し、インデクスの新規作成,部分的な変更および削除に伴う更新は、キャプチャPC20に格納されている更新候補情報に基づいて、SMBサーバ1群(ファイルサーバ群)を照査して、新規作成,削除,部分的な変更が実際に行われた更新実行情報を抽出し、当該更新実行情報に基づいてインデクスの更新を行うようにした。
このため、更新の度ごとに全ファイルをクロールする従来の方式に対して、クローリング時間の大幅な短縮化が可能になり、ストレッジの大規模化も簡単に達成することができ、しかも、このような効果は、アプリケーションの処理に使われるべきストレッジの処理能力を、クローリングのために消費することなく得られるので、システム全体のパフォーマンスの低下を回避することができ、さらには、更新状況を即時にインデクスに反映することが困難になり、タイムリーな更新をも可能にする。
なお、上記実施例で示したインデクスの作成および更新には、電子文書だけでなく、検索対象となる電子文書へのアクセス権の作成、および、同アクセス権の新規作成,削除,部分的な変更などの更新情報を含ませることができる。
また、上記実施例で示した更新候補情報は、通信路6からタップ21を介して取得すること以外に、SMBサーバ1のログ出力(図1に示したアクセスログ8)から抽出することができる。 図4,5は、SMBサーバ1のログ出力から更新候補情報を抽出する場合の実施例を示しており、この実施例においては、上記実施例と同一もしくは相当する部分に同一符号を付して、その説明を省略するとともに、以下にその特徴点についてのみ説明する。
図4は、この実施例に係る全文検索システムの全体構成を示しており、この実施例では、クライアントPC2群からSMBサーバ1群(ファイルサーバ群)へアクセスされる情報のうちから、電子文書の新規作成,削除,部分的な変更に関連する更新候補情報を抽出して、格納するキャプチャ用PC20に替えて、ほぼ同一機能を有するログ収集用PC30を備えている。
ログ収集用PC30は、SMBサーバ1群が並列接続されたスイッチングハブ5に電気的に接続され、ログ収集ルーチン30aと、アクセルログフィルタ30bと、ログ判定モジュール30cと、メモリ領域30dと、パケットログファイル30eとを備えている。
このように構成されたログ収集用PC30では、ログ収集ルーチン30aで収集した情報は、アクセルログフィルタ30bとログ判別モジュール30cとにより判別されて、電子文書の新規作成,削除,部分的な変更に関連する更新候補情報の抽出が行われる。
ここで、キャプチャ対象とすべき情報は、ログとしてファイルに出力される前にまずメモリ(メモリ領域20f)上に格納され、複数まとめてファイル出力するようになっている。
これは、上記実施例で説明したように、ファイルアクセスの性能を向上させる目的と、メモリ上で「同一ファイルやディレクトリに対する同一アクセスのログを一つにまとめる」処理を行うためである。この際にメモリ上に格納するログ数の上限を、実際に使うサーバのメモリ量に合せて設定できるようにする。
ログファイル(パケットログファイル30e)に出力する間隔の最長時間は、以下のように設定する。メモリ上に格納されたログが、ある一定時間たった場合、「ログ数上限」に達しなくても強制的にログファイルに吐き出させるため、出力する間隔の最長時間を設定する。
本実施例においても、上記実施例と同様に、インデクサ用PC3は、インデクスを最初に作成する際にのみ、SMBサーバ1群(ファイルサーバ群)を全体走査し、一番最初にインデクスを作成するときには、検索対象となる全てのファイルを基点リスト(「ファイル巡回」&「インデクス」制御ファイル内で定義)からたどり、ファイル属性を読み出しタイムスダンプリストをつくる。
また、インデクサ用PC3は、上記実施例と同様に、インデクスの新規作成,部分的な変更および削除に伴う更新は、ログ収集用PC30に格納されている更新候補情報に基づいて、SMBサーバ1群を照査して、新規作成,削除,部分的な変更が実際に行われた更新実行情報に基づいてインデクスの更新を行う。
図5は、更新候補情報をログ出力から抽出して、蓄積する際のログ収集用PC30の手順を示している。図5の手順がスタートすると、s30で、ログ収集ルーチン30aにて、ネットワークを経由して、SMBサーバ1群のログ出力8が収集される。
次いで、s31で、収集したログ情報のうち、SMBサーバ1に対する書込み,更新,作成,属性変更に関するもののみが、アクセルログフィルタ30bにより抽出される。続く、s32では、ログ判別モジュール30cにより、メモリ領域30d上に、SMBサーバ1に対する同一の対象,同一の処理を一つにまとめて書き出す処理が行われる。
次のs33では、メモリ領域30d上の記録が、メモリ上に格納するログ数の条件を越えたか否かが判断され、これが超えている場合には、s34で、メモリ領域30d上の全記録をパケットログファイル30eに出力して、ここに格納して、s36に移行する。
s33で、メモリ領域30d上の記録が、メモリ上に格納するログ数の条件を越えていないと判断された場合には、s35で、前回ログ出力して以来パケットログファイル30eに出力する間隔時間が設定値を超えたか否かが判断され、越えている場合には、s34に移行して、メモリ領域30d上の全記録をパケットログファイル30eに出力して、ここに格納して、s36に移行する。
一方、s35で、パケットログファイル30eに出力する間隔時間が設定時間を超えていないと判断されると、s36により一定時間待機して、s30に戻って処理が続行される。
以上のような手順を順次実行することにより、ログ収集用PC30のパケットログファイル30eには、更新候補情報が蓄積されることになる。このようにしてパケットログファイル30eに蓄積された更新候補情報は、インデクサ用PC3から定期的ないしは不定期に読まれて、インデクスの更新に使用される。
この際には、インデクスの新規作成,部分的な変更および削除に伴う更新は、更新候補情報に基づいて、SMBサーバ1群を照査して、新規作成,削除,部分的な変更が実際に行われた更新実行情報を抽出し、この更新実行情報に基づいてインデクスの更新が行われる。
この際に行われる具体的な手順は、上記実施例の図3に示したものと同一である。以上のように構成した実施例でも、上記実施例と同等の作用効果が得られる。
なお、最近のOSでは、セキュリティ管環や内部統制的な要請から、どのような処理が内部的に行われたかをログファイルとして残す機能を持つものが多い。このログファイルをもとに、その中からファイルのアクセスに関するものだけを選択することで上記実施例と同様にイベントを抽出することが可能となる。
また、NAS:Network Attached Storageなどの専用ストレッジそれ自身が一種のコンピュータであり、そこへのアクセスをログとして出力したり、内部アクセス状況をプログラムインターフェイスから取り出すことができるものがある。このようなNASを使う場合には、NAS自身の機能からイベントの抽出が可能となる。
SMBサーバ1がこのようにアクセスログを抽出する機能を持つ場合には、上記実施例で示したパケットをキャプチャする処理は不要となり、このようなアクセスログを用いて上記実施例と同様の処理が可能になる。
本発明にかかる全文検索システムによれば、クローリング時間の大幅な短縮化が可能になり、ストレッジの大規模化も簡単に達成することができ、しかも、このような効果は、アプリケーションの処理に使われるべきストレッジの処理能力を、クローリングのために消費することなく得られるので、システム全体のパフォーマンスの低下を回避することができ、さらには、更新状況を即時にインデクスに反映することが可能になり、タイムリーな更新をも可能にするので、全文検索の分野において有効に活用することができる。
本発明にかかる全文検索システムの全体構成を示すブロック図である。 図1に示したシステムで、更新候補情報を取得・格納する際に手順の一例を示すフローチャート図である。 図1に示したシステムで、取得した更新候補情報に基づいて、実際に更新されたファイルを確認し、その後インデクス更新する手順を示したフローチャート図である。 本発明にかかる全文検索システムの他の実施例を示す全体構成を示すブロック図である。 図4に示したシステムで、更新候補情報を取得・格納する際に手順の一例を示すフローチャート図である。 従来の全文検索システムの全体構成を示すブロック図である。 図4に示したシステムでインデクスを更新する際の説明図である。
符号の説明
1 SMBサーバ
2 クライアントPC
3 インデクサPC
4 検索用PC
5 スイッチングハブ
6 通信路
20 キャプチャ用PC
20c パケットフィルタ
20d パケット判別モジュール
20e キャプチャ制御ファイル
20f メモリ領域
20g パケットログ
21 タップ

Claims (2)

  1. 検索対象となる電子文書が蓄積されたデータベースを有するファイルサーバ群と、
    前記電子文書の新規作成、または削除、または部分的な変更を入力するとともに、検索対象文書のインデクス中のキーワード文言を入力するクライアントPC群と、
    前記ファイルサーバ群の前記電子文書を巡回走査して、当該電子文書に含まれている属性から検索用インデクスを作成するとともに、作成した検索用インデクスを格納するインデクスデータベースを有するインデクサ用PC群と、
    前記インデクサ用PC群で作成された前記検索用インデクスを格納する検索用PCと、
    前記ファイルサーバ群,クライアントPC群,インデクサ用PC群,検索用PCの間のそれぞれがスイッチイングハブを介して接続される通信路とを備え、
    任意のクライアントPCから入力された前記検索対象文書の前記キーワード文言に基づいて、前記検索用PCから前記検索対象インデクスに該当するインデクスを抽出して、当該クライアントPCに出力する全文検索システムにおいて、
    前記クライアントPC群を接続するスイッチングハブと前記ファイルサーバ群を接続するスイッチングハブとの間の前記通信路に設けられたタップと、
    前記クライアントPC群から前記ファイルサーバ群へアクセスされる情報を前記タップを介して取得し、取得した情報のうちから、前記前記電子文書の新規作成、または削除、または部分的な変更に関連する更新候補情報を抽出するパケット判別モジュールと、抽出した前記更新候補情報を格納するメモリとを有するキャプチャ用PCとを備え、
    前記インデクサ用PC群は、前記インデクスを最初に作成する際にのみ、前記ファイルサーバ群を全体走査し、前記インデクスの新規作成、または部分的な変更、または削除に伴う更新は、前記キャプチャ用PCに格納されている前記更新候補情報に基づいて、前記ファイルサーバ群を照査して、新規作成、または削除、または部分的な変更が実際に行われた更新実行情報を抽出し、当該更新実行情報に基づいて前記インデクスの更新を行うことを特徴とする全文検索システム。
  2. 前記インデクスには、前記検索対象となる電子文書へのアクセス権の作成、および、同アクセス権の新規作成、または削除、または部分的な変更からなる更新情報を含ませることを特徴とする請求項1記載の全文検索システム。
JP2007154467A 2007-06-11 2007-06-11 全文検索システム Active JP4422742B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007154467A JP4422742B2 (ja) 2007-06-11 2007-06-11 全文検索システム
PCT/JP2008/059128 WO2008152884A1 (ja) 2007-06-11 2008-05-19 全文検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007154467A JP4422742B2 (ja) 2007-06-11 2007-06-11 全文検索システム

Publications (3)

Publication Number Publication Date
JP2008305352A JP2008305352A (ja) 2008-12-18
JP2008305352A5 JP2008305352A5 (ja) 2009-09-03
JP4422742B2 true JP4422742B2 (ja) 2010-02-24

Family

ID=40129496

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007154467A Active JP4422742B2 (ja) 2007-06-11 2007-06-11 全文検索システム

Country Status (2)

Country Link
JP (1) JP4422742B2 (ja)
WO (1) WO2008152884A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073557A (ja) * 2011-09-29 2013-04-22 Hitachi Solutions Ltd 情報検索システム、検索サーバ及びプログラム
JP5759881B2 (ja) * 2011-12-08 2015-08-05 株式会社日立ソリューションズ 情報処理システム
JP2013178685A (ja) * 2012-02-29 2013-09-09 Nec Corp 非同期バックアップ機能を有するデータ処理システム、フロントシステム、バックアップ方法、及びそのためのプログラム
JP2013196544A (ja) * 2012-03-22 2013-09-30 Nec Corp 文書管理システム、文書管理方法、及びそのためのプログラム
JP5887236B2 (ja) * 2012-09-24 2016-03-16 株式会社日立ソリューションズ 業務文書処理装置、業務文書処理方法及び業務文書処理プログラム
US10223431B2 (en) * 2013-01-31 2019-03-05 Facebook, Inc. Data stream splitting for low-latency data access

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001344245A (ja) * 2000-03-29 2001-12-14 Fujitsu Ltd 情報処理装置
JP2002182961A (ja) * 2000-12-13 2002-06-28 Nec Corp データベースの同期化システムとその同期化の方法

Also Published As

Publication number Publication date
JP2008305352A (ja) 2008-12-18
WO2008152884A1 (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
US9135257B2 (en) Technique for implementing seamless shortcuts in sharepoint
US7630999B2 (en) Intelligent container index and search
CN101499088B (zh) 基于共同元素的用于过滤和组织条目的系统
US9122750B2 (en) Classifying objects
KR100946055B1 (ko) 주석 관리 방법, 컴퓨터 판독가능 매체 및 주석 관리시스템
US7865873B1 (en) Browser-based system and method for defining and manipulating expressions
US7401089B2 (en) Storage reports file system scanner
US8965941B2 (en) File list generation method, system, and program, and file list generation device
US8799291B2 (en) Forensic index method and apparatus by distributed processing
CN109522290B (zh) 一种HBase数据块恢复及数据记录提取方法
US20060041606A1 (en) Indexing system for a computer file store
US8452788B2 (en) Information retrieval system, registration apparatus for indexes for information retrieval, information retrieval method and program
WO2012106378A2 (en) Real time searching and reporting
JP4422742B2 (ja) 全文検索システム
EP2542985A1 (en) File level hierarchical storage management system, method, and apparatus
CN110245037B (zh) 一种基于日志的Hive用户操作行为还原方法
Thakare et al. A effective and complete preprocessing for Web Usage Mining
US20110137886A1 (en) Data-Centric Search Engine Architecture
Dija et al. A Framework for Browser Forensics in Live Windows Systems
KR101484186B1 (ko) 보안 관제 데이터의 검색을 위한 인덱싱 장치 및 방법
KR100756421B1 (ko) 해외 과학기술 전자원문 수집/색인/추출 시스템 및 그 방법
US20050204191A1 (en) Systems and methods automatically classifying electronic data
JP3725837B2 (ja) 知識情報収集システムおよび知識情報収集方法
US10037155B2 (en) Preventing write amplification during frequent data updates
JP3725087B2 (ja) 知識情報収集システムおよび知識情報収集方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090716

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090716

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090716

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4422742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131211

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250