JP5437557B2 - 検索処理方法及び検索システム - Google Patents

検索処理方法及び検索システム Download PDF

Info

Publication number
JP5437557B2
JP5437557B2 JP2006285077A JP2006285077A JP5437557B2 JP 5437557 B2 JP5437557 B2 JP 5437557B2 JP 2006285077 A JP2006285077 A JP 2006285077A JP 2006285077 A JP2006285077 A JP 2006285077A JP 5437557 B2 JP5437557 B2 JP 5437557B2
Authority
JP
Japan
Prior art keywords
document
search
update
index
storage unit
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.)
Expired - Fee Related
Application number
JP2006285077A
Other languages
English (en)
Other versions
JP2008102765A (ja
Inventor
功 難波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006285077A priority Critical patent/JP5437557B2/ja
Priority to US11/735,057 priority patent/US7680852B2/en
Publication of JP2008102765A publication Critical patent/JP2008102765A/ja
Application granted granted Critical
Publication of JP5437557B2 publication Critical patent/JP5437557B2/ja
Expired - Fee Related 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/33Querying
    • G06F16/3331Query processing

Description

本発明は、文書検索技術に関する。
近年、更新頻度が高い大規模な文書集合に高速なテキスト検索を行うという要求が生じている。例えば、インターネットやイントラネット上で公開されているブログやニュースは頻繁に更新されているが、これらに対して時間的な遅れなく検索サービスで提供したいという要求がある。また、コールセンタなどにおいて、蓄積された応対記録や直近に受け付けた膨大な応対記録に対して内容の変更に遅延を生ずることなく高速に検索を行いたいという要求もある。
これに対して、文書検索に対して広く実用化されている方式にはインデックスを作成する方式と、検索対象文書が検索キーを含んでいるか否かを判断するため検索対象文書のテキストを走査する文字列検索方式がある。
インデックス方式は、検索対象に対してインデックスを作成し、それにより検索を高速化する方式であり、代表的なものに"Inverted file"がある。この"Inverted file"は、文書中に出現する単語とその文書番号列を保持する索引構造である。"Inverted file"の検索は高速であり、1CPU(Central Processing Unit)で1秒あたり数GBから数十GBの検索性能(例えば駆動周波数3GHzのCPU)を有し、大規模な文書検索には適している。しかしながら、長大となる文書番号列を圧縮する実装が普通であるため、更新処理は困難であることが多い。
一方、文字列検索(パターンマッチングとも呼ぶ)はインデックスを作成せずに検索対象となるテキストに対して検索目的のパターンが存在するか否かを走査する方式である。文字列検索を用いて検索機構を実装する場合には、検索性能は1CPUで1秒あたり10乃至100MB程度(例えば駆動周波数3GHzのCPU)と低速である。これに対してインデックスを用いないため更新処理は検索対象の更新のみで済み、容易且つ高速である。
なお、特開平8−272806号公報には、複数の検索方法の実行が可能なデータベース検索システムにおいて、検索者が入力した検索式の条件を自動判断し、各々の検索方法の長所を利用して効率的な検索を行う技術が開示されている。具体的には、データベース格納部内のデータベースを検索するための検索手段として、例えば、インデックス検索手段と全文検索手段を設ける。そして、検索式を入力する入力手段と、検索式を単項式に分割する分割手段と、分割手段で得られた単項式をそれぞれインデックス検索手段と全文検索手段のいずれかに検索キーとして割り当てる割り当て手段と、インデックス検索手段と全文検索手段からの検索結果について上述の検索式に基づいて論理演算しこの検索式に対応する検索結果として表示手段に出力する演算手段とを設ける。但し、データベースの更新について検討したものではない。
また、特開平9−319769号公報には、高速なデータ検索を可能とし、システム資源を有効に活用することができる技術が開示されている。具体的には、データベースシステムは、結合された2つのデータ列をそれぞれ備える単一結合データベースと、それらの検索をそれぞれ実行するデータベースドライバと、データベースドライバにおける検索結果を結合するためのインタフェースドライバとを備える。インターフェースドライバは、所望の検索項目を備える単一結合データベースに対応したデータベースドライバに検索を指示し、それらの検索結果を結合することにより、所望の検索結果を取得する。本公報においても、データベースの更新については検討されていない。
さらに、特開平1−98020号公報には、全てのキ−値を持つベ−ス索引と共に、キヤツシユ索引が併用され、更新手段を介してキヤツシユ索引に更新情報が一時に蓄積される。検索要求により両索引をマ−ジした検索が行われ、キヤツシユ索引中にベ−ス索引に対応する部分が存在すると、対応するキヤツシユ索引の部分を削除し、ベ−ス索引に追加、削除する技術が開示されている。但し、データベースの更新については検討されていない。
特開平8−272806号公報 特開平9−319769号公報 特開平1−98020号公報
上で述べた"Inverted file"は、インデックス中の文書番号列に圧縮を掛けるために一般に検索サービス中のインデックス更新は困難である。この問題に対処するためにインデックスを多重に保持し、1つを検索用、もう1つをバックグラウンドでの更新用とし用い、バックグラウンドでの更新が終了したらインデックスを切り替えるという方式が採用されている。この方式では更新対象の文書規模にもよるが、原文書の更新に対してインデックスの更新完了時間に数十分程度の遅れが生じる。
また文字列検索では、インデックスの更新は不要であるため更新は高速(具体的には、遅延時間は事実上0とみなせる)であるが、検索速度が低速であるため、数GB以上の文書を検索しようとすると、検索対象文書を分割して保持するため多数のハードウエア資源が必要となるという問題がある。
従って、本発明の目的は、大規模な文書集合に対して高速な検索性能を維持しつつ更新遅延を生じさせないようにするための技術を提供することである。
また、本発明の他の目的は、ハードウエアコストの増大を抑えつつ文書集合の更新遅延を生じさせないようにするための技術を提供することである。
本発明の第1の態様に係る検索処理方法は、文書更新前の検索インデックスを用いて検索を行うインデックス検索ユニットに対して、検索要求に係る検索を実施させ、該当文書の文書IDの第1のリストを取得する第1取得ステップと、文書更新後の文書内容を保持する文字列検索ユニットに対して、検索要求に係る文字列検索を文書更新後の文書内容に対して実施させ、該当文書の文書IDの第2のリストを取得する第2取得ステップと、第1のリストと第2のリストと上記文書更新に係る文書の文書IDの第3のリストとを用いて、検索要求に対する検索結果を生成する生成ステップとを含む。
このように更新に係る部分を除いた部分についてはインデックス検索ユニットを用いて、更新に係る部分については文字列検索ユニットを用いて検索速度を高速に維持している。なお、第1取得ステップと第2取得ステップとは並列に実施できる。
また、上で述べた生成ステップが、第1のリストから第3のリストに含まれる文書IDを除去し、第4のリストを生成するステップと、第4のリストと第2のリストとの和集合を生成するステップとを含むようにしてもよい。このようにすれば簡単な論理演算にて正確な検索結果を返すことができる。
また、上で述べた第1取得ステップが、検索要求に係る検索語に対してインデックス検索のための正規化処理を実施するステップを含むようにしてもよい。また、上で述べた第2取得ステップが、検索要求に係る検索語に対して文字列検索のための正規化処理を実施するステップを含むようにしてもよい。検索高速化のためである。
また、本発明の第2の態様に係る検索システムは、検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、検索時に用いられ且つ更新文書の文書IDを格納する第1の差分文書ID管理部と、検索時に文字列検索を実施するために更新文書のデータを格納する第1のパターンマッチング対象文書格納部とを有する。そして、第1の検索インデックスを用いて検索要求に係る検索を実施させ、該当文書の文書IDの第1のリストを取得し、検索要求に係る文字列検索を第1のパターンマッチング対象文書格納部に対して実施し、該当文書の文書IDの第2のリストを取得し、第1のリストと第2のリストと第1の差分文書ID管理部に格納されている文書IDとを用いて、検索要求に対する検索結果を生成するものである。更新遅延を低減しつつ、高速な検索を可能とする構成である。
さらに、本発明の第3の態様に係る検索システムは、検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、更新文書を反映するために用いられる第2の検索インデックスと、第2の検索インデックスに対する更新文書の反映処理を開始してからの更新文書のデータを格納する第1の更新候補文書格納部と、第2の検索インデックスに対する反映処理に用いられる更新文書のデータを格納する第2の更新候補文書格納部と、検索時に用いられ且つ更新文書の文書IDを格納する第1の差分文書ID管理部と、検索時に文字列検索を実施するために更新文書のデータを格納する第1のパターンマッチング対象文書格納部と、第2の検索インデックスに対する更新文書の反映処理を開始してからの更新文書の文書IDを格納する第2の差分文書ID管理部と、第2の検索インデックスに対する更新文書の反映処理を開始してからの更新文書のデータを格納する第2のパターンマッチング対象文書格納部とを有する。そして、第2の検索インデックスに対する更新文書の反映処理が完了した場合、反映処理後の第2の検索インデックスを、第1の検索インデックスとして切り替えて用い、第1の更新候補文書格納部に格納されている更新文書のデータを第2の更新候補文書格納部に上書き移動させ、第2の差分文書ID管理部に格納されている更新文書の文書IDを第1の差分文書ID管理部に上書き移動させ、第2のパターンマッチング対象文書格納部に格納されている更新文書のデータを第1のパターンマッチング対象文書格納部に上書き移動させるものである。
このようにすれば、ハードウエアコストの増加を抑えつつ、文書集合に対する更新遅延を生じさせないようにすることができる。すなわち、検索に用いる資源と文書の更新に応じた準備を行う資源とを分けて有し、一斉に上で述べたような処理を実施することによって、検索者への応答に大きな遅延が発生しないようにしつつ、更新遅延も生じさせないようにすることができる。
また、第2の検索インデックスに対する更新文書の反映処理が開始される前には、第1及び第2の更新候補文書格納部に新たな更新要求に係る更新文書のデータを格納するようにしてもよい。その場合、第1の差分文書ID管理部に新たな更新要求に係る更新文書の文書IDを格納し、第1のパターンマッチング対象文書格納部に新たな更新要求に係る更新文書のデータを格納するようにしてもよい。
さらに、第2の検索インデックスに対する更新文書の反映処理が開始された後には、第1の更新候補文書格納部をクリアするようにしてもよい。その場合、第1の更新候補文書格納部に新たな更新要求に係る更新文書のデータを格納し、第1及び第2の差分文書ID管理部に新たな更新要求に係る更新文書の文書IDを格納し、第1及び第2のパターンマッチング対象文書格納部に新たな更新要求に係る更新文書のデータを格納するようにしてもよい。
さらに、第1の検索インデックスを用いて検索要求に係る検索を実施させ、該当文書の文書IDの第1のリストを取得し、検索要求に係る文字列検索を第1のパターンマッチング対象文書格納部に対して実施し、該当文書の文書IDの第2のリストを取得し、第1のリストと第2のリストと第1の差分文書ID管理部に格納されている文書IDとを用いて、検索要求に対する検索結果を生成するようにしてもよい。
また、第1及び第2の更新候補文書格納部に格納される更新文書のデータが、検索インデックス向けに正規化されており、第1及び第2のパターンマッチング対象文書格納部に格納される更新文書のデータが、文字列検索向けに正規化されている場合もある。
本発明にかかる検索処理方法をコンピュータに実行させるためのプログラムや検索システムをコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してディジタル信号にて頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
本発明によれば、大規模な文書集合に対して高速な検索性能を維持しつつ更新遅延を生じさせないようにすることができる。
また、本発明の他の側面によれば、ハードウエアコストの増大を抑えつつ文書集合の更新遅延を生じさせないようにすることができる。
図1に本発明の一実施の形態に係る検索システムのシステム概要図を示す。本実施の形態における検索システムは、ユーザ等から検索要求などの処理要求を受け付ける処理要求受信部1と、検索要求に係る検索語や文書更新要求に係る文書などに対してインデックス検索ユニット向けの正規化処理及び文字列検索ユニット向けの正規化処理を実施する正規化処理部3と、インデックス検索ユニットA及びBと、正規化処理部3からのデータに応じてインデックス検索ユニットA及びBに対して以下で詳細に述べる制御を実施するインデックス検索コントローラ5と、文字列検索ユニットA及びBと、文字列検索ユニットAに対して検索要求に係る文字列検索を行うパターンマッチング処理部9と、正規化処理部3からのデータに応じてパターンマッチング処理部9並びに文字列検索ユニットA及びBに対して以下で詳細に述べる制御を実施する文字列検索コントローラ7とを有する。
インデックス検索ユニットAは、検索用であって、検索インデックスを有するインデックス処理部111と、更新候補文書格納部113とを有する。インデックス検索ユニットBは、更新用であって、検索インデックスを有するインデックス処理部131と、更新候補文書格納部133とを有する。インデックス検索ユニットA及びBは、周知のインデックス検索を実施するためのものであり、インデックス処理部111には所定のタイミングで生成された検索インデックスが保持されている。
インデックス検索コントローラ5と文字列コントローラ7とは連係して動作する。
文字列検索ユニットAは、検索用であって、差分文書ID管理部151と、パターンマッチング対象文書格納部153とを有する。文字列検索ユニットBは、更新用であって、差分文書ID管理部171と、パターンマッチング対象文書格納部173とを有する。文字列検索ユニットA及びBは、周知の文字列検索(すなわちパターンマッチング)を実施するためのものであって、所定のタイミング以降に更新された文書内容をパターンマッチング対象文書格納部153に保持すると共に、差分文書ID管理部151は所定のタイミング以降に更新された文書の文書IDのリストを保持している。
なお、検索システムは、例えばネットワークに接続されており、ネットワークに接続された他のコンピュータから検索要求などを受信するものとして説明するが、スタンドアローン形式で実施するようにしても良い。
次に、図2を用いて図1に示した検索システムにおける検索処理を説明する。まず、処理要求受信部1は、検索キー(すなわち検索語)を含む検索要求をネットワークを介して受信し(ステップS1)、検索キーを含む検索要求を正規化処理部3に出力する。正規化処理部3は、処理要求受信部1から検索キーを含む検索要求を受信すると、検索キーをインデックス向けに正規化し、メインメモリなどの記憶装置に格納する(ステップS3)。正規化処理部3の処理内容については、後にまとめて説明するが、共通の正規化規則に従ってインデックス検索と文字列検索の差を抑制するものである。例えば、文字列検索では文書中の任意の文字列部分にマッチするため、thisを含む文書をisで検索するとヒットするが、インデックスが単語単位である場合にthisの部分列はヒットしない。このため同一の単語を含む文章であってもインデックス側で検索される場合と文字列検索側で検索される場合で結果に差が生じる可能性があるためこれを抑制するものが正規化規則である。本実施の形態では、共通の正規化としてケース・ホールディング(case folding)を実施し文字列検索に対しては、単語を#で囲むという正規化を行い、インデックスに対しては、これが単語単位で索引を作成すると想定しステミング(stemming)を抑制するとしている。そして、正規化処理部3は、正規化された検索キーを含む検索要求を、インデックス検索コントローラ5に出力する。
インデックス検索コントローラ5は、正規化処理部3から正規化された検索キーを含む検索要求を受信すると、インデックス検索ユニットAに当該検索要求を転送する。
インデックス検索ユニットAは、インデックス検索コントローラ5から検索要求を受信すると、そのインデックス処理部111により周知のインデックス検索を実施する(ステップS5)。そして、インデックス検索ユニットAのインデックス処理部111は、検索結果をインデックス検索コントローラ5に出力する。検索結果は文書IDのリストであって、ここでは例えば文書1、文書3、文書5及び文書13とする。インデックス検索コントローラ5は、インデックス処理部111から検索結果の文書IDリストを受信し(ステップS7)、例えばメインメモリなどの記憶装置に格納すると共に、文字列検索コントローラ7に検索結果の文書IDリストを出力する。文字列検索コントローラ7は、インデックス検索の検索結果である文書IDリストを受信する。
また、ステップS5及びS7に並行して、正規化処理部3は、処理要求受信部1から受信した検索要求に含まれる検索キーをパターンマッチング向け(すなわち文字列検索向け)に正規化(すなわち変換)する(ステップS9)。例えば、共通の正規化規則に従ってケース・ホールディング(case folding)を実施し、アルファベット連続のトークン(token)の前後を#で囲む。例えば、Thisであれば、#this#とする。正規化処理部3は、パターンマッチング向けに変換された検索キーを含む検索要求を文字列検索コントローラ7に出力する。
さらに、文字列検索コントローラ7は、文字列検索ユニットAの差分文書ID管理部151から、当該差分文書ID管理部151に登録されている文書IDのリストを取得し、インデックス検索コントローラ5から受信したインデックス検索の検索結果である文書IDリストから、取得した文書IDのリストを引き算して除去して、残余の文書IDのリストを例えばメインメモリなどの記憶装置に格納する(ステップS11)。差分文書ID管理部151は、インデックス処理部111において用いられている現在の検索インデックスが生成された後に更新された文書の文書IDのリストを保持しているので、たとえインデックス検索の結果に、差分文書ID管理部151が保持している文書IDのリストに含まれる文書IDが含まれていても、それは信用できない。従って、本ステップにおいて、インデックス検索の検索結果である文書IDのリストから、差分文書ID管理部151が保持している文書IDのリストに含まれる文書IDを除去する。例えば、差分文書ID管理部151が保持している文書IDが、文書5、文書28、文書34であるとすると、文書5がインデックス検索の検索結果と重複するので除去され、残りは文書1、文書3、文書13となる。
文字列検索コントローラ7は、正規化処理部3から、変換後の検索キーを含む検索要求を受信すると、パターンマッチング処理部9へ変換後の検索キーを出力して、パターンマッチング処理部9にパターンマッチング対象文書格納部153に対する周知の文字列検索を実施させる(ステップS13)。パターンマッチング処理部9は、変換後の検索キーを用いて、検索に用いられた検索インデックス生成後に更新された文書の内容を保持するパターンマッチング対象文書格納部153を走査し、該当する文書IDを特定し、該当文書の文書IDのリストを文字列検索コントローラ7に出力する。文字列検索コントローラ7は、パターンマッチング処理部9から、文字列検索の検索結果である文書IDリストをパターンマッチング検索結果として受信し、例えばメインメモリなどの記憶装置に格納する(ステップS15)。例えば、文書1、文書8、文書28及び文書34が処理結果として得られたものとする。
そして、文字列検索コントローラ7は、パターンマッチング検索結果の文書IDリストとステップS11の処理結果として得た残余の文書IDのリスト(すなわち除去処理結果)とに対してOR演算を実施(すなわち和集合を生成)し、例えばメインメモリなどの記憶装置に格納する(ステップS17)。これによって、現在の検索インデックス生成後に更新された文書の更新内容を反映した形で検索結果が生成される。例えば、残余の文書IDのリストが、文書1、文書3、文書13であって、パターンマッチング検索結果が文書1、文書8、文書28及び文書34であるから、和集合としては、文書1、文書3、文書8、文書13、文書28及び文書34となる。
その後、例えば、文字列検索コントローラ7は、要求元のユーザ端末に、OR演算の結果(すなわち文書IDリスト)を出力する(ステップS19)。
このようにすれば、大量の文書についてはインデックス検索ユニットAによるインデックス検索を実施し、少量の更新文書については文字列検索ユニットAに対するパターンマッチング処理部9による文字列検索を並行に行うことができ、検索の高速性が保持しつつ、正しい検索結果を得ることができるようになる。
次に、図3乃至図26を用いて、更新処理について説明する。まず、図3を用いてインデックス差分更新開始処理について説明する。まず、管理者端末からインデックス差分更新開始処理を指示されるか又は定期的又は任意のタイミングで自動的にインデックス差分更新開始処理が指示されると、例えばインデックス検索コントローラ5は、自身のインデックス差分更新開始フラグをセットすると共に、文字列検索コントローラ7におけるインデックス差分更新開始フラグをセットする(ステップS21)。そして、インデックス検索コントローラ7は、インデックス検索ユニットAの更新候補文書格納部113をクリアする(ステップS23)。更新候補文書格納部113には、以下で説明するが、現在の検索インデックス生成開始後に更新された文書の内容が格納されており、それがクリアされる。なお、バックアップのために他の記憶領域に格納しておくようにしても良い。
さらに、インデックス検索コントローラ7は、インデックス検索ユニットBのインデックス処理部131に、自身の検索インデックスに対して更新候補文書格納部133に保持されている文書を反映するための更新処理を実施させる(ステップS25)。更新候補文書格納部133は、インデックス検索ユニットBの検索インデックスに対する前回の更新処理が開始した後に受信した更新要求に係る文書の内容を保持している。この前回の更新処理が開始した後の更新内容を反映するために、検索インデックスの更新を開始するものである。
次に、他のコンピュータや、検索システムの更新文書取得部(図示せず)、ユーザ端末などから検索対象の文書の更新要求を受信した際の処理について、図4乃至図22を用いて説明する。まず、他のコンピュータや、検索システムの更新文書取得部、ユーザ端末などから、処理要求受信部1は、更新後の文書内容を含む文書更新要求を受信し(ステップS31)、正規化処理部3に出力する。そして、正規化処理部3は、文書更新要求を受信した旨をインデックス検索コントローラ5及び文字列検索コントローラ7に通知する。
そうすると、インデックス検索コントローラ5は、インデックス検索ユニットA及びBに書き込みロックをかけ、文字列検索コントローラ7は、文字列検索ユニットA及びBに書き込みロックをかける(ステップS33)。
また、正規化処理部3は、文書更新要求に係る文書の内容をインデックス向けに正規化し、例えばメインメモリなどの記憶装置に格納すると共に、インデックス検索コントローラ5に出力する(ステップS35)。文書更新要求に係る正規化された文書内容を受信したインデックス検索コントローラ5は、自身のインデックス差分開始フラグがONであるか判断する(ステップS37)。インデックス差分開始フラグがOFFである場合には、インデックス検索コントローラ5は、インデックス検索ユニットBの更新候補文書格納部133に、正規化された文書更新要求に係る文書の内容を登録する(ステップS39)。
また、インデックス差分開始フラグがONである場合であってもOFFであっても、インデックス検索コントローラ5は、インデックス検索ユニットAの更新候補文書格納部113に、正規化された文書更新要求に係る文書の内容を登録する(ステップS41)。
図5乃至図8を用いて、ここまでの処理の内容について説明する。例えば図5及び図6に示すように、インデックス検索ユニットAのインデックス処理部111の検索インデックスも、インデックス検索ユニットBのインデックス処理部131の検索インデックスも空であり、さらにインデックス検索ユニットAの更新候補文書格納部113もインデックス検索ユニットBの更新候補文書格納部133も空である状態を想定する。
そして、文書ID「00001」で文書内容「This is a book」と、文書ID「00002」で文書内容「This is a pen」と、文書ID「00003」で文書内容「This was a book」と、文書ID「00004」で文書内容「That is a book」と、文書ID「00005」で文書内容「That was a pen」とが文書更新要求で指定されるとする。
そうすると、インデックス差分更新開始フラグがOFFであれば、ステップS39及びS41で、図7及び図8に示すように、正規化された文書内容(「This」が「this」に正規化され、「That」が「that」に正規化される)が、インデックス検索ユニットAの更新候補文書格納部113と、インデックス検索ユニットBの更新候補文書格納部133とに登録される。なお、インデックス差分更新開始フラグがONであれば、インデックス検索ユニットAの更新候補文書格納部113にのみ更新内容が登録される。
図4の説明に戻って、ステップS37乃至S41とは並列に、正規化処理部3は、文書更新要求に係る文書の内容をパターンマッチング向けに変換(すなわち正規化)し、例えばメインメモリなどの記憶装置に格納すると共に、文字列検索コントローラ7に出力する(ステップS43)。処理は端子Aを介して図9の処理フローに移行する。
文字列検索コントローラ7は、自身のインデックス差分更新開始フラグがONであるか判断する(ステップS44)。インデックス差分更新開始フラグがONである場合には、文字列検索コントローラ7は、文字列検索ユニットBのパターンマッチング対象文書格納部173に、変換後の、文書検索要求に係る文書の内容を登録する(ステップS45)。また、文字列検索コントローラ7は、文字列検索ユニットBの差分文書ID管理部171に、文書更新要求に係る文書の文書IDを登録する(ステップS47)。
また、インデックス差分更新開始フラグがOFFの場合であってもONの場合であっても、文字列検索コントローラ7は、文字列検索ユニットAのパターンマッチング対象文書格納部151に、変換後の、文書検索要求に係る文書の内容を登録する(ステップS49)。また、文字列検索コントローラ7は、文字列検索ユニットAの差分文書ID管理部151に、文書更新要求に係る文書の文書IDを登録する(ステップS51)。
図10乃至図13を用いてステップS44乃至S51の処理について説明する。まず、前提として、図10及び図11に示すように、文字列検索ユニットAの差分文書ID管理部151も、文字列検索ユニットBの差分文書ID管理部171も空であり、さらに文字列検索ユニットAのパターンマッチング対象文書格納部153も文字列検索ユニットBのパターンマッチング対象文書格納部173も空であるとする。
その後上で述べたような文書更新要求を受信すると、図12及び図13に示すように、正規化された文書内容(「This is a book」が「#this# #is# #a# #book#」といったように正規化される)が、インデックス差分更新開始フラグがOFFであれば、文字列検索ユニットAのパターンマッチング対象文書格納部153のみに格納される。また、更新文書の文書ID(「00001」乃至「00005」)も、文字列検索ユニットAの差分文書ID管理部151のみに登録される。
一方、インデックス差分更新開始フラグがONであれば、正規化された文書内容は、文字列検索ユニットAのパターンマッチング対象文書格納部153にも文字列検索ユニットBのパターンマッチング対象文書格納部173にも格納される。また、更新文書の文書IDも、文字列検索ユニットAの差分文書ID管理部151にも文字列検索ユニットBの差分文書ID管理部171にも登録される。
そして、インデックス検索コントローラ5は、インデックス検索ユニットA及びBの書き込みロックを解除し、文字列検索コントローラ7は、文字列検索ユニットA及びBの書き込みロックを解除する(ステップS53)。
このようにして高速検索を可能にしつつ文書更新に対処する。
なお、本実施の形態を分かりやすくするために、図5乃至図8及び図10乃至図13の後に、以下のような処理が行われた場合について具体的に説明する。まず、「IS」を検索キーとする検索要求を受信した場合には、正規化処理部3はインデックス検索向けに「is」に正規化し、文字列検索向けに「#is#」に変換する。この「is」をベースにインデックス検索ユニットAのインデックス処理部111によりインデックス検索が行われるが、検索インデックスが空であるので、インデックス検索ユニットAのインデックス処理部111からの検索結果は「空」である。また、文字列検索コントローラ7が文字列検索ユニットAの差分文書ID管理部151から保持する文書IDのリストを受け取っても、インデックス検索コントローラ5から受信したインデックス検索の検索結果が「空」であるから、引き算した結果も「空」となる。そこで、パターンマッチング処理部9が、文字列検索ユニットAのパターンマッチング対象文書格納部153に対して「#is#」をベースにパターンマッチング処理を実施すると、文書ID「00001」「00002」「00004」を得ることができる。そして、文字列検索コントローラ7は、「空」と文書ID「00001」「00002」「00004」との和集合を生成し、検索結果として文書ID「00001」「00002」「00004」を出力する。
次に、インデックス差分更新開始処理が実施されると、図3の処理に従って処理が行われ、図14に示されるように、インデックス検索ユニットAの更新候補文書格納部113はクリアされて、「空」となる。また、図15に示されるように、インデックス検索ユニットBのインデックス処理部131は、更新候補文書格納部133に格納されている更新文書の内容を自身の検索インデックスに反映させる処理(すなわち更新処理)を開始する。
その後、文書ID「00001」の文書内容を「Those are books」に変更する文書更新要求を受信した場合、正規化処理部3は、インデックス向けに「those are books」と正規化し、図16に示すように、インデックス検索コントローラ5は、インデックス検索ユニットAの更新候補文書格納部113に文書IDと更新後の文書内容を登録する。但し、図17に示すように、インデックス検索ユニットBのインデックス処理部131は、更新処理を実施中であり、更新候補文書格納部133には更新を行わない。
また、正規化処理部3は、パターンマッチング向けに「#those# #are# #books#」に変換し、文字列検索コントローラ7は、文字列検索ユニットAの差分文書ID管理部151に、文書更新要求に係る文書の文書ID「00001」を登録する。但し、既に文書ID「00001」は登録済みであるので、変化はない。また、図18に示すように、文字列検索ユニットAのパターンマッチング対象文書格納部153に、文書更新要求に係る文書の文書ID及び変換後の更新内容を登録する。図18では、更新部分に下線を引いてある。さらに、図19に示すように、文字列検索ユニットBのパターンマッチング対象文書格納部173に、文書更新要求に係る文書の文書ID及び変換後の更新内容を登録する。図13で示したように、インデックス差分更新開始フラグがOFFである場合には、差分文書ID管理部171にもパターンマッチング対象文書格納部173にもデータは登録されないので、今回の文書更新要求に係る文書の文書ID及び変換後の更新内容が初めて登録されることになる。
さらに、文書ID「00007」で文書内容「That is a pencil」という文書を追加する文書更新要求を受信した場合、正規化処理部3は、インデックス向けに「that is a pencil」と正規化し、図20に示すように、インデックス検索コントローラ5は、インデックス検索ユニットAの更新候補文書格納部113に文書IDと追加の文書内容を登録する。但し、インデックス検索ユニットBのインデックス処理部131は、更新処理を実施中であり、更新候補文書格納部133には更新を行わない。
また、正規化処理部3は、パターンマッチング向けに「#that# #is# #a# #pencil#」に変換し、図21に示すように、文字列検索コントローラ7は、文字列検索ユニットAの差分文書ID管理部151に、文書更新要求に係る文書の文書ID「00007」を登録する。また、文字列検索ユニットAのパターンマッチング対象文書格納部153に、文書更新要求に係る文書の文書ID及び追加の文書内容を登録する。図21では、更新部分に下線を引いてある。さらに、図22に示すように、文字列検索ユニットBのパターンマッチング対象文書格納部173に、文書更新要求に係る文書の文書ID及び追加の文書内容を登録する。
ここで「IS」を検索キーとする検索要求を受信した場合には、正規化処理部3はインデックス検索向けに「is」に正規化し、文字列検索向けに「#is#」に変換する。この「is」をベースにインデックス検索ユニットAのインデックス処理部111によりインデックス検索が行われるが、検索インデックスが空であるので、インデックス検索ユニットAのインデックス処理部111からの検索結果は「空」である。
また、文字列検索コントローラ7が文字列検索ユニットAの差分文書ID管理部151から保持する文書IDのリストを受け取っても、インデックス検索コントローラ5から受信したインデックス検索の検索結果が「空」であるから、引き算した結果も「空」となる。そこで、パターンマッチング処理部9が、文字列検索ユニットAのパターンマッチング対象文書格納部153に対して変換化後の「#is#」をベースにパターンマッチング処理を実施すると、文書ID「00002」「00004」「00007」を得ることができる。そして、文字列検索コントローラ7は、「空」と文書ID「00002」「00004」「00007」との和集合を生成し、検索結果として文書ID「00002」「00004」「00007」を出力する。
次に、図23乃至図25を用いて、インデックス検索ユニットBのインデックス処理部131による更新文書の反映が終了した場合に実施される差分更新終了処理を説明する。インデックス検索ユニットBのインデックス処理部131は、更新文書の反映処理を終了すると、インデックス検索コントローラ5に当該終了を通知する。インデックス検索コントローラ5は、文字列検索コントローラ7にも終了を通知する。そうすると、インデックス検索コントローラ5は、インデックス検索ユニットA及びBに対する書き込みロックを行い、さらに文字列検索コントローラ7は、文字列検索ユニットA及びBに対する書き込みロックを実施する(ステップS61)。
そして、インデックス検索コントローラ5は、インデックス検索ユニットBの検索インデックスをインデックス検索ユニットAのインデックス処理部111にコピーする(ステップS63)。また、インデックス検索コントローラ5は、インデックス検索ユニットAの更新候補文書格納部113の格納データを、インデックス検索ユニットBの更新候補文書格納部133に上書きコピーする(ステップS65)。そして、インデックス検索コントローラ5は、インデックス検索ユニットAの更新候補文書格納部113をクリアする(ステップS67)。
更新文書の反映処理を実施している間、インデックス検索ユニットBの更新候補文書格納部133は更新されず、インデックス検索ユニットAの更新候補文書格納部113に更新文書の内容が蓄積されるので、検索インデックスに対する更新文書の反映処理が完了すれば、上で述べたような処理を実施し、次に行われる更新文書の反映処理に備える。
さらに、文字列検索コントローラ7は、文字列検索ユニットBの差分文書ID管理部171の格納データを、文字列検索ユニットAの差分文書ID管理部151に上書きコピーを行う(ステップS69)。文字列検索コントローラ7は、文字列検索ユニットBのパターンマッチング対象文書格納部173の格納データを、文字列検索ユニットAのパターンマッチング対象文書格納部153に上書きコピーする(ステップS71)。また、文字列検索コントローラ7は、文字列検索ユニットBの差分文書ID管理部171及びパターンマッチング対象文書格納部173をクリアする(ステップS73)。
検索インデックスに対する更新文書の反映処理を実施している間、文字列検索ユニットAも文字列検索ユニットBも更新されるが、更新文書の反映処理が実施されていない間は文字列検索ユニットAのみが更新されるので、文字列検索ユニットBには更新文書の反映処理を実施している間のみの更新文書の内容が蓄積される。従って、検索インデックスが更新された後には、文字列検索ユニットBの内容で文字列検索ユニットAを置換することで、正確な検索を行うことができるようになる。
また、インデックス検索コントローラ5は、インデックス検索ユニットA及びBに対する書き込みロックを解除し、文字列検索ユニットA及びBに対する書き込みロックを解除する(ステップS75)。
上で述べた具体例を用いて差分更新終了処理を説明する。図24に示すように、インデックス検索ユニットBのインデックス処理部131により生成された検索インデックス(文書ID「00001」乃至「00005」に対するインデックス)を、インデックス検索ユニットAのインデックス処理部113にコピーする。また、インデックス検索ユニットAの更新候補文書格納部113に格納された文書ID「00001」及び「00007」及びその更新内容を、インデックス検索ユニットBの更新候補文書格納部133に上書き移動する。これによって、インデックス検索ユニットAの更新候補文書格納部113は空になる。
さらに、文字列検索ユニットBの差分文書ID管理部171の格納データである文書ID「00001」及び「00007」を、文字列検索ユニットAの差分文書ID管理部151に上書き移動する。同様に、文字列検索ユニットBのパターンマッチング対象文書格納部173の格納データである文書ID「00001」及び「00007」並びにその内容を、文字列検索ユニットAのパターンマッチング対象文書格納部153に上書き移動する。これによって、文字列検索ユニットBの差分文書ID管理部171及びパターンマッチング対象文書格納部173は空になる。
図24及び図25に示された状態になった後に、「IS」を検索キーとする検索要求を受信した場合には、正規化処理部3はインデックス検索向けに「is」に正規化し、文字列検索向けに「#is#」に変換する。この「is」をベースにインデックス検索ユニットAのインデックス処理部111によりインデックス検索が行われるが、図17の更新候補文書格納部133に格納されているデータをベースに検索インデックスが構成されているので、文書ID「00001」「00002」「00004」がインデックス検索の検索結果として抽出される。また、文字列検索コントローラ7が文字列検索ユニットAの差分文書ID管理部151から保持する文書IDのリスト(文書ID「00001」及び「00007」)を受け取って、インデックス検索コントローラ5から受信したインデックス検索の検索結果から引き算すると、文書ID「00002」「00004」が得られる。
また、パターンマッチング処理部9が、文字列検索ユニットAのパターンマッチング対象文書格納部153に対して「#is#」をベースにパターンマッチング処理を実施すると、文書ID「00007」を得ることができる。そして、文字列検索コントローラ7は、文書ID「00007」と文書ID「00002」「00004」との和集合を生成すると、検索結果として文書ID「00002」「00004」「00007」を出力する。
このように検索インデックスによって大量の文書に対する検索速度を維持すると共に、少量の更新文書に対しては並行して実施される文字列検索によって対処して、更新文書の文書IDと併せて適切に合成することによって、正しい検索結果を高速に得ることができるようになる。
次に、図26を用いて正規化処理部3の処理内容をまとめておく。まず、インデックス及び文字列検索に共通の正規化処理を実施し、処理結果を例えばメインメモリなどの記憶装置に格納する(ステップS81)。例えば、「These are books」であれば、「these are books」とcase folding変換される。そして、文字列検索向けの正規化処理であるか判断し(ステップS83)、インデックス検索向けの正規化処理であれば、インデックス検索固有のマッチング処理を抑制する正規化を実施する(ステップS87)。この結果は例えば、「these are books」となる。本実施の形態では抑制する処理は英語の情報検索でよく用いられるステミング(stemming)を想定しており、この処理は適用されないので、「books」は「book」に変換されない。
一方、文字列検索向けの正規化処理の場合には、文字列検索固有のマッチング処理を抑制する正規化処理を実施する(ステップS85)。文字列検索固有のマッチングとしてはその性質上任意の文字列にマッチするというものがあるが、本実施の形態ではインデックスが単語単位であり基本的に空白区切りで単語を認定していることを想定しているためこれにあわせるため空白で囲まれている文字列の前後に#を付与する処理を行っている。これにより入力は「#these# #are# #books#」というように変換される。正規化処理の選択は対象となっている言語でどのようにインデックスと文字列検索で検索結果の整合性をとるかに依存するため本実施の形態以外にさまざまな方式が可能である。
このようにすれば、高速な検索を実施することができるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、図1に示した機能ブロック図は一例であって、必ずしも実際のプログラムモジュールとは対応しない。
さらに、処理フローでは一列に並んでいるステップであっても処理結果が変わらない限り並列実行できるものもある。また、処理結果が変わらない限り順番を入れ替えることも可能である。
なお、本実施の形態における検索システムは、コンピュータ装置であって、図27に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
(付記1)
文書更新前の検索インデックスを用いて検索を行うインデックス検索ユニットに対して、検索要求に係る検索を実施させ、該当文書の文書IDの第1のリストを取得する第1取得ステップと、
文書更新後の文書内容を保持する文字列検索ユニットに対して、前記検索要求に係る文字列検索を前記文書更新後の文書内容に対して実施させ、該当文書の文書IDの第2のリストを取得する第2取得ステップと、
前記第1のリストと前記第2のリストと文書更新に係る文書の文書IDの第3のリストとを用いて、前記検索要求に対する検索結果を生成する生成ステップと、
を含み、コンピュータにより実行される検索処理方法。
(付記2)
前記生成ステップが、
前記第1のリストから前記第3のリストに含まれる文書IDを除去し、第4のリストを生成するステップと、
前記第4のリストと前記第2のリストとの和集合を生成するステップと、
を含む付記1記載の検索処理方法。
(付記3)
前記第1取得ステップが、前記検索要求に係る検索語に対してインデックス検索のための正規化処理を実施するステップを含み、
前記第2取得ステップが、前記検索要求に係る検索語に対して文字列検索のための正規化処理を実施するステップを含む
付記1記載の検索処理方法。
(付記4)
検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、
検索時に用いられ且つ更新文書の文書IDを格納する第1の差分文書ID管理部と、
検索時に文字列検索を実施するために前記更新文書のデータを格納する第1のパターンマッチング対象文書格納部と、
を有し、
前記第1の検索インデックスを用いて前記検索要求に係る検索を実施させ、該当文書の文書IDの第1のリストを取得し、
前記検索要求に係る文字列検索を前記第1のパターンマッチング対象文書格納部に対して実施し、該当文書の文書IDの第2のリストを取得し、
前記第1のリストと前記第2のリストと第1の差分文書ID管理部に格納されている文書IDとを用いて、前記検索要求に対する検索結果を生成する
検索システム。
(付記5)
前記検索結果を生成する処理において、
前記第1のリストから前記第1の差分文書ID管理部に格納されている文書IDを除去し、第3のリストを生成し、
前記第2のリストと前記第3のリストとの和集合を生成する、
付記4記載の検索システム。
(付記6)
検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、
更新文書を反映するために用いられる第2の検索インデックスと、
前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第1の更新候補文書格納部と、
前記第2の検索インデックスに対する反映処理に用いられる前記更新文書のデータを格納する第2の更新候補文書格納部と、
検索時に用いられ且つ前記更新文書の文書IDを格納する第1の差分文書ID管理部と、
検索時に文字列検索を実施するために前記更新文書のデータを格納する第1のパターンマッチング対象文書格納部と、
前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書の文書IDを格納する第2の差分文書ID管理部と、
前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第2のパターンマッチング対象文書格納部と、
を有し、
前記第2の検索インデックスに対する前記更新文書の反映処理が完了した場合、
前記反映処理後の前記第2の検索インデックスを、前記第1の検索インデックスとして切り替えて用い、
前記第1の更新候補文書格納部に格納されている前記更新文書のデータを前記第2の更新候補文書格納部に上書き移動させ、
前記第2の差分文書ID管理部に格納されている前記更新文書の文書IDを前記第1の差分文書ID管理部に上書き移動させ、
前記第2のパターンマッチング対象文書格納部に格納されている前記更新文書のデータを前記第1のパターンマッチング対象文書格納部に上書き移動させる
検索システム。
(付記7)
前記第2の検索インデックスに対する前記更新文書の反映処理が開始される前、
前記第1及び第2の更新候補文書格納部に新たな更新要求に係る更新文書のデータを格納し、
前記第1の差分文書ID管理部に前記新たな更新要求に係る更新文書の文書IDを格納し、
前記第1のパターンマッチング対象文書格納部に前記新たな更新要求に係る更新文書のデータを格納する
付記6記載の検索システム。
(付記8)
前記第2の検索インデックスに対する前記更新文書の反映処理が開始された後、
前記第1の更新候補文書格納部をクリアし、
前記第1の更新候補文書格納部に新たな更新要求に係る更新文書のデータを格納し、
前記第1及び第2の差分文書ID管理部に前記新たな更新要求に係る更新文書の文書IDを格納し、
前記第1及び第2のパターンマッチング対象文書格納部に前記新たな更新要求に係る更新文書のデータを格納する
付記7記載の検索システム。
(付記9)
前記第1の検索インデックスを用いて前記検索要求に係る検索を実施させ、該当文書の文書IDの第1のリストを取得し、
前記検索要求に係る文字列検索を前記第1のパターンマッチング対象文書格納部に対して実施し、該当文書の文書IDの第2のリストを取得し、
前記第1のリストと前記第2のリストと第1の差分文書ID管理部に格納されている文書IDとを用いて、前記検索要求に対する検索結果を生成する
付記6乃至8のいずれか1つ記載の検索システム。
(付記10)
前記第1及び第2の更新候補文書格納部に格納される前記更新文書のデータが、検索インデックス向けに正規化されており、
前記第1及び第2のパターンマッチング対象文書格納部に格納される前記更新文書のデータが、文字列検索向けに正規化されている
付記6記載の検索システム。
(付記11)
付記1乃至3のいずれか1つ記載の検索処理方法をコンピュータに実行させるためのプログラム。
(付記12)
検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、
更新文書を反映するために用いられる第2の検索インデックスと、
前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第1の更新候補文書格納部と、
前記第2の検索インデックスに対する反映処理に用いられる前記更新文書のデータを格納する第2の更新候補文書格納部と、
検索時に用いられ且つ前記更新文書の文書IDを格納する第1の差分文書ID管理部と、
検索時に文字列検索を実施するために前記更新文書のデータを格納する第1のパターンマッチング対象文書格納部と、
前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書の文書IDを格納する第2の差分文書ID管理部と、
前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第2のパターンマッチング対象文書格納部と、
を有する検索システムに対して、
前記第2の検索インデックスに対する前記更新文書の反映処理が完了した場合、
前記反映処理後の前記第2の検索インデックスを、前記第1の検索インデックスとして切り替えて用い、
前記第1の更新候補文書格納部に格納されている前記更新文書のデータを前記第2の更新候補文書格納部に上書き移動させ、
前記第2の差分文書ID管理部に格納されている前記更新文書の文書IDを前記第1の差分文書ID管理部に上書き移動させ、
前記第2のパターンマッチング対象文書格納部に格納されている前記更新文書のデータを前記第1のパターンマッチング対象文書格納部に上書き移動させる
処理を実施させるためのプログラム。
本発明の実施の形態におけるシステム概要図である。 検索処理の処理フローを示す図である。 インデックス差分更新開始処理の処理フローを示す図である。 更新時処理の処理フローの第1の部分を示す図である。 インデックス検索ユニットAの初期状態を示す図である。 インデックス検索ユニットBの初期状態を示す図である。 インデックス検索ユニットAの状態を示す図である。 インデックス検索ユニットBの状態を示す図である。 更新時処理の処理フローの第2の部分を示す図である。 文字列検索ユニットAの初期状態を示す図である。 文字列検索ユニットBの初期状態を示す図である。 文字列検索ユニットAの状態を示す図である。 文字列検索ユニットBの状態を示す図である。 インデックス検索ユニットAの状態を示す図である。 インデックス検索ユニットBの状態を示す図である。 インデックス検索ユニットAの状態を示す図である。 インデックス検索ユニットBの状態を示す図である。 文字列検索ユニットAの状態を示す図である。 文字列検索ユニットBの状態を示す図である。 インデックス検索ユニットAの状態を示す図である。 文字列検索ユニットAの状態を示す図である。 文字列検索ユニットBの状態を示す図である。 差分更新終了処理の処理フローを示す図である。 インデックス検索ユニットA及びBの状態を示す図である。 文字列検索ユニットA及びBの状態を示す図である。 正規化処理の処理フローを示す図である。 コンピュータの機能ブロック図である。
符号の説明
1 処理要求受信部
3 正規化処理部
5 インデックス検索コントローラ
7 文字列検索コントローラ
9 パターンマッチング処理部
111,131 インデックス処理部
113,133 更新候補文書格納部
151,171 差分文書ID管理部
153,173 パターンマッチング対象文書格納部

Claims (7)

  1. 検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、
    更新文書を反映するために用いられる第2の検索インデックスと、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第1の更新候補文書格納部と、
    前記第2の検索インデックスに対する反映処理に用いられる前記更新文書のデータを格納する第2の更新候補文書格納部と、
    検索時に用いられ且つ前記更新文書の文書IDを格納する第1の差分文書ID管理部と、
    検索時に文字列検索を実施するために前記更新文書のデータを格納する第1のパターンマッチング対象文書格納部と、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書の文書IDを格納する第2の差分文書ID管理部と、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第2のパターンマッチング対象文書格納部と、
    を有し、
    前記第2の検索インデックスに対する前記更新文書の反映処理が完了した場合、
    前記反映処理後の前記第2の検索インデックスを、前記第1の検索インデックスとして切り替えて用い、
    前記第1の更新候補文書格納部に格納されている前記更新文書のデータを前記第2の更新候補文書格納部に上書き移動させ、
    前記第2の差分文書ID管理部に格納されている前記更新文書の文書IDを前記第1の差分文書ID管理部に上書き移動させ、
    前記第2のパターンマッチング対象文書格納部に格納されている前記更新文書のデータを前記第1のパターンマッチング対象文書格納部に上書き移動させる
    検索システム。
  2. 前記第2の検索インデックスに対する前記更新文書の反映処理が開始される前、
    前記第1及び第2の更新候補文書格納部に新たな更新要求に係る更新文書のデータを格納し、
    前記第1の差分文書ID管理部に前記新たな更新要求に係る更新文書の文書IDを格納し、
    前記第1のパターンマッチング対象文書格納部に前記新たな更新要求に係る更新文書のデータを格納する
    請求項記載の検索システム。
  3. 前記第2の検索インデックスに対する前記更新文書の反映処理が開始された後、
    前記第1の更新候補文書格納部をクリアし、
    前記第1の更新候補文書格納部に新たな更新要求に係る更新文書のデータを格納し、
    前記第1及び第2の差分文書ID管理部に前記新たな更新要求に係る更新文書の文書IDを格納し、
    前記第1及び第2のパターンマッチング対象文書格納部に前記新たな更新要求に係る更新文書のデータを格納する
    請求項2記載の検索システム。
  4. 前記第1の検索インデックスを用いて前記検索要求に係る検索を実施させ、該当文書の文書IDの第1のリストを取得し、
    前記検索要求に係る文字列検索を前記第1のパターンマッチング対象文書格納部に対して実施し、該当文書の文書IDの第2のリストを取得し、
    前記第1のリストと前記第2のリストと第1の差分文書ID管理部に格納されている文書IDとを用いて、前記検索要求に対する検索結果を生成する
    請求項1乃至3のいずれか1つ記載の検索システム。
  5. 前記第1及び第2の更新候補文書格納部に格納される前記更新文書のデータが、検索インデックス向けに正規化されており、
    前記第1及び第2のパターンマッチング対象文書格納部に格納される前記更新文書のデータが、文字列検索向けに正規化されている
    請求項1記載の検索システム。
  6. 検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、
    更新文書を反映するために用いられる第2の検索インデックスと、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第1の更新候補文書格納部と、
    前記第2の検索インデックスに対する反映処理に用いられる前記更新文書のデータを格納する第2の更新候補文書格納部と、
    検索時に用いられ且つ前記更新文書の文書IDを格納する第1の差分文書ID管理部と、
    検索時に文字列検索を実施するために前記更新文書のデータを格納する第1のパターンマッチング対象文書格納部と、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書の文書IDを格納する第2の差分文書ID管理部と、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第2のパターンマッチング対象文書格納部と、
    を有する検索システムに、
    前記第2の検索インデックスに対する前記更新文書の反映処理が完了した場合、
    前記反映処理後の前記第2の検索インデックスを、前記第1の検索インデックスとして切り替えて用い、
    前記第1の更新候補文書格納部に格納されている前記更新文書のデータを前記第2の更新候補文書格納部に上書き移動させ、
    前記第2の差分文書ID管理部に格納されている前記更新文書の文書IDを前記第1の差分文書ID管理部に上書き移動させ、
    前記第2のパターンマッチング対象文書格納部に格納されている前記更新文書のデータを前記第1のパターンマッチング対象文書格納部に上書き移動させる
    処理を実施させるためのプログラム。
  7. 検索要求に応答してインデックス検索を実施するために用いられる第1の検索インデックスと、
    更新文書を反映するために用いられる第2の検索インデックスと、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第1の更新候補文書格納部と、
    前記第2の検索インデックスに対する反映処理に用いられる前記更新文書のデータを格納する第2の更新候補文書格納部と、
    検索時に用いられ且つ前記更新文書の文書IDを格納する第1の差分文書ID管理部と、
    検索時に文字列検索を実施するために前記更新文書のデータを格納する第1のパターンマッチング対象文書格納部と、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書の文書IDを格納する第2の差分文書ID管理部と、
    前記第2の検索インデックスに対する前記更新文書の反映処理を開始してからの更新文書のデータを格納する第2のパターンマッチング対象文書格納部と、
    を有する検索システムにより、
    前記第2の検索インデックスに対する前記更新文書の反映処理が完了した場合、
    前記反映処理後の前記第2の検索インデックスを、前記第1の検索インデックスとして切り替えて用い、
    前記第1の更新候補文書格納部に格納されている前記更新文書のデータを前記第2の更新候補文書格納部に上書き移動させ、
    前記第2の差分文書ID管理部に格納されている前記更新文書の文書IDを前記第1の差分文書ID管理部に上書き移動させ、
    前記第2のパターンマッチング対象文書格納部に格納されている前記更新文書のデータを前記第1のパターンマッチング対象文書格納部に上書き移動させる
    処理が実行される方法。
JP2006285077A 2006-10-19 2006-10-19 検索処理方法及び検索システム Expired - Fee Related JP5437557B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006285077A JP5437557B2 (ja) 2006-10-19 2006-10-19 検索処理方法及び検索システム
US11/735,057 US7680852B2 (en) 2006-10-19 2007-04-13 Search processing method and search system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006285077A JP5437557B2 (ja) 2006-10-19 2006-10-19 検索処理方法及び検索システム

Publications (2)

Publication Number Publication Date
JP2008102765A JP2008102765A (ja) 2008-05-01
JP5437557B2 true JP5437557B2 (ja) 2014-03-12

Family

ID=39319305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006285077A Expired - Fee Related JP5437557B2 (ja) 2006-10-19 2006-10-19 検索処理方法及び検索システム

Country Status (2)

Country Link
US (1) US7680852B2 (ja)
JP (1) JP5437557B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11468128B1 (en) * 2006-10-20 2022-10-11 Richard Paiz Search engine optimizer
US9418154B2 (en) * 2007-10-19 2016-08-16 Oracle International Corporation Push-model based index updating
US9594784B2 (en) 2007-10-19 2017-03-14 Oracle International Corporation Push-model based index deletion
US8682859B2 (en) 2007-10-19 2014-03-25 Oracle International Corporation Transferring records between tables using a change transaction log
US9594794B2 (en) * 2007-10-19 2017-03-14 Oracle International Corporation Restoring records using a change transaction log
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) * 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8825758B2 (en) * 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) * 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US20090259995A1 (en) * 2008-04-15 2009-10-15 Inmon William H Apparatus and Method for Standardizing Textual Elements of an Unstructured Text
US8352870B2 (en) * 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8429753B2 (en) * 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8417666B2 (en) * 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US10915523B1 (en) * 2010-05-12 2021-02-09 Richard Paiz Codex search patterns
US11048765B1 (en) 2008-06-25 2021-06-29 Richard Paiz Search engine optimizer
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US20110173177A1 (en) * 2010-01-11 2011-07-14 Flavio Junqueira Sightful cache: efficient invalidation for search engine caching
JP5370328B2 (ja) * 2010-09-29 2013-12-18 ブラザー工業株式会社 ノード装置、情報通信システム、情報処理方法及び情報処理プログラム
EP2706466A4 (en) * 2011-05-02 2015-06-17 Fujitsu Ltd EXTRACTION PROCESS, INFORMATION PROCESSING, EXTRACTION PROGRAM, INFORMATION PROCESSING, EXTRACTION DEVICE AND INFORMATION PROCESSING DEVICE
US11809506B1 (en) 2013-02-26 2023-11-07 Richard Paiz Multivariant analyzing replicating intelligent ambience evolving system
US11741090B1 (en) 2013-02-26 2023-08-29 Richard Paiz Site rank codex search patterns
US9031933B2 (en) * 2013-04-03 2015-05-12 International Business Machines Corporation Method and apparatus for optimizing the evaluation of semantic web queries
JP5930228B2 (ja) 2014-02-25 2016-06-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、方法及びプログラム
CN103823874A (zh) * 2014-02-27 2014-05-28 北京六间房科技有限公司 特殊文字搜索方法以及系统
US11030262B2 (en) * 2015-08-25 2021-06-08 Verizon Media Inc. Recyclable private memory heaps for dynamic search indexes
JP7354019B2 (ja) * 2020-03-02 2023-10-02 ヤフー株式会社 情報処理装置、情報処理方法、およびプログラム

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0198020A (ja) 1987-10-09 1989-04-17 Nec Corp 索引管理方式
US5685003A (en) * 1992-12-23 1997-11-04 Microsoft Corporation Method and system for automatically indexing data in a document using a fresh index table
JPH08272806A (ja) 1995-04-03 1996-10-18 Nippon Steel Corp データベース検索システム
JP3024544B2 (ja) * 1996-03-27 2000-03-21 松下電器産業株式会社 情報検索装置
TW331612B (en) 1996-03-05 1998-05-11 Soft Future Design Kk Data processing apparatus and register address translation method.
US5920854A (en) * 1996-08-14 1999-07-06 Infoseek Corporation Real-time document collection search engine with phrase indexing
JP3554459B2 (ja) * 1997-02-26 2004-08-18 株式会社日立製作所 テキストデータ登録検索方法
JP3692764B2 (ja) * 1998-02-25 2005-09-07 株式会社日立製作所 構造化文書登録方法、検索方法、およびそれに用いられる可搬型媒体
JP3597370B2 (ja) * 1998-03-10 2004-12-08 富士通株式会社 文書処理装置および記録媒体
US7043472B2 (en) * 2000-06-05 2006-05-09 International Business Machines Corporation File system with access and retrieval of XML documents
JP3578092B2 (ja) * 2001-02-15 2004-10-20 日本電信電話株式会社 文書検索方法及びシステム及び文書検索プログラム及び文書検索プログラムを格納した記憶媒体
US7526425B2 (en) * 2001-08-14 2009-04-28 Evri Inc. Method and system for extending keyword searching to syntactically and semantically annotated data
US7271755B2 (en) * 2002-05-24 2007-09-18 Broadcom Corporation Resistor ladder interpolation for PGA and DAC
US20050005237A1 (en) * 2003-07-03 2005-01-06 Rail Peter D. Method for maintaining a centralized, multidimensional master index of documents from independent repositories
US7337165B2 (en) * 2003-12-29 2008-02-26 International Business Machines Corporation Method and system for processing a text search query in a collection of documents
WO2005124599A2 (en) * 2004-06-12 2005-12-29 Getty Images, Inc. Content search in complex language, such as japanese
US7599914B2 (en) * 2004-07-26 2009-10-06 Google Inc. Phrase-based searching in an information retrieval system
US20060075044A1 (en) * 2004-09-30 2006-04-06 Fox Kevin D System and method for electronic contact list-based search and display
JP2006185019A (ja) * 2004-12-27 2006-07-13 Fuji Xerox Co Ltd 検索システム、および情報配置構成決定方法、並びにコンピュータ・プログラム
JP5296960B2 (ja) * 2005-06-17 2013-09-25 日本電気株式会社 ファイルバージョン管理装置
US9135304B2 (en) * 2005-12-02 2015-09-15 Salesforce.Com, Inc. Methods and systems for optimizing text searches over structured data in a multi-tenant environment
US7917499B2 (en) * 2006-06-30 2011-03-29 Microsoft Corporation Updating adaptive, deferred, incremental indexes
US20080033925A1 (en) * 2006-08-07 2008-02-07 Bea Systems, Inc. Distributed search analysis
US20080082554A1 (en) * 2006-10-03 2008-04-03 Paul Pedersen Systems and methods for providing a dynamic document index
US7882077B2 (en) * 2006-10-17 2011-02-01 Commvault Systems, Inc. Method and system for offline indexing of content and classifying stored data
US20080114738A1 (en) * 2006-11-13 2008-05-15 Gerald Chao System for improving document interlinking via linguistic analysis and searching
US7788253B2 (en) * 2006-12-28 2010-08-31 International Business Machines Corporation Global anchor text processing

