(58)【調査した分野】(Int.Cl.,DB名)
前記検索条件を、前記複数の条件の各条件についての当該各条件を満たす文書を含むという前記複数の文書群に対する条件と、前記複数の条件のうちの少なくとも1つの条件を満たすという前記複数の文書に対する条件と、当該複数の文書群に対する条件と当該複数の文書に対する条件とを結合する前記少なくとも1つの論理演算子に応じた少なくとも2つの論理演算子とを含むように変更する変更部を更に含み、
前記文書群特定部は、前記複数の文書群に対する条件に基づいて、前記複数の条件の各条件について当該各条件を満たす文書を含む文書群を特定し、
前記文書特定部は、前記複数の文書に対する条件に基づいて、前記複数の条件のうちの少なくとも1つの条件を満たす文書を特定し、
前記決定部は、前記少なくとも2つの論理演算子に基づいて前記取捨選択を行うことにより、前記検索条件に基づく検索結果の文書を決定する、請求項1の装置。
前記複数の条件の各条件と前記複数の文書のうちの当該各条件を満たす文書に割り当てられた識別子とを対応付けた索引であって、前記複数の文書群の各文書群に含まれる文書に連続する識別子が割り当てられた索引を記憶する記憶部を更に含み、
前記文書群特定部は、前記索引を用いて、前記複数の条件の各条件について当該各条件を満たす文書を含む文書群を特定し、
前記文書特定部は、前記索引を用いて、前記複数の条件のうちの少なくとも1つの条件を満たす文書を特定する、請求項1又は請求項2の装置。
前記生成部は、前記検索条件に基づく検索結果の文書を示す情報として、当該検索結果の文書を含む文書群又は当該文書群に含まれる他の文書を示す情報を生成する、請求項1乃至請求項3の何れかの装置。
【背景技術】
【0002】
互いに関連する文書を含む複数の文書群に分けられる複数の文書から、文書群として検索条件を満たす文書を検索したいという要求がある。例えば、「A AND B」という検索条件に基づく検索を行う場合に、A及びBの両方の条件を満たす文書を含む文書群だけでなく、A及びBの一方の条件をそれぞれが満たす文書を含む文書群も検索したい、という要求である。
【0003】
ここで、互いに関連する文書を含む文書群を登録する技術は、公報記載の技術として知られている(例えば、特許文献1参照)。
【0004】
特許文献1は、文書毎に付与する文書情報を文書情報ファイルに登録する文書情報登録手段と、文書の一覧の順序の位置を示す文書位置をデータベースの文書位置情報ファイルに登録する文書位置登録手段と、文書位置に含まれる文書表示順を数値として、その数値をソートし、あるいは数値の同位桁を入れ替えて、文書の並び順を変えて所要の文書一覧を作成する文書一覧表示手段とを有する文書管理装置を開示する。
【0005】
また、互いに関連する文書を含む文書群を対象として検索を行う技術も、公報記載の技術として知られている(例えば、特許文献2〜8参照)。
【0006】
特許文献2は、単語の集合に対して、文書集合内での各単語の出現位置を単語インデックとして記憶し、また、単語に付加されたタグの集合に対して、各タグの右と左に登場した単語の集合を記憶すると共に、各タグとその右に登場する語の組み合わせ、あるいは、各タグとその左に登場する語の組み合わせをキーとして文書集合内の各タグの登場位置をタグLRインデックスとして記憶し、タグの検索時にクエリのフレーズに含まれる隣接した単語とタグに対し、タグとその右あるいは左の単語をキーとしてインデックスを参照する文書の管理・検索方法を開示する。
【0007】
特許文献3は、XML文書群の各文書に対して文書IDを付与し、該文書の全ノードにタグを跨ぐことを許す範囲ラベルを付与し、範囲ラベル記憶手段に格納し、XML文書のテキストから単語を切り出して、該単語の出現位置と文書IDの組からなる出現位置情報を転置表記憶手段の転置表に格納する格納過程と、入力された検索クエリから、検索パスと検索キーワードを抽出し、範囲ラベル記憶手段から検索パスに該当する文書ID及び範囲ラベルを取得し、転置表記憶手段から検索キーワードに合致する出現位置情報を取得し、文書IDと範囲ラベルから、検索キーワードの出現位置情報が存在するノード情報を選択する検索過程とを行う全文検索方法を開示する。
【0008】
特許文献4は、構造化文書を記憶する構造化文書記憶部と、構造要素の構造IDと、要素の特徴を表す第1の特徴情報とを記憶する構造テンプレート記憶部と、索引を記憶する転置ファイル記憶部と、検索条件を解析し、構造IDの候補と検索キーとを対応づけたノードを含む階層構造の検索条件を求めるクエリ解析部と、各ノードの構造IDの候補に対応する第1の特徴情報を取得し、検索キーの特徴を表す第2の特徴情報を算出し、構造IDの候補から第2の特徴情報が第1の特徴情報に適合しない候補を削除する制約付加部と、階層構造の検索条件を満たす構造IDに対応する索引を転置ファイル記憶部から検索し、検索した索引に対応する構造化文書を構造化文書記憶部から検索するクエリ実行部と、を備えた構造化文書検索装置を開示する。
【0009】
特許文献5は、複数文書情報を記憶する文書記憶部と、複数文書において横断的利用関係にある文書部品を相互に対応付けて記憶する関係記憶部と、文書部品に関連するキーワードを記憶するインデックス記憶部と、キーワードに対応する文書部品を検索するキーワード検索部と、検索された文書部品と対応付けられている文書部品を検索する関係文書部品検索部と、文書部品の情報を関係記憶部から取得する文書部品取得部と、文書部品取得部にて取得した文書部品の情報を文書編集端末へ送信する送信部と、を備える文書部品管理装置を開示する。
【0010】
特許文献6は、情報源から情報を取得する情報取得手段と、情報源から取得された情報を記憶する情報記憶手段と、情報源の識別情報を取得する情報源取得手段と、文書に情報を追加する際に情報源の識別情報を付加して埋め込む情報源埋込手段と、情報源埋込手段によって埋め込まれた識別情報を取り出す情報源取出手段と、情報源の識別情報を基に文書を系統化した系統化情報を生成する系統化手段とを備え、系統化情報を基に文書を管理する文書管理装置を開示する。
【0011】
特許文献7は、インデックス更新部は、情報収集部によって公開情報ソースから収集された文書情報の示す文書の集合に含まれる文書間の関連性を解析し、当該文書間の関連性を表す関連文書情報をリンクDBに格納し、知識検索部は、ユーザからの知識検索要求に基づいてインデックスDBを検索し、この際、知識検索部はリンクDBに格納された関連文書情報を利用して、ヒット文書ごとの検索スコアだけでなく、当該ヒット文書と他の文書との関連性が検索結果順位に反映された検索結果を取得し、ユーザインタフェースは知識検索部によって取得された検索結果をユーザに提示する知識検索システムを開示する。
【0012】
特許文献8は、複数の文書情報を記憶する文書データベースと、複数の文書情報のうち階層関係により関連する文書情報が属するグループが登録された関連グループ情報を記憶する関連グループデータベースと、文書データベースに記憶された文書情報の中から文書情報の選択を受付ける操作部と、選択された文書情報が属するグループを関連グループ情報から検索する関連グループデータベース制御部と、選択された文書情報と検索されたグループに属する選択された文書情報以外の他の文書情報との一覧を示す一覧情報を一画面に表示する関連グループデータベース制御部とを備えた文書管理装置を開示する。
【発明の概要】
【発明が解決しようとする課題】
【0014】
このように、互いに関連する文書を含む文書群を登録したり、互いに関連する文書を含む文書群を対象として検索を行ったりすることは、既に知られていた。
【0015】
しかしながら、特許文献1〜8の発明は、互いに関連する文書を含む複数の文書群に分けられる複数の文書から、文書群として検索条件を満たす文書を検索したいという要求に応えられるものではなかった。
【0016】
本発明の目的は、互いに関連する文書を含む複数の文書群に分けられる複数の文書から、文書群として検索条件を満たす文書を検索することにある。
【課題を解決するための手段】
【0017】
かかる目的のもと、本発明は、互いに関連する文書を各々が含む複数の文書群に分けられる複数の文書から文書を検索する装置であって、複数の条件と複数の条件を結合する少なくとも1つの論理演算子とを含む検索条件を取得する取得部と、複数の条件の各条件について、複数の文書群の中で、各条件を満たす文書を含む文書群を特定する文書群特定部と、複数の文書の中で、複数の条件のうちの少なくとも1つの条件を満たす文書を特定する文書特定部と、複数の条件の各条件について特定された文書群に含まれる文書と、特定された複数の条件のうちの少なくとも1つの条件を満たす文書とについて、少なくとも1つの論理演算子に応じた取捨選択を行うことにより、検索条件に基づく検索結果の文書を決定する決定部と、検索条件に基づく検索結果の文書を示す情報を生成する生成部とを含む、装置を提供する。
【0018】
ここで、この装置は、検索条件を、複数の条件の各条件についての各条件を満たす文書を含むという複数の文書群に対する条件と、複数の条件のうちの少なくとも1つの条件を満たすという複数の文書に対する条件と、複数の文書群に対する条件と複数の文書に対する条件とを結合する少なくとも1つの論理演算子に応じた少なくとも2つの論理演算子とを含むように変更する変更部を更に含み、文書群特定部は、複数の文書群に対する条件に基づいて、複数の条件の各条件について各条件を満たす文書を含む文書群を特定し、文書特定部は、複数の文書に対する条件に基づいて、複数の条件のうちの少なくとも1つの条件を満たす文書を特定し、決定部は、少なくとも2つの論理演算子に基づいて取捨選択を行うことにより、検索条件に基づく検索結果の文書を決定する、ものであってもよい。
【0019】
また、この装置は、複数の条件の各条件と複数の文書のうちの各条件を満たす文書に割り当てられた識別子とを対応付けた索引であって、複数の文書群の各文書群に含まれる文書に連続する識別子が割り当てられた索引を記憶する記憶部を更に含み、文書群特定部は、索引を用いて、複数の条件の各条件について各条件を満たす文書を含む文書群を特定し、文書特定部は、索引を用いて、複数の条件のうちの少なくとも1つの条件を満たす文書を特定する、ものであってよい。
【0020】
更に、生成部は、検索条件に基づく検索結果の文書を示す情報として、検索結果の文書を含む文書群又は文書群に含まれる他の文書を示す情報を生成する、ものであってよい。
【0021】
また、本発明は、互いに関連する文書を各々が含む複数の文書群に分けられる複数の文書から文書を検索する装置であって、第1の条件と第2の条件とをAND論理演算子で結合してなる検索条件を取得する取得部と、複数の文書群の中で、第1の条件を満たす文書を含む第1の文書群と、第2の条件を満たす文書を含む第2の文書群とを特定する文書群特定部と、複数の文書の中で、第1の条件及び第2の条件の少なくとも何れか一方の条件を満たす文書を特定する文書特定部と、第1の文書群及び第2の文書群の両方に含まれ、かつ、文書特定部により特定された文書を、検索条件に基づく検索結果の文書に決定する決定部と、検索条件に基づく検索結果の文書を示す情報を生成する生成部とを含む、装置も提供する。
【0022】
また、本発明は、互いに関連する文書を各々が含む複数の文書群に分けられる複数の文書から文書を検索する装置であって、第1の条件と、第2の条件とを、第1の条件に後続し第2の条件に先行するNOT論理演算子で結合してなる検索条件を取得する取得部と、複数の文書群の中で、第1の条件を満たす文書を含む第1の文書群と、第2の条件を満たす文書を含む第2の文書群とを特定する文書群特定部と、複数の文書の中で、第1の条件を満たす文書を特定する文書特定部と、第1の文書群に含まれるが第2の文書群に含まれず、かつ、文書特定部により特定された文書を、検索条件に基づく検索結果の文書に決定する決定部と、検索条件に基づく検索結果の文書を示す情報を生成する生成部とを含む、装置も提供する。
【0023】
更に、本発明は、互いに関連する文書を各々が含む複数の文書群に分けられる複数の文書から文書を検索する方法であって、複数の条件と複数の条件を結合する少なくとも1つの論理演算子とを含む検索条件を取得するステップと、複数の条件の各条件について、複数の文書群の中で、各条件を満たす文書を含む文書群を特定するステップと、複数の文書の中で、複数の条件のうちの少なくとも1つの条件を満たす文書を特定するステップと、複数の条件の各条件について特定された文書群に含まれる文書と、特定された複数の条件のうちの少なくとも1つの条件を満たす文書とについて、少なくとも1つの論理演算子に応じた取捨選択を行うことにより、検索条件に基づく検索結果の文書を決定するステップと、検索条件に基づく検索結果の文書を示す情報を生成するステップとを含む、方法も提供する。
【0024】
更にまた、本発明は、互いに関連する文書を各々が含む複数の文書群に分けられる複数の文書から文書を検索する装置として、コンピュータを機能させるプログラムであって、コンピュータを、複数の条件と複数の条件を結合する少なくとも1つの論理演算子とを含む検索条件を取得する取得部と、複数の条件の各条件について、複数の文書群の中で、各条件を満たす文書を含む文書群を特定する文書群特定部と、複数の文書の中で、複数の条件のうちの少なくとも1つの条件を満たす文書を特定する文書特定部と、複数の条件の各条件について特定された文書群に含まれる文書と、特定された複数の条件のうちの少なくとも1つの条件を満たす文書とについて、少なくとも1つの論理演算子に応じた取捨選択を行うことにより、検索条件に基づく検索結果の文書を決定する決定部と、検索条件に基づく検索結果の文書を示す情報を生成する生成部として機能させる、プログラムも提供する。
【発明の効果】
【0025】
本発明によれば、互いに関連する文書を含む複数の文書群に分けられる複数の文書から、文書群として検索条件を満たす文書を検索することができる。
【発明を実施するための形態】
【0027】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。本実施の形態では、互いに関連する文書を含む文書群に分けられる複数の文書から、文書群として検索条件を満たす文書を検索する。ここで、「互いに関連する文書」とは、何らかの関係が認められる文書であり、この関係は、主従が存在する関係であっても、主従が存在しない対等な関係であってもよい。以下では、「互いに関連する文書」として、親子関係にある文書を例にとって説明する。例えば、電子メールの本文を親文書と考え、電子メールの添付ファイルを子文書と考えると、これらは親子関係にある文書と言える。同様に、リンク元のウェブページを親文書と考え、リンク先のウェブページを子文書と考えると、これらも親子関係にある文書と言える。また、「検索条件」としては、文書に出現する語句に関する条件、文書のサイズに関する条件等、種々の条件が考えられるが、以下では、文書に出現する語句に関する条件、つまり、検索対象の語句が文書に出現するという条件を例にとって説明する。
【0028】
[本実施の形態の概略動作]
本実施の形態では、まず、文書を検索するために用いる索引を作成する。
図1は、本実施の形態で作成する索引について模式的に示した図である。
【0029】
本実施の形態では、ある語句が出現する文書を高速に検索するために転置索引を用いる。転置索引は、複数の語句のそれぞれに対して、その語句が出現する文書に割り当てられた識別子の一例としての文書番号を保持する索引である。この転置索引を作成する際に、親子関係にある文書には連続した文書番号を割り当てる。図では、文書を文書番号の順に配置しているので、親子関係にある文書は連続して配置されている。即ち、親文書P1及び子文書C1−1,C1−2,C1−3には連続した文書番号が割り当てられ、親文書P3及び子文書C3−1,C3−2には連続した文書番号が割り当てられている。転置索引では、文書番号を小さい順に並べて圧縮しているので、親子関係にある文書に連続した文書番号を割り当てた場合、親子関係にある文書に離散的な文書番号を割り当てた場合に比べて、検索を効率良く行うことができる。
【0030】
また、本実施の形態では、転置索引における各文書番号に対して、親子関係が分かるように付加情報を記録しておく。ここで、付加情報は、親文書が幾つの子文書を持っているかを示す子文書数の情報を含む。図では、子文書数の情報として、親文書P1が3つの子文書を持っていることを示す情報と、親文書P2が子文書を持っていないことを示す情報と、親文書P3が2つの子文書を持っていることを示す情報とが記録されている。また、付加情報は、子文書から数えてその親文書が幾つ目の文書の位置に配置されているかを示す親文書位置の情報も含む。親文書位置の情報は、子文書から文書番号が小さい方へ遡った位置を示すので、負の数になっている。図では、親文書位置の情報として、子文書C1−1,C1−2,C1−3から数えて親文書P1がそれぞれ1つ目、2つ目、3つ目の文書の位置に配置されていることを示す情報と、子文書C3−1,C3−2から数えて親文書P3からそれぞれ1つ目、2つ目の文書の位置に配置されていることを示す情報とが記録されている。
【0031】
その際、親子関係が階層構造を有していれば、その階層構造を示す情報を記録して処理に用いることも可能である。例えば、電子メールの本文が親文書であり、電子メールの添付ファイルが子文書である場合において、添付ファイルが複数の非圧縮ファイルをまとめて圧縮した圧縮ファイル(ZIPファイル等)だとすると、圧縮ファイルを子文書と考え、複数の非圧縮ファイルを孫文書と考えることができる。
【0032】
尚、この索引は、親子関係にある文書に連続した文書番号を割り当てる点以外は従来の索引と変わらないので、既存のプログラムを用いて索引にアクセスすることができる。
【0033】
次に、本実施の形態では、索引を走査することにより文書を検索する。
図2は、本実施の形態における索引の走査について模式的に示した図である。
【0034】
図では、まず、各文書に語句A,B,C,Dの何れが出現するかが示されている。即ち、文書P1には語句Aが出現し、文書C1−1には語句Bが出現し、文書C1−2には語句Cが出現し、文書C1−3には語句Dが出現している。また、文書P2には語句Aが出現し、文書P3には語句Bが出現し、文書C3−1には語句Cが出現し、文書C3−2には語句Dが出現している。このような状態で、例えば、語句Bが出現する文書を検索する要求があれば、従来の方法に従って、文書C1−1及び文書P3が検索結果となる。
【0035】
これに対し、ブーリアン検索が要求された場合を考える。ブーリアン検索とは、検索結果を絞り込むために、検索対象の語句を論理演算子で結合してなる検索クエリーによって行われる検索である。本実施の形態では、このような検索を行う場合に、親子関係にある文書を含む文書群(以下、「親子文書群」という)として検索対象の語句が出現するという条件を満たすかどうかの評価を行う。つまり、同一の親子文書群に属する文書については、それらに跨る評価を行う。そこで、このような同一の親子文書群に属する文書に跨る評価が必要な検索が要求された場合には、処理を分岐させ、検索クエリーを加工して検索を行う。
【0036】
ここで、同一の親子文書群に属する文書に跨る評価が必要な検索には、AND検索又はNOT検索がある。例えば、検索クエリーが「A AND B」であるとすると、この検索クエリーは、「<A> AND <B> AND (A OR B)」に変更される。
【0037】
この変更後の検索クエリーにおいて、「<A>」は、親子文書群に含まれる少なくとも1つの文書で語句Aが発見された場合に親子文書群に含まれる全ての文書がヒットしたかのように振舞うコンポーネントを示す。つまり、語句Aが出現する文書を含む親子文書群に含まれるという条件を示す。索引では親子関係にある文書を連続して配置しているため、「<A>」による索引の走査は方向が単調であり効率的に行われる。図では、文書P1で語句Aが発見されたので、文書P1を含む親子文書群に含まれる文書P1,C1−1,C1−2,C1−3がヒットしたことが丸印で示されており、文書P2で語句Aが発見されたので、文書P2を含む親子文書群に含まれる唯一の文書P2がヒットしたことが丸印で示されている。
【0038】
また、「<B>」は、語句Bに関する同様の条件を示す。図では、文書C1−1で語句Bが発見されたので、文書C1−1を含む親子文書群に含まれる文書P1,C1−1,C1−2,C1−3がヒットしたことが丸印で示されており、文書P3で語句Bが発見されたので、文書P3を含む親子文書群に含まれる文書P3,C3−1,C3−2がヒットしたことが丸印で示されている。
【0039】
更に、「A OR B」は、語句A又は語句Bが出現するという条件である。図では、文書P1で語句Aが発見され、文書C1−1で語句Bが発見され、文書P2で語句Aが発見され、文書P3で語句Bが発見されたので、これらの文書がヒットしたことが丸印で示されている。
【0040】
そして、検索クエリーはこれらの条件をANDで結合したものなので、「<A>」による索引の走査でヒットした文書と、「<B>」による索引の走査でヒットした文書と、「A OR B」による索引の走査でヒットした文書との共通部分を検索結果としている。図では、文書P1及び文書C1−1が検索結果であることが丸印で示されている。
【0041】
尚、検索クエリーが「A NOT B」であるとすると、この検索クエリーは、「<A> NOT <B> AND A」に変更される。この場合、検索クエリーが「A AND B」である場合と同様、<A>による索引の走査では、文書P1,C1−1,C1−2,C1−3,P2がヒットし、<B>による索引の走査では、文書P1,C1−1,C1−2,C1−3,P3,C3−1,C3−2がヒットする。但し、3つ目の条件は、検索クエリーが「A AND B」である場合と異なって「A」となるので、この条件による索引の走査では、文書P1,P2のみがヒットする。そして、検索クエリーは<A>と<B>とをNOTで結合し、その結果と「A」とをANDで結合したものなので、「<A>」による索引の走査でヒットした文書から、「<B>」による索引の走査でヒットした文書を除外した後の文書と、「A」による索引の走査でヒットした文書との共通部分である文書P2が検索結果となる。
【0042】
次いで、本実施の形態では、検索結果を返す際に、親子関係をチェックし、検索結果が子文書であれば、検索結果を補正する。
図3は、本実施の形態で検索結果を返す際の処理について模式的に示した図である。
【0043】
図示するように、本実施の形態では、親子関係の情報を利用し、子文書の情報(文書名等)を親文書の情報(文書名等)にマップして返す。具体的には、ヒットした子文書について、転置索引に付加された親文書位置の情報を参照して、その親文書を特定し、親文書の情報を結果として返す。その際、ヒットした子文書の情報を親文書の情報に付加してもよい。或いは、転置索引に付加された子文書数の情報を参照して、その親文書の子文書を特定し、ヒットしていない子文書も含めて全ての子文書の情報をその親文書の情報に付加してもよい。そして、検索結果の情報を参照して、検索対象の語句がどの文書に出現したかを提示するようにしてもよい。図では、親文書P1及び子文書C1−1が検索結果となっている。そこで、最終的に出力される検索結果(以下、「最終結果」という)では、親文書P1にその子文書C1−1,C1−2,C1−3を付加し、ヒットした文書P1,C1−1を太枠で囲んで示している。
【0044】
本実施の形態では、検索結果を返す際にこのような処理を行うことにより、検索条件に寄与した親文書及び子文書の両方を評価結果として返せるので、柔軟に親子関係を反映した検索結果を返すことができる。また、これにより、検索結果の数としては、ヒットした親子文書群の数を返すことになる。例えば、電子メールに対して索引を作成した場合、ヒット数は、ヒットした電子メールの数となる。更に、ヒットした子文書の情報を親文書の情報に付加することとすれば、何番目の子文書がヒットしたかの情報等を得ることもできる。
【0045】
[本実施の形態の他の実装例]
本実施の形態では、索引を走査する際に検索クエリーを加工しないようにすることにより、親子関係を考慮しない検索が可能となる。例えばAND検索を各文書内でのみ評価できるようになる。また、検索結果を処理する際に補正を行わないようにすることにより、親子関係を考慮せずに検索結果を評価し表示することも可能となる。これは、検索条件の評価は親子関係を考慮して行いたいが、検索結果の表示は文書ごとに行いたい、といった要求に応えるものである。更に、索引を走査する際の検索クエリーの加工及び検索結果を処理する際の補正の何れも行わなければ、検索条件の評価及び検索結果の表示共に親子関係を考慮せずに行えるようになる。そして、本実施の形態は、このように種々の検索を行う場合でも、
図1に示した索引を予め作成しておくことで、検索ごとに索引を再作成することを不要とするものである。
【0046】
尚、このような種々の検索の何れを行うかは、ユーザが指定してもよい。上述した例では、ブーリアン検索が要求された場合に、検索クエリーを加工して検索結果を補正することとしたが、以下では、同一の親子文書群に属する文書に跨る評価が必要な検索としてユーザが指定した検索が要求された場合に、検索クエリーを加工して検索結果を補正し、それ以外の場合には検索結果の補正のみを行うものとする。
【0047】
[本実施の形態における文書検索装置の機能構成]
図4は、本実施の形態における文書検索装置10の機能構成例を示したブロック図である。図示するように、文書検索装置10は、索引情報記憶部11と、検索クエリー受付部12と、検索クエリー判定部13と、検索クエリー変換部14とを備える。また、第1検索処理部15と、第2検索処理部16と、検索結果生成部17と、検索結果処理部18とを備える。
【0048】
索引情報記憶部11は、文書を検索するために用いる索引情報を記憶する。ここで、索引情報は、語句とその語句が出現する文書の文書番号とを対応付けた転置索引を含み、上述したように、親子文書群に含まれる文書には連続した文書番号が割り当てられている。また、索引情報は、
図1に示したように、転置索引に付加された付加情報を含み、この付加情報は、親文書が幾つの子文書を持っているかを示す子文書数の情報と、子文書から数えてその親文書が幾つ目の文書の位置に配置されているかを示す親文書位置の情報とを含む。本実施の形態では、索引を記憶する記憶部の一例として、索引情報記憶部11を設けている。
【0049】
検索クエリー受付部12は、文書を検索するための検索条件を表す文字列である検索クエリーをユーザがキーボード/マウス90i(
図7参照)等を用いて入力すると、この検索クエリーを受け付ける。本実施の形態では、検索条件を取得する取得部の一例として、検索クエリー受付部12を設けている。
【0050】
検索クエリー判定部13は、検索クエリー受付部12が受け付けた検索クエリーが同一の親子文書群に属する文書に跨る評価を必要とする検索クエリーであるかどうかを判定する。ここで、この判定は、上述したように、受け付けた検索クエリーが、同一の親子文書群に属する文書に跨る評価を必要とする検索クエリーとしてユーザが指定した検索クエリーであるかどうかに基づいて行うとよい。そして、同一の親子文書群に属する文書に跨る評価を必要としない検索クエリーであると判定すれば、検索クエリーに含まれる条件を第1検索処理部15に受け渡し、同一の親子文書群に属する文書に跨る評価を必要とする検索クエリーであると判定すれば、検索クエリーを検索クエリー変換部14に受け渡す。また、検索クエリー判定部13は、第1検索処理部15から検索で見つかった文書の文書番号が返されると、これを検索結果として検索結果処理部18に受け渡す。
【0051】
検索クエリー変換部14は、検索クエリー判定部13から受け渡された検索クエリーを、親子文書群として満たすかどうかが評価される条件と、個々の文書として満たすかどうかが評価される条件と、これらの条件を結合する論理演算子とからなる検索クエリーに変換する。そして、後者の条件を設定して第1検索処理部15を呼び出し、前者の条件で指定された検索対象の語句を設定して第2検索処理部16を呼び出す。この場合、後者の条件として複数の条件があれば、条件ごとに第1検索処理部15を呼び出せばよいし、前者の条件で指定された検索対象の語句として複数の語句があれば、語句ごとに第2検索処理部16を呼び出せばよい。また、検索クエリー変換部14は、第1検索処理部15及び第2検索処理部16から検索で見つかった文書の文書番号が返されると、これらを検索結果生成部17に受け渡す。本実施の形態では、検索条件を変更する変更部の一例として、検索クエリー変換部14を設けている。
【0052】
第1検索処理部15は、個々の文書として満たすかどうかが評価される条件を検索クエリー判定部13又は検索クエリー変換部14から受け取ると、索引情報記憶部11に記憶された転置索引を用いて、この条件を満たす文書を検索する。そして、検索クエリー判定部13及び検索クエリー変換部14のうち呼び出し元に、検索で見つかった文書の文書番号を返す。本実施の形態では、文書を特定する文書特定部の一例として、第1検索処理部15を設けている。
【0053】
第2検索処理部16は、親子文書群として満たすかどうかが評価される条件で指定された語句を検索クエリー変換部14から受け取ると、索引情報記憶部11に記憶された転置索引を用いて、この語句が出現する文書を検索する。また、索引情報記憶部11に記憶された親文書位置の情報を用いて、その文書を含む親子文書群を特定し、索引情報記憶部11に記憶された子文書数の情報を用いて、その親子文書群に含まれる文書を特定する。そして、検索クエリー変換部14に、検索で見つかった文書の文書番号を返す。本実施の形態では、文書群を特定する文書群特定部の一例として、第2検索処理部16を設けている。
【0054】
検索結果生成部17は、第1検索処理部15による検索で見つかった文書の文書番号と、第2検索処理部16による検索で見つかった文書の文書番号を検索クエリー変換部14から受け取り、これらの文書番号に基づいて検索結果を生成する。具体的には、第1検索処理部15による検索で見つかった文書と、第2検索処理部16による検索で見つかった文書と、変換後の検索クエリーに含まれる論理演算子とに基づいて、検索結果の文書を特定する。本実施の形態では、検索条件に基づく検索結果の文書を決定する決定部の一例として、検索結果生成部17を設けている。
【0055】
検索結果処理部18は、検索クエリー判定部13又は検索結果生成部17から検索結果が受け渡された場合に、この検索結果に対して、表示機構90d(
図7参照)に表示するための処理を行うことにより、最終結果を生成する。ここで、最終結果としては、検索結果の文書の情報に対して親子関係の情報を付加したものを生成する。本実施の形態では、検索結果の文書を示す情報を生成する生成部の一例として、検索結果処理部18を設けている。
【0056】
[本実施の形態における文書検索装置の動作]
図5は、本実施の形態における文書検索装置10の動作例を示したフローチャートである。ユーザがキーボード/マウス90i(
図7参照)等を用いて検索クエリーを入力することにより、この動作は開始する。その際、ユーザは検索クエリー「A AND B」を入力するものとして説明する。
【0057】
動作が開始すると、まず、検索クエリー受付部12は、ユーザが入力した検索クエリー「A AND B」を受け付ける(ステップ101)。この検索クエリーは検索クエリー受付部12から検索クエリー判定部13へと渡され、検索クエリー判定部13は、この検索クエリーが同一の親子文書群に属する文書に跨る評価を必要とするものであるかどうかを判定する(ステップ102)。
【0058】
その結果、検索クエリーが同一の親子文書群に属する文書に跨る評価を必要としないものであると判定すれば、検索クエリー判定部13は、この検索クエリーに含まれる条件「A AND B」を第1検索処理部15へと渡し、第1検索処理部15は、索引情報記憶部11に記憶された転置索引を参照し、この条件を満たす文書を検索する(ステップ103)。そして、検索結果は第1検索処理部15から検索クエリー判定部13へ返され、更に検索結果処理部18へと渡され、検索結果処理部18はこの検索結果に対して表示機構90dに表示するための処理を行う(ステップ111)。
【0059】
一方、検索クエリーが同一の親子文書群に属する文書に跨る評価を必要とするものであると判定すれば、検索クエリー判定部13は、検索クエリーを検索クエリー変換部14へと渡し、検索クエリー変換部14は、検索クエリー「A AND B」を、検索クエリー「<A> AND <B> AND (A OR B)」に変換する(ステップ104)。
【0060】
これにより、検索クエリー変換部14は、語句Aを設定し(ステップ105)、第2検索処理部16による第2検索処理を呼び出す(ステップ106)。すると、第2検索処理部16で語句Aが出現する文書の検索が行われ、この検索でヒットした文書の文書番号は第2検索処理部16から検索クエリー変換部14へ返される。また、検索クエリー変換部14は、語句Bを設定し(ステップ107)、第2検索処理部16による第2検索処理を呼び出す(ステップ108)。すると、第2検索処理部16で語句Bが出現する文書の検索が行われ、この検索でヒットした文書の文書番号は第2検索処理部16から検索クエリー変換部14へ返される。尚、語句A又は語句Bが設定されて呼び出された第2検索処理の動作については後で詳しく述べる。
【0061】
これに対し、条件「A OR B」は検索クエリー変換部14から第1検索処理部15へと渡され、第1検索処理部15は、索引情報記憶部11に記憶された転置索引を参照し、この条件を満たす文書を検索する(ステップ109)。そして、第1検索処理部15による検索でヒットした文書の文書番号は第1検索処理部15から検索クエリー変換部14へ返される。
【0062】
その後、ステップ106の第2検索処理でヒットした文書の文書番号と、ステップ108の第2検索処理でヒットした文書の文書番号と、ステップ109の第1検索処理でヒットした文書の文書番号とは、検索クエリー変換部14から検索結果生成部17へと渡され、検索結果生成部17は、これらの文書番号を持つ文書に共通する文書を論理演算によって求め、これを検索結果とする(ステップ110)。そして、検索結果は検索結果生成部17から検索結果処理部18へと渡され、検索結果処理部18はこの検索結果に対して表示機構90dに表示するための処理を行う(ステップ111)。
【0063】
[本実施の形態における第2検索処理の動作]
図6は、
図5のステップ106及びステップ108で呼び出される第2検索処理部16による第2検索処理の動作例を示したフローチャートである。尚、ここでは、
図5のステップ105で語句Aが設定され、ステップ106で呼び出されたときの動作について説明する。
【0064】
動作が開始すると、第2検索処理部16は、まず、索引情報記憶部11に記憶された転置索引を参照して、語句Aが出現する文書の文書番号からなる文書番号群を取得する(ステップ151)。次に、第2検索処理部16は、同じ親子文書群に含まれる複数の文書に語句Aが出現した場合に2つ目以降の文書を除外するために用いる変数Mに0を代入する(ステップ152)。そして、文書番号群から次の文書番号Iを取得し(ステップ153)、文書番号Iの取得が成功したかどうかを判定する(ステップ154)。
【0065】
その結果、文書番号Iの取得が成功したと判定すれば、第2検索処理部16は、文書番号Iが変数M以下であるかどうかを判定する(ステップ155)。ある親子文書群に含まれる1つの文書に語句Aが出現することが分かると、後述するステップ158でその親子文書群に含まれる最後の文書の文書番号が変数Mに代入されるので、文書番号Iが同じ親子文書群に含まれ語句Aが出現する複数の文書のうちの2つ目以降の文書の文書番号でないかをチェックしている。ここで、文書番号Iが変数M以下であると判定すれば、つまり、文書番号Iが同じ親子文書群に含まれ語句Aが出現する複数の文書のうちの2つ目以降の文書の文書番号であると判定すれば、この親子文書群についてのヒットした文書の文書番号を記録する処理は終了するので、第2検索処理部16は、文書番号群から次の文書番号Iを取得する(ステップ153)。
【0066】
また、文書番号Iが変数M以下でないと判定すれば、つまり、文書番号Iが同じ親子文書群に含まれ語句Aが出現する複数の文書のうちの2つ目以降の文書の文書番号ではないと判定すれば、第2検索処理部16は、文書番号Iが親文書の文書番号であるかどうかを判定する(ステップ156)。ここで、文書番号Iが親文書の文書番号であると判定すれば、第2検索処理部16は、索引情報記憶部11に記憶された子文書数の情報を参照して子文書数Nを取得し、変数Mを(I+N)に設定する(ステップ158)。また、文書番号Iが親文書の文書番号でない、つまり、子文書の文書番号であると判定すれば、第2検索処理部16は、索引情報記憶部11に記憶された親文書位置の情報を参照して親文書の文書番号を算出し、文書番号Iをその親文書の文書番号に変更し(ステップ157)、索引情報記憶部11に記憶された子文書数の情報を参照して子文書数Nを取得し、変数Mを(I+N)に設定する(ステップ158)。
【0067】
その後、第2検索処理部16は、その親文書を含む親子文書群に含まれる文書の文書番号を、ヒットした文書の文書番号として記録する処理を行う。即ち、第2検索処理部16は、文書番号Iを、ヒットした文書の文書番号に追加する(ステップ159)。そして、子文書数Nが0よりも大きいかどうかを判定する(ステップ160)。ここで、子文書数Nが0よりも大きければ、第2検索処理部16は、子文書数Nから1を減算し、文書番号Iに1を加算して(ステップ161)、ステップ159へ進む。また、子文書数Nが0よりも大きくなければ、つまり、子文書数Nが0に達していれば、文書番号群から次の文書番号Iを取得する(ステップ153)。
【0068】
一方、ステップ154で文書番号Iの取得が成功しなかったと判定すれば、第2検索処理部16は、これまでにヒットした文書の文書番号として記録された文書番号を検索クエリー変換部14に出力する(ステップ162)。
【0069】
尚、本実施の形態では、検索クエリーとして「A AND B」及び「A NOT B」を例示したが、複数の条件をAND論理演算子又はNOT論理演算子で結合した検索クエリーに対しても本発明は適用可能である。具体的には、検索クエリーが複数の条件をAND論理演算子で結合したものであれば、複数の条件の各条件についてのその条件を満たす文書を含む文書群に含まれる文書と、複数の条件のうちの少なくとも1つの条件を満たす文書とに共通する文書を検索結果とすればよい。また、検索クエリーが複数の条件をNOT論理演算子で結合したものであれば、複数の条件のうちの1つ目の条件を満たす文書を含む文書群に含まれる文書から、複数の条件のうちの2つ目以降の各条件についてのその条件を満たす文書を含む文書群に含まれる文書を除外し、残りの文書と複数の条件のうちの1つ目の条件を満たす文書とに共通の文書を検索結果とすればよい。更に、論理演算子もAND論理演算子及びNOT論理演算子には限らず、複数の条件をAND論理演算子及びNOT論理演算子以外の論理演算子で結合した検索クエリーに対しても本発明は適用可能である。
【0070】
また、本実施の形態では、検索クエリー変換部14が検索クエリーを変換し、この変換後の検索クエリーに基づいて、
図5のステップ106,108,109の検索処理を行うようにしたが、この限りではない。即ち、検索クエリーを変換することなく、
図5のステップ106,108,109の検索処理と同じ結果を得るような処理を行うようにしてもよい。
【0071】
更に、本実施の形態では、索引として転置索引を用い、互いに関連する文書に対しては連続する識別子を割り当てたが、この限りではない。即ち、索引として転置索引以外の索引を用いてもよいし、その場合は、互いに関連する文書に対して連続する識別子を割り当てなくてもよい。
【0072】
以上述べたように、本実施の形態では、複数の条件と複数の条件を結合する少なくとも1つの論理演算子とを含む検索条件を取得し、複数の条件の各条件について、複数の文書群の中で、各条件を満たす文書を含む文書群を特定し、複数の文書の中で、複数の条件のうちの少なくとも1つの条件を満たす文書を特定し、複数の条件の各条件について特定された文書群に含まれる文書と、特定された複数の条件のうちの少なくとも1つの条件を満たす文書とについて、少なくとも1つの論理演算子に応じた取捨選択を行うことにより、検索条件に基づく検索結果の文書を決定し、検索条件に基づく検索結果の文書を示す情報を生成するようにした。これにより、互いに関連する文書を含む複数の文書群に分けられる複数の文書から、文書群として検索条件を満たす文書を検索できるようになった。
【0073】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。
【0074】
図7は、このようなコンピュータのハードウェア構成例を示した図である。図示するように、コンピュータは、演算手段であるCPU(Central Processing Unit)90aと、M/B(マザーボード)チップセット90bを介してCPU90aに接続されたメインメモリ90cと、同じくM/Bチップセット90bを介してCPU90aに接続された表示機構90dとを備える。また、M/Bチップセット90bには、ブリッジ回路90eを介して、ネットワークインターフェイス90fと、磁気ディスク装置(HDD)90gと、音声機構90hと、キーボード/マウス90iと、フレキシブルディスクドライブ90jとが接続されている。
【0075】
尚、
図7において、各構成要素は、バスを介して接続される。例えば、CPU90aとM/Bチップセット90bの間や、M/Bチップセット90bとメインメモリ90cの間は、CPUバスを介して接続される。また、M/Bチップセット90bと表示機構90dとの間は、AGP(Accelerated Graphics Port)を介して接続されてもよいが、表示機構90dがPCI Express対応のビデオカードを含む場合、M/Bチップセット90bとこのビデオカードの間は、PCI Express(PCIe)バスを介して接続される。また、ブリッジ回路90eと接続する場合、ネットワークインターフェイス90fについては、例えば、PCI Expressを用いることができる。また、磁気ディスク装置90gについては、例えば、シリアルATA(AT Attachment)、パラレル転送のATA、PCI(Peripheral Components Interconnect)を用いることができる。更に、キーボード/マウス90i、及び、フレキシブルディスクドライブ90jについては、USB(Universal Serial Bus)を用いることができる。
【0076】
即ち、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム(装置又は機器)、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ(CD−ROM)、コンパクトディスク−リード/ライト(CD−R/W)及びDVDが含まれる。
【0077】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。