米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 富士ゼロックス株式会社

発明の名称 文書検索装置および方法
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−18143(P2007−18143A)
公開日 平成19年1月25日(2007.1.25)
出願番号 特願2005−197304(P2005−197304)
出願日 平成17年7月6日(2005.7.6)
代理人 【識別番号】100086531
【弁理士】
【氏名又は名称】澤田 俊夫
発明者 宮内 忠信
要約 課題
データの一貫性を維持しつつ、少ない計算機リソースで可用性向上・負荷分散を両立する。

解決手段
文書検索システム100のクライアント装置101は、文書検索要求を発行し、振り分け装置102は、クライアント装置101からの文書検索要求を、検索範囲に基づいて、文書検索サーバ200、300に振り分ける。振り分け装置102は、一方の文書検索サーバが故障したときには他方の文書検索サーバが代行するように、検索範囲および文書検索サーバ200、300の運用状態に応じて、クライアント装置101からの文書検索要求を文書検索サーバ200、300に振り分ける。インデックス転送部207、307は、インデックス生成部201、301で生成された検索インデックスを他の文書検索サーバ300、200の補助検索インデックス記憶部308、208に反映させるためにインデックス情報を転送する。
特許請求の範囲
【請求項1】
所定の第1の文書群に対して検索インデックスを生成する検索インデックス生成手段と、
上記検索インデックス生成手段により生成された検索インデックスを保持する検索インデックス保持手段と、
ユーザからの文書検索要求に対して、上記検索インデックス保持手段に保持されている検索用インデックスを用いて文書検索を行なう検索手段と、
所定の第2の文書群に対する他の文書検索装置の検索インデックスを保持する補助検索インデックス保持手段とを有し、
上記検索手段に上記所定の第2の文書群に対する検索要求があったときに上記補助検索インデックス保持手段の検索インデックスを用いて文書検索を行なうことを特徴とする文書検索装置。
【請求項2】
上記所定の第2の文書群に対する他の文書検索装置が保持する当該所定の第2の文書群に対する検索インデックスまたはその差分を上記補助検索インデックスにコピーするようにした請求項1記載の文書検索装置。
【請求項3】
上記補助検索インデックス保持手段は、上記所定の第2の文書群に対する他の文書検索装置が文書検索に用いる検索インデックスを保持する検索インデックス保持手段である請求項1記載の文書検索装置。
【請求項4】
複数の文書検索装置からなる文書検索システムにおいて、
上記複数の文書検索装置の各々は、
該当する文書群に対して検索インデックスを生成する検索インデックス生成手段と、
上記検索インデックス生成手段により生成された検索インデックスを保持する検索インデックス保持手段と、
ユーザからの文書検索要求に対して、上記検索インデックス保持手段に保持されている検索用インデックスを用いて文書検索を行なう検索手段と、
他の文書検索装置の検索インデックスを保持する補助検索インデックス保持手段とを有し、
上記検索手段に上記他の文書検索装置の検索対象とする文書群に対する検索要求があったときに上記補助検索インデックス保持手段の検索インデックスを用いて文書検索を行なうことを特徴とする文書検索装置。
【請求項5】
検索要求を検索対象文書群に応じて上記複数の検索装置の1つに振り分ける振り分け手段をさらに有する文書検索システム。
【請求項6】
上記複数の文書検索装置の稼働状態を検出する検出手段をさらに有し、稼働状態にない文書検索装置の文書群に対する検索要求を他の稼働状態の文書検索装置に対して送出する請求項4または5記載の文書検索システム。
【請求項7】
検索インデックス生成手段が所定の第1の文書群に対して検索インデックスを生成するステップと、
検索インデックス保持手段が上記検索インデックス生成手段により生成された検索インデックスを記憶するステップと、
検索手段が、ユーザからの文書検索要求に対して、上記検索インデックス保持手段に保持されている検索用インデックスを用いて文書検索を行なうステップと、
補助検索インデックス保持手段が、所定の第2の文書群に対する他の文書検索装置の検索インデックスを記憶するステップとを有し、
上記検索手段に上記所定の第2の文書群に対する検索要求があったときに上記補助検索インデックス保持手段の検索インデックスを用いて文書検索を行なうことを特徴とする文書検索方法。
【請求項8】
検索インデックス生成手段が所定の第1の文書群に対して検索インデックスを生成するステップと、
検索インデックス保持手段が上記検索インデックス生成手段により生成された検索インデックスを記憶するステップと、
検索手段が、ユーザからの文書検索要求に対して、上記検索インデックス保持手段に保持されている検索用インデックスを用いて文書検索を行なうステップと、
補助検索インデックス保持手段が、所定の第2の文書群に対する他の文書検索装置の検索インデックスを記憶するステップとをコンピュータに実行させるために用いられ、さらに、
上記検索手段に上記所定の第2の文書群に対する検索要求があったときに上記補助検索インデックス保持手段の検索インデックスを用いて文書検索を行なうようにすることを特徴とする文書検索用コンピュータプログラム。
発明の詳細な説明
【技術分野】
【0001】
この発明は、文書検索技術に関し、とくに、データの一貫性を可能な限り維持しつつ、可用性向上・負荷分散を行い、限られた計算機リソースにより、特殊なハードウェアを用いることなく実現しようとするものである。
【背景技術】
【0002】
従来、データベースや検索システムの可用性向上・負荷分散のため、さまざまなシステムが提案されている。
【0003】
特許文献1は、非常に大きなデータベース管理システムにホットスペア冗長性を実現する手法を開示している。この文献では、トランザクションロガーがセカンダリシステムのトランザクションをコミットさせることを開示している。ホットスペア冗長性は、データの一貫性を追求する考え方としては一般的であり、データベースシステムにおいては重要である。ただし、ホットスペアの考え方は、冗長なセカンダリデータベースを必要とするため、非トラブル時のコンピュータリソースとしては無駄になる。
【0004】
他方、特許文献2は、同期に多少の誤差が許される用途向けに、インデックス反映の時期を最適化することを開示している。これにより、同期の誤差と、設備の負荷という相反する要素をバランスさせようとしている。この方式は、更新頻度が低いなど、個別の状況によって負荷分散が期待できる効果はあるが、最新のデータが得られない可能性があり、一貫性という観点からは問題がある。
【0005】
以上のように、従来技術はそれぞれ欠点があり、それらを組み合わせではその欠点をカバーできなかった。
【0006】
図1は特許文献1の手法を文書検索システムに適用した例を示す。この例ではリポジトリAのキャビネット1、2の文書を検索システムA(マスタ)、A’(スタンバイ)で検索するようになっており、そのキャビネット1、2のインデックス1、2を記憶システム(NAS/SAN、RAIDによる冗長性あり。Network Attached Storage/Storage Area Network、Redundant Arrays of Inexpensive Disks)に保持している。また、リポジトリBのキャビネット3の文書を検索システムB(マスタ)、B’(スタンバイ)で検索するようになっており、そのキャビネット3のインデックス3を同様に記憶システムに保持している。通常には、検索システムA、Bを用い、検索システムA、Bが故障したときにはスタンバイの検索システムA’、B’を用いるようになっている。図で実線は運用システムの動作を、破線は待機中であることを示す。図の例は、検索システムAが故障して、検索システムA’が代替的に検索を行なっている状況を示す。
【0007】
図2は他の従来の範疇の冗長サーバを導入して実現した文書検索システムの例を示す。図2の例では、マスタ検索システムAが検索要求をスレーブ検索システムA1、A2に振り分け、スレーブ検索システムA1、A2がインデックス1、2を用いて検索を行なう。この例で、例えばスレーブ検索システムA1が故障した場合には、残りのスレーブ検索システムA2がすべての検索要求を処理する。
【0008】
データの一貫性を維持しつつ、少ない計算機リソースで可用性向上・負荷分散を両立できるような検索方法はなかった。
【特許文献1】特開平11−327991号公報
【特許文献2】特開2001−14336公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
この発明は、以上の事情を考慮してなされたものであり、データの一貫性を維持しつつ、少ない計算機リソースで可用性向上・負荷分散を両立できる検索システムを提供することを目的としている。
【課題を解決するための手段】
【0010】
この発明の構成例では、上述の目的を達成するために、用意する複数サーバのそれぞれをアクティブスタンバイとし、適切なトリガ発生時に相互に情報を反映する。それぞれのサーバは、当初の受け持ちの範囲の検索要求を処理する。そして適宜なタイミングで他のサーバからインデックス情報を取得して当該他のサーバのインデックスを保持する。所定のサーバが故障したときには、他のサーバが本来の検索サービスに加えて当該故障したサーバの検索サービスも実行する。
【0011】
さらにこの発明を説明する。
【0012】
この発明の一側面によれば、上述の目的を達成するために、文書検索装置に:所定の第1の文書群に対して検索インデックスを生成する検索インデックス生成手段と;上記検索インデックス生成手段により生成された検索インデックスを保持する検索インデックス保持手段と;ユーザからの文書検索要求に対して、上記検索インデックス保持手段に保持されている検索用インデックスを用いて文書検索を行なう検索手段と;所定の第2の文書群に対する他の文書検索装置の検索インデックスを保持する補助検索インデックス保持手段とを設け、上記検索手段に上記所定の第2の文書群に対する検索要求があったときに上記補助検索インデックス保持手段の検索インデックスを用いて文書検索を行なうようにしている。
【0013】
この構成においては、通常に運用している文書検索装置が、故障した他の文書検索装置の検索サービスを代行するので、データの一貫性を維持しつつ、少ない計算機リソースで可用性向上・負荷分散を両立できる。
【0014】
この構成において、上記所定の第2の文書群に対する他の文書検索装置が保持する当該所定の第2の文書群に対する検索インデックスまたはその差分を上記補助検索インデックスにコピーするようにすることが好ましい。
【0015】
また、上記補助検索インデックス保持手段は、典型的には、上記所定の第2の文書群に対する他の文書検索装置が文書検索に用いる検索インデックスを保持する検索インデックス保持手段である。すなわち、2つの検索装置を例に挙げれば、一方の検索インデックス記憶手段が他方の補助検索インデックス記憶手段として動作する。
【0016】
また、この発明の他の側面によれば、複数の文書検索装置からなる文書検索システムにおいて、上記複数の文書検索装置の各々が:該当する文書群に対して検索インデックスを生成する検索インデックス生成手段と;上記検索インデックス生成手段により生成された検索インデックスを保持する検索インデックス保持手段と;ユーザからの文書検索要求に対して、上記検索インデックス保持手段に保持されている検索用インデックスを用いて文書検索を行なう検索手段と;他の文書検索装置の検索インデックスを保持する補助検索インデックス保持手段とを有し、上記検索手段に上記他の文書検索装置の検索対象とする文書群に対する検索要求があったときに上記補助検索インデックス保持手段の検索インデックスを用いて文書検索を行なうようにしている。
【0017】
この構成においても、データの一貫性を維持しつつ、少ない計算機リソースで可用性向上・負荷分散を両立できる。
【0018】
この構成において、検索要求を検索対象文書群に応じて上記複数の検索装置の1つに振り分ける振り分け手段をさらに設けても良い。
【0019】
また、上記複数の文書検索装置の稼働状態を検出する検出手段をさらに設け、稼働状態にない文書検索装置の文書群に対する検索要求を他の稼働状態の文書検索装置に対して送出するようにしてもよい。
【0020】
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。
【0021】
この発明の上述の側面および他の側面は特許請求の範囲に記載され以下実施例を用いて詳述される。
【発明の効果】
【0022】
この発明によれば、通常に運用している文書検索装置が、故障した他の文書検索装置の検索サービスを代行するので、データの一貫性を維持しつつ、少ない計算機リソースで可用性向上・負荷分散を両立できる。
【発明を実施するための最良の形態】
【0023】
以下、この発明の実施例について説明する。
【0024】
図3は、この発明の実施例の文書検索システム100を模式的に示すものであり、図4は当該文書検索システム100の動作例を説明するものである。この例では文書検索システム100が2つの文書検索サーバ200、300からなるが、これに限定されず、3つ以上の文書検索サーバを用いても良い。文書検索サーバ200、300を構成する機能ブロックは、当該サーバのハードウェア資源およびソフトウェア資源を協働させて実現される。
【0025】
図3において、文書検索システム100は、クライアント装置101、振り分け装置102、文書検索サーバ200、300を含んで構成される。各構成要素は適宜に通信ネットワークで接続される。クライアント装置101は、文書検索要求を発行するものであり、例えば、パーソナルコンピュータ等の各種ホストにより実現される。振り分け装置102は、クライアント装置101からの文書検索要求を文書検索サーバ200、300に振り分けるものである。この例では、例えば図4に示すように、通常時には、文書検索サーバ200がキャビネット1およびキャビネット2の文書に関する検索サービスを提供し、他の文書検索サーバ300がキャビネット3およびキャビネット4の文書に関する検索サービスを提供している。そして、一方の文書検索サーバが故障したときには他方の文書検索サーバが代行するようになっている。振り分け装置102は、検索範囲および文書検索サーバ200、300の運用状態に応じて、クライアント装置101からの文書検索要求を文書検索サーバ200、300に振り分ける。振り分け装置102は、例えば、リダイレクト機構を用いて実現出来る。ウェブベースで検索要求を発行する場合には、CGIプログラムで振り分け先を記述することができる。
【0026】
文書検索サーバ200および文書検索サーバ300は相互に補完して文書検索サービスを提供するようになっている。すなわち、文書検索サーバ200は、プライマリサーバとして文書群記憶部400の文書に対する文書検索サービスを提供するものであり、文書群記憶部400は、図4にも示すように、例えばキャビネット1、2の文書を保持するものである。文書検索サーバ300は、プライマリサーバとして文書群記憶部500の文書に対する文書検索サービスを提供するものであり、文書群記憶部500は、図4にも示すように、例えばキャビネット3、4の文書を保持するものである。文書検索サーバ200は、同時に、文書検索サーバ300が故障しているときに、セカンダリサーバとして文書群記憶部500の文書に対する文書検索サービスを提供し、文書検索サーバ300は、文書検索サーバ200が故障しているときに、セカンダリサーバとして文書群記憶部400の文書に対する文書検索サービスを提供する。なお、文書群記憶部400を後述の文書群記憶部500と個別に示しているが、これらは1つの記憶部であってもよい。図4ではリポジトリ部として1つの機能部分として示されている。
【0027】
文書検索サーバ200は、インデックス生成部201、検索インデックス記憶部202、検索式入力部203、検索部204、検索結果出力部205、ハートビート送信部206、インデックス転送部207、補助検索インデックス記憶部208等を含んで構成されている。
【0028】
インデックス生成部201は、文書群記憶部400の文書を参照して当該文書の検索インデックスを生成して検索インデックス記憶部202に記憶する。検索インデックスは、全文検索インデックスでも良いし、関連文書検索インデックスでもよい。検索式入力部203は、クライアント装置101から送られてきた検索要求の検索式を振り分け装置102を介して受け取る。検索部204は、検索式に合致する文書を検索インデックス記憶部202を参照して特定して検索結果とする。検索結果出力部205は検索結果をクライアント装置101に供給する。
【0029】
インデックス転送部207は、インデックス生成部201で生成された検索インデックスを他の文書検索サーバ300の補助検索インデックス記憶部308に反映させるためにインデックス情報を転送するものである。典型的には、検索インデックス記憶部207へ検索インデックスを書き込むトランザクションのログをとっておき、これを所定のタイミングでトリガして文書検索サーバ300の補助検索インデックス記憶部308にコミットすればよい。所定のタイミングは時間の経過でも良いし、あらたに検索インデックスが登録された文書の数でも良い。
【0030】
文書検索サーバ200の補助検索インデックス記憶部208は文書検索サーバ300のインデックス転送部307から検索インデックスを受け取り、文書検索サーバ300の検索サービスの範囲である文書群記憶部500の文書についての検索インデックスを保持する。
【0031】
ハートビート送信部206は、文書検索サーバ200が運用中である場合に所定の時間間隔でハートビート信号を振り分け装置102に送信する。振り分け装置102は、文書検索サーバ200のハートビート送信部206からハートビート信号を受け取っているときには、文書検索サーバ200が運用中であると判断して対応する検索範囲の検索要求を文書検索サーバ200に送信する。
【0032】
振り分け装置102は、文書検索サーバ200のハートビート送信部206からのハートビート信号が途絶え、かつ、文書検索サーバ300のハートビート送信部306からのハートビート信号が継続している場合には、本来、文書検索サーバ200に送信すべき検索要求を文書検索サーバ300に送信する。逆に、文書検索サーバ300のハートビート送信部306からのハートビート信号が途絶え、かつ、文書検索サーバ200のハートビート送信部206からのハートビート信号が継続している場合には、振り分け装置102は、本来、文書検索サーバ300に送信すべき検索要求を文書検索サーバ200に送信する。文書検索サーバ200、300の双方からのハートビートが途絶えた場合には、振り分け装置102はエラーをクライアント装置101に返す。
【0033】
文書検索サーバ200および文書検索サーバ300は同一の構成となっており、文書検索サーバ300の各部には300番台の対応する符号を付して詳細な説明は繰り返さない。
【0034】
つぎに、この実施例の動作例を説明する。図4にも示すように、リポジトリ情報のそれぞれに対し、プライマリサーバとセカンダリサーバを設定する(検索A、検索B)。キャビネット1、2は検索A(文書検索サーバ200)、キャビネット3、4は検索B(文書検索サーバ300)に割り当てる。通常運用時では、検索に関してはプライマリサーバのみにアクセスする。例えばキャビネット1、2の文書に対する文書検索に対しては検索Aを介してインデックス1、2を参照する。登録処理も、リポジトリからのアクセスはプライマリサーバのみに行ない、プライマリサーバへの登録完了後に、適切なタイミングでトリガを発生し、セカンダリサーバへの登録処理を行なう。例えば、検索Aからはインデックス1’、2’に登録する。この際、全文検索であればテキスト抽出語のプレーンテキストのみ、関連文書検索であればテキスト解析後の解析結果のみ登録すればよく、非常に軽い処理である。トリガが時間の経過や所定数の新規文書の登録等のイベントを採用できる。
【0035】
文書検索サーバ200または300に障害が発生すると、これが検知され、オペレーション対象を切り替え、セカンダリサーバにアクセスする。例えば、検索Aが故障した場合には、検索Bがキャビネット1、2に対する検索も行ない、検索Bがインデックス1’、2’を参照する。検索B(文書検索サーバ300)は、もともと含まれるインデックス3、4に加えインデックス1’,2’もトリガのタイミングで一貫したものを保持しているため、検索は通常通り行なえる。また、障害中の登録文書を相互に保持しておくことで、登録の一貫性も維持できる。
【0036】
障害検知は、この例では、一般的なハートビートのチェックで行なっているが、より単純にプライマリサーバに登録・検索処理を行なった際にレスポンスがないことでも判断できる。
【0037】
図5は、この実施例における検索サービス、文書更新動作(文書登録、削除、編集等)時の検索インデックス更新(インデックスレコードの生成、削除、変更)、インデックス情報のセカンダリサーバへの転送動作等の制御例を示すものである。この例では、検索要求の有無を判断して検索要求に対して検索サービスを提供し(ステップS10、S11)、文書更新の有無を判断して文書更新に対応する検索インデックスの更新を行う(ステップS12、S13)。さらに、インデックス情報をセカンダリサーバに送信するタイミングが到来したかどうかを判別してインデックス情報をセカンダリサーバに適宜に転送する(S14、S15)。さらに、ハートビート信号転送タイミングが到来したかどうかを判断してハートビート信号を振り分け装置102に供給するようにしている(S16、S17)。文書検索サーバ200または300が故障したときにはハートビート信号が振り分け装置102に供給されなくなり、それに応じてプライマリサーバからセカンダリサーバへの切換が行なわれる。なお、図5の例では、文書更新に合わせて検索インデックスを更新したが、スケジュールにしたがって、更新した文書の時間スタンプ等を用いて所定時間間隔等で検索インデックスを更新しても良い。セカンダリサーバに転送して補助検索インデックス記憶部208、308に反映させるインデックス情報は例えばプライマリサーバの検索インデックス記憶部202にコミットしたトランザクションのログ情報であり、セカンダリサーバにおいてこれを順次にコミットすれば良い。
【0038】
この実施例によれば、障害発生のクリティカルなタイミングを除けば、最新の一貫した情報に保たれるうえ、通常運用時の計算機リソースの無駄が少ない。また、一般的なハードウェアで実現できるため、導入コストも低く済む。
【0039】
つぎに上述実施例の変形例について説明する。
【0040】
上述の実施例では、構成を簡素化できるものの、障害発生直後の登録データの一貫性が完全には保たれない。このため、図6のように上位の検索レイヤの仕組みは同じにしたまま、下位のストレージレイヤはNAS/SAN(Network Attached Storage/Storage Area Network)600など共有可能でRAIDによる冗長性を持つようにしてもよい。これにより、ストレージに投資可能な場合はデータの一貫性を高めることができる。なお、図6において図3と対応する箇所には対応する符号を付した。また、図6において破線は故障時の動作を示す。
【0041】
この変形例では、1のサーバが故障したときにはアクティブなサーバが、図7に破線で示すように、その代行を行い、サーバ間では管理情報をやり取りするだけでよい。
【0042】
なお、この発明は上述実施例に限定されるものではなく、その趣旨を逸脱しない範囲で種々変更が可能である。例えば、上述例ではサーバを2つとしたが、3つ以上としても良い。
【図面の簡単な説明】
【0043】
【図1】従来例を説明する図である。
【図2】他の従来例を説明する図である。
【図3】この発明の実施例の構成を説明する図である。
【図4】上述実施例の動作を説明する図である。
【図5】上述実施例の制御例を説明するフローチャートである。
【図6】上述実施例の変形例を説明する図である。
【図7】上述変形例の動作を説明する図である。
【符号の説明】
【0044】
100 文書検索システム
101 クライアント装置
102 振り分け装置
200、300 文書検索サーバ
201、301 インデックス生成部
202、302 検索インデックス記憶部
203、303 検索式入力部
204、304 検索部
205、305 検索結果出力部
206、306 ハートビート送信部
207、307 インデックス転送部
208、308 補助検索インデックス記憶部
400、500 文書群記憶部
600 NAS/SAN




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013