Also Published As

Publication number Publication date
JP2008102765A (ja) 2008-05-01
US7680852B2 (en) 2010-03-16
US20080097993A1 (en) 2008-04-24

Similar Documents

Publication Publication Date Title
JP5437557B2 (ja) 検索処理方法及び検索システム
US8301437B2 (en) Tokenization platform
US11853334B2 (en) Systems and methods for generating and using aggregated search indices and non-aggregated value storage
US7620624B2 (en) Systems and methods for indexing content for fast and scalable retrieval
US7849063B2 (en) Systems and methods for indexing content for fast and scalable retrieval
US8527556B2 (en) Systems and methods to update a content store associated with a search index
JP2012533819A (ja) 文書インデックス化およびデータクエリングのための方法およびシステム
JP2010282241A (ja) ファイル管理装置、ファイル管理システム、ファイル管理方法、および、プログラム
US20090234824A1 (en) Browser Use of Directory Listing for Predictive Type-Ahead
JP3565117B2 (ja) 複数異種情報源アクセス方法及びクライアント装置及び複数異種情報源アクセスプログラムを格納した記憶媒体
KR101117171B1 (ko) 검색 서비스를 위해 데이터를 생성하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
JP2009037359A (ja) データ登録検索方法、データ登録検索プログラムおよびデータベースシステム
CN111753045A (zh) 一种基于Elasticsearch的Hive二级全文索引技术方法及系统
JP2009129202A (ja) データ処理装置、データ処理方法、および、プログラム
JP2000029901A (ja) 画像検索装置及び方法
JP4319827B2 (ja) 文書検索プログラム
JP2006106907A (ja) 構造化文書管理システム、索引構築方法及びプログラム
JP4304226B2 (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP2011221662A (ja) 辞書編集装置およびプログラム
JP5483166B2 (ja) 文書検索装置、文書検索方法、及びプログラム
JP2009301511A (ja) 索引情報作成装置、索引情報作成方法及びプログラム
JPH10301940A (ja) 情報処理装置及びその方法
JP2006072628A (ja) 情報抽出装置
KR20020004041A (ko) 인터넷을 통한 파일 검색 서비스 시스템 및 방법
JP2005092824A (ja) 文書検索装置、文書検索方法、文書検索プログラム、および記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131212

R150 Certificate of patent or registration of utility model

Ref document number: 5437557

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees