(57)【要約】【課題】文字列の分割方法・検索評価順序を工夫することにより、文書の検索を効率化する。【解決手段】文書検索システムは、索引２と、登録文書を索引の見出しとなる索引語に分割する文書分割手段１と、検索条件を解析して検索条件木を生成する検索条件解析手段４と、その検索条件木に基づいて検索結果を得る検索条件評価手段５と、検索語分割手段３とを有する。文書分割手段１は、登録文書をｎ文字連鎖の索引語と、登録文書の末尾を含むｎ′文字連鎖の索引語に分割する（ｎ′はｎ未満の整数）。検索語分割手段３は、検索語がｎ＋１文字以上の場合は、検索語を複数のｎ文字連鎖の索引語に分割して出力し、また検索語がｎ文字の場合は検索語を索引語として出力し、また検索語がｎ文字未満の場合は検索語に先頭部分が一致する全ての索引語を出力する。検索条件解析手段４は、上記の出力された索引語を複数の検索結果の和集合をとる和集合演算子で合成する。【選択図】図１
2007213606.tif 000002
【特許請求の範囲】
【請求項１】
登録文書を索引の見出しとなる各文字列による索引語に分割する文書分割手段と、索引語を見出しとして、該索引語を含む文書数を表す文書頻度、索引語を含む文書の識別子、索引語の各文書内での出現回数を表す文書内頻度、及び索引語の各文書内での出現位置の並びを保持する索引と、検索条件中の検索語を索引に記録されている索引語に分割する検索語分割手段と、検索条件を解析して索引語あるいは前記検索語分割手段が検索語から索引語を一つも出力しない場合に対応して作成する該当文書のないことを表す空文書集合あるいはそれらの一方または両方を演算子で合成した検索条件木を生成する検索条件解析手段と、該検索条件木に基づいて前記索引から索引語に関する情報を適当に取り出し、検索結果合成処理を実行して検索結果を得る検索条件評価手段とを有する文書検索システムであって、２以上の整数Ｎに対し、前記文書分割手段は登録文書を１以上Ｎ以下のｋ（１≦ｋ≦Ｎ）文字連鎖である索引語に分割し、検索語がＮ＋１文字以上の場合、前記検索語分割手段は検索語を覆う２つ以上のＮ文字連鎖である索引語に該検索語を分割し、前記検索条件解析手段は、前記分割した索引語の出現位置間の距離を指定する位置演算子で該分割した索引語を合成し、検索語が１文字以上Ｎ文字以下の場合、前記検索語分割手段は検索語を索引語とし、前記検索条件解析手段は前記索引語からなる検索条件を作成することを特徴とする文書検索システム。
【請求項２】
登録文書を索引の見出しとなる各文字列による索引語に分割する文書分割手段と、索引語を見出しとして、該索引語を含む文書数を表す文書頻度、索引語を含む文書の識別子、索引語の各文書内での出現回数を表す文書内頻度、及び索引語の各文書内での出現位置の並びを保持する索引と、検索条件中の検索語を索引に記録されている索引語に分割する検索語分割手段と、検索条件を解析して索引語あるいは前記検索語分割手段が検索語から索引語を一つも出力しない場合に対応して作成する該当文書のないことを表す空文書集合あるいはそれらの一方または両方を演算子で合成した検索条件木を生成する検索条件解析手段と、該検索条件木に基づいて前記索引から索引語に関する情報を適当に取り出し検索結果合成処理を実行して検索結果を得る検索条件評価手段とを有する文書検索システムであって、前記検索語分割手段が検索語を２つ以上の索引語に分割する場合、前記検索条件解析手段は前記２つ以上の索引語を複数の検索結果の積集合をとる積集合演算子で合成した候補決定用条件木と、前記２つ以上の索引語から検索語を覆う最小個数のものを選択して出現位置間の距離を指定する位置演算子で合成した詳細判定用条件木とを作成し、前記検索条件評価手段はまず前記候補決定用条件木で該当文書の候補を求め、つぎに前記詳細判定用条件木で位置関係を考慮して候補文書の中から該当文書を決定し、前記候補決定用条件木には、前記詳細判定用条件木に用いられる索引語と、それ以外の索引語のうち前後にある前記詳細判定用条件木に用いられる索引語よりも文書頻度が少ない索引語とを使用することを特徴とする文書検索システム。
【請求項３】
登録文書を索引の見出しとなる各文字列による索引語に分割する文書分割手段と、索引語を見出しとして、索引語を含む文書数を表す文書頻度、索引語を含む文書の識別子、索引語の各文書内での出現回数を表す文書内頻度、及び索引語の各文書内での出現位置の並びを保持する索引と、検索条件中の検索語を索引に記録されている索引語に分割する検索語分割手段と、検索条件を解析して索引語あるいは前記検索語分割手段が検索語から索引語を一つも出力しない場合に対応して作成する該当文書のないことを表す空文書集合あるいはそれらの一方または両方を演算子で合成した検索条件木を生成する検索条件解析手段と、該検索条件木に基づいて前記索引から索引語に関する情報を適当に取り出し検索結果合成処理を実行して検索結果を得る検索条件評価手段とを有する文書検索システムであって、前記検索語分割手段が検索語を２つ以上の索引語に分割する場合、前記検索条件解析手段は前記２つ以上の索引語を複数の検索結果の積集合をとる積集合演算子で合成した候補決定用条件木と、前記２つ以上の索引語から検索語を覆いかつ索引語ごとの文書頻度の合計が最小となるような索引語を選択して出現位置間の距離を指定する位置演算子で合成した詳細判定用条件木とを作成し、前記検索条件評価手段はまず前記候補決定用条件木で該当文書の候補を求め、つぎに前記詳細判定用条件木で位置関係を考慮して候補文書の中から該当文書を決定し、前記候補決定用条件木には、前記詳細判定用条件木に用いられる索引語と、それ以外の索引語のうち前後にある前記詳細判定用条件木に用いられる索引語よりも文書頻度が少ない索引語を使用することを特徴とする文書検索システム。
【請求項４】
請求項２または３に記載の文書検索システムにおいて、前記検索条件木において複数の検索結果の集合和をとる集合和演算子が入れ子になっている場合、集合和演算子に子ノードである集合和演算子の子ノード数がしきい値以下である場合に限って、後者の子ノードを前者の子ノードとし、後者を前者の要素から取り除く平坦化を行うことを特徴とする文書検索システム。
【請求項５】
請求項２または３に記載の文書検索システムにおいて、前記検索条件木において複数の検索結果の集合積をとる集合積演算子がある場合、集合和演算子の子ノードに集合積演算子がくる等価な和標準形に、変換後の集合和演算子の子ノード数がしきい値以下である場合に限って前記検索条件木を変換することを特徴とする文書検索システム。
【請求項６】
請求項２乃至５のいずれか１に記載の文書検索システムにおいて、集合積演算子では、子ノードの候補決定用条件木を集合積演算子で合成したものを候補決定用条件木とし、前記検索条件評価手段は集合積演算子の評価において、まず前記候補決定用条件木で該当文書の候補を求め、つぎにその前記集合積演算子の子ノードを用いて検索結果を決定することを特徴とする文書検索システム。
【請求項７】
請求項６に記載の文書検索システムにおいて、集合積演算子の候補決定用条件木に該集合積演算子の子ノードである索引語ノードも付加することを特徴とする文書検索システム。
【請求項８】
請求項２乃至５のいずれか１に記載の文書検索システムにおいて、前記検索条件評価手段は２つの検索結果の集合差をとる集合差演算子の評価において、第１子ノードの該当文書に対し、第２子ノードに対する該当文書の候補となり得るかを検査し、候補であると判断した場合に限ってその文書が第２子ノードに対する該当文書かを検査し、該当文書と判断した場合にはその文書を集合差演算子の該当文書とせず、それ以外の場合にはその文書を集合差演算子の該当文書とすることを特徴とする文書検索システム。
【請求項９】
請求項２乃至５のいずれか１に記載の文書検索システムにおいて、前記検索条件評価手段は集合和演算子の評価において、各子ノードに対する該当文書の候補を求め、つぎにその文書がその集合和演算子の結果集合に含まれていない場合に限ってそのノードに対する該当文書かを決定する処理を行い、該当文書であればその集合和演算子の結果集合に追加するという手段で逐次的に処理することを特徴とする文書検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子化された文書群を索引登録しておき、指定した文字列の検索語を含む文書を検索する電子化文書検索システムに関する。
【背景技術】
【０００２】
文書検索方法として全文検索がある。しかし、この方法は、基本的には検索時に登録全文書の内容を走査する必要があるため、大量の文書に対しては膨大な検索処理時間を要するという問題があった。その問題を解決するために、索引構造の工夫や検索処理方法の工夫による高速化が試みられている。索引構造としては、索引語に文書ＩＤのみを対応づける（したがって登録各文書における索引語の有無のみが索引からわかる）方式が当初は主流であったが、一般的には検索語を複数の索引語に分解して索引照合するため、検索ノイズ（過剰ヒット）が避けられず、ノイズ除去のために全文走査による後処理を必要とし、高速化に限界があった。さらに高速化するために、索引語の各文書内での出現位置などの付加情報を索引に持たせる方式も最近提案されている。
【０００３】
例えば、特許文献１のものは、登録文書中の特定数の文字連鎖を出現位置とともに索引に登録し、検索時には検索語を含む文書を、検索語中の文字連鎖に関する索引に記録された出現位置を用いて特定する。
【０００４】
特許文献２のものは、登録文書中の各１文字を出現位置とともに圧縮して索引に登録し、検索時には検索語を含む文書を、検索語中の文字連鎖に関する索引に記録された出現位置を用いて特定する。
ただ、これらの方法には、索引語の長さが短いと検査時間が増大する、索引語の長さが長いと索引語が短い検索語を検索できない、検索語が長いと検索時間が増大する等の問題点がある。
【特許文献１】特開平６−５２２２２号公報
【特許文献２】特開平８−１０１８４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上述のごとき実情に鑑みてなされたもので、文字列分割方法・検索評価順序の工夫により、検索を効率化した文書検索システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１の発明は、登録文書を索引の見出しとなる各文字列による索引語に分割する文書分割手段と、索引語を見出しとして、該索引語を含む文書数を表す文書頻度、索引語を含む文書の識別子、索引語の各文書内での出現回数を表す文書内頻度、及び索引語の各文書内での出現位置の並びを保持する索引と、検索条件中の検索語を索引に記録されている索引語に分割する検索語分割手段と、検索条件を解析して索引語あるいは前記検索語分割手段が検索語から索引語を一つも出力しない場合に対応して作成する該当文書のないことを表す空文書集合あるいはそれらの一方または両方を演算子で合成した検索条件木を生成する検索条件解析手段と、該検索条件木に基づいて前記索引から索引語に関する情報を適当に取り出し、検索結果合成処理を実行して検索結果を得る検索条件評価手段とを有する文書検索システムであって、２以上の整数Ｎに対し、前記文書分割手段は登録文書を１以上Ｎ以下のｋ（１≦ｋ≦Ｎ）文字連鎖である索引語に分割し、検索語がＮ＋１文字以上の場合、前記検索語分割手段は検索語を覆う２つ以上のＮ文字連鎖である索引語に該検索語を分割し、前記検索条件解析手段は、前記分割した索引語の出現位置間の距離を指定する位置演算子で該分割した索引語を合成し、検索語が１文字以上Ｎ文字以下の場合、前記検索語分割手段は検索語を索引語とし、前記検索条件解析手段は前記索引語からなる検索条件を作成することを特徴としたものである。
【０００７】
請求項２の発明は、登録文書を索引の見出しとなる各文字列による索引語に分割する文書分割手段と、索引語を見出しとして、該索引語を含む文書数を表す文書頻度、索引語を含む文書の識別子、索引語の各文書内での出現回数を表す文書内頻度、及び索引語の各文書内での出現位置の並びを保持する索引と、検索条件中の検索語を索引に記録されている索引語に分割する検索語分割手段と、検索条件を解析して索引語あるいは前記検索語分割手段が検索語から索引語を一つも出力しない場合に対応して作成する該当文書のないことを表す空文書集合あるいはそれらの一方または両方を演算子で合成した検索条件木を生成する検索条件解析手段と、該検索条件木に基づいて前記索引から索引語に関する情報を適当に取り出し検索結果合成処理を実行して検索結果を得る検索条件評価手段とを有する文書検索システムであって、前記検索語分割手段が検索語を２つ以上の索引語に分割する場合、前記検索条件解析手段は前記２つ以上の索引語を複数の検索結果の積集合をとる積集合演算子で合成した候補決定用条件木と、前記２つ以上の索引語から検索語を覆う最小個数のものを選択して出現位置間の距離を指定する位置演算子で合成した詳細判定用条件木とを作成し、前記検索条件評価手段はまず前記候補決定用条件木で該当文書の候補を求め、つぎに前記詳細判定用条件木で位置関係を考慮して候補文書の中から該当文書を決定し、前記候補決定用条件木には、前記詳細判定用条件木に用いられる索引語と、それ以外の索引語のうち前後にある前記詳細判定用条件木に用いられる索引語よりも文書頻度が少ない索引語とを使用することを特徴としたものである。
【０００８】
請求項３の発明は、登録文書を索引の見出しとなる各文字列による索引語に分割する文書分割手段と、索引語を見出しとして、索引語を含む文書数を表す文書頻度、索引語を含む文書の識別子、索引語の各文書内での出現回数を表す文書内頻度、及び索引語の各文書内での出現位置の並びを保持する索引と、検索条件中の検索語を索引に記録されている索引語に分割する検索語分割手段と、検索条件を解析して索引語あるいは前記検索語分割手段が検索語から索引語を一つも出力しない場合に対応して作成する該当文書のないことを表す空文書集合あるいはそれらの一方または両方を演算子で合成した検索条件木を生成する検索条件解析手段と、該検索条件木に基づいて前記索引から索引語に関する情報を適当に取り出し検索結果合成処理を実行して検索結果を得る検索条件評価手段とを有する文書検索システムであって、前記検索語分割手段が検索語を２つ以上の索引語に分割する場合、前記検索条件解析手段は前記２つ以上の索引語を複数の検索結果の積集合をとる積集合演算子で合成した候補決定用条件木と、前記２つ以上の索引語から検索語を覆いかつ索引語ごとの文書頻度の合計が最小となるような索引語を選択して出現位置間の距離を指定する位置演算子で合成した詳細判定用条件木とを作成し、前記検索条件評価手段はまず前記候補決定用条件木で該当文書の候補を求め、つぎに前記詳細判定用条件木で位置関係を考慮して候補文書の中から該当文書を決定し、前記候補決定用条件木には、前記詳細判定用条件木に用いられる索引語と、それ以外の索引語のうち前後にある前記詳細判定用条件木に用いられる索引語よりも文書頻度が少ない索引語を使用することを特徴としたものである。
【０００９】
請求項４の発明は、請求項２または３の発明において、前記検索条件木において複数の検索結果の集合和をとる集合和演算子が入れ子になっている場合、集合和演算子に子ノードである集合和演算子の子ノード数がしきい値以下である場合に限って、後者の子ノードを前者の子ノードとし、後者を前者の要素から取り除く平坦化を行うことを特徴としたものである。
【００１０】
請求項５の発明は、請求項２または３の発明において、前記検索条件木において複数の検索結果の集合積をとる集合積演算子がある場合、集合和演算子の子ノードに集合積演算子がくる等価な和標準形に、変換後の集合和演算子の子ノード数がしきい値以下である場合に限って前記検索条件木を変換することを特徴としたものである。
【００１１】
請求項６の発明は、請求項２乃至５のいずれか１の発明において、集合積演算子では、子ノードの候補決定用条件木を集合積演算子で合成したものを候補決定用条件木とし、前記検索条件評価手段は集合積演算子の評価において、まず前記候補決定用条件木で該当文書の候補を求め、つぎにその前記集合積演算子の子ノードを用いて検索結果を決定することを特徴としたものである。
【００１２】
請求項７の発明は、請求項６の発明において、集合積演算子の候補決定用条件木に該集合積演算子の子ノードである索引語ノードも付加することを特徴としたものである。
【００１３】
請求項８の発明は、請求項２乃至５のいずれか１の発明において、前記検索条件評価手段は２つの検索結果の集合差をとる集合差演算子の評価において、第１子ノードの該当文書に対し、第２子ノードに対する該当文書の候補となり得るかを検査し、候補であると判断した場合に限ってその文書が第２子ノードに対する該当文書かを検査し、該当文書と判断した場合にはその文書を集合差演算子の該当文書とせず、それ以外の場合にはその文書を集合差演算子の該当文書とすることを特徴としたものである。
【００１４】
請求項９の発明は、請求項２乃至５のいずれか１の発明において、前記検索条件評価手段は集合和演算子の評価において、各子ノードに対する該当文書の候補を求め、つぎにその文書がその集合和演算子の結果集合に含まれていない場合に限ってそのノードに対する該当文書かを決定する処理を行い、該当文書であればその集合和演算子の結果集合に追加するという手段で逐次的に処理することを特徴としたものである。
【発明の効果】
【００１５】
請求項１の発明によれば、１文字から成る索引語を必ず抽出するので、１文字から成る検索語の検索処理を高速化できる。
【００１６】
請求項２及び請求項３の発明によれば、索引語の文書頻度に基づいて選択した索引語のみを用いて候補決定を行うので、検索処理を高速化できる。
【００１７】
請求項４の発明によれば、検索条件において集合和演算子が入れ子になっている場合に子ノード数を考慮して集合和演算子の平坦化を行うので、検索処理を高速化できる。
【００１８】
請求項５の発明によれば、検索条件において集合積演算子・集合和演算子が入れ子になっている場合に子ノード数を考慮して和標準形変換を行うので、検索処理を高速化できる。
【００１９】
請求項６及び７の発明によれば、検索条件に集合積演算子が含まれる場合に子ノードの候補決定用条件木を利用して検索を行うので、検索処理を高速化できる。
【００２０】
請求項８の発明によれば、検索条件に集合差演算子が含まれる場合に子ノードの候補決定用条件木を利用して検索を行うので、検索処理を高速化できる。
【００２１】
請求項９の発明によれば、検索条件に集合和演算子が含まれる場合に子ノードの候補決定用条件木を利用して検索を行うので、検索処理を高速化できる。
【発明を実施するための最良の形態】
【００２２】
図１は本発明による文書検索システムの概要を示すブロック図である。本発明は、登録文書を索引の見出しとなる各文字列（以下、索引語）に分割する文書分割手段１と、索引語を見出しとしてその索引語を含む文書数（以下、文書頻度）・文書ごとにその索引語を含む文書の識別子（以下、文書識別子あるいは文書ＩＤ）・その索引語の各文書内での出現回数（以下、文書内頻度）・その索引語の各文書内での出現位置の並び（以下、これら索引語ごとの一連データを転置リストと呼ぶ）とを保持する索引２と、検索条件中の検索語を索引に記録されている索引語に分割する検索語分割手段３と、検索条件を解析し、索引語、あるいは検索語分割手段が検索語から索引語を一つも出力しない場合に対応して作成する該当文書のないことを表す空文書集合、あるいはそれらの一方または両方を演算子で合成した検索条件木を生成する検索条件解析手段４と、検索条件木に基づいて索引から索引語に関する情報を適当に取りだし、検索結果合成処理を実行して検索結果を得る検索条件評価手段５とを有する文書検索システムである。
【００２３】
本発明では、検索対象の文書群は登録処理によって高速検索のための索引に必要な情報を記録しておく。本願と同一人により出願された先行出願として、特願平１０−２５６９４号の電子化文書検索システムおよび記憶媒体がある。上記出願の請求項２のシステムでは、検索語がｎ文字未満の場合、登録文書の末尾部分にある検索を正しく検索できないことがある。これに対し、本願の第１の実施形態では、１以上の整数ｎに対し、文書分割手段は登録文書をｎ文字連鎖である索引語に分割する。このとき、ｎ＞１の場合であればｎ′をｎ未満の整数とするとき、ｎ文字連鎖の索引語に加えて、登録文書の末尾の文字を含むｎ′文字連鎖である索引語も分割結果とする。今、文書１＝“あああ”，文書２＝“あいうえお”，文書３＝“あいえ”，文書４＝“いう”を登録することとする。ｎ＝２であれば、索引には図２に示す表のような情報が記録される。ここで、文書ごとの出現情報は｛，｝で囲まれた範囲がひとつの文書での出現であり、１番目のフィールドが文書ＩＤ、２番目のフィールドが文書内頻度、３番目のフィールド（（，）で囲まれたもの）が出現位置の並びである。
【００２４】
第１の実施形態は、長さ１の索引語（「あ」「い」「う」「え」「お」）が登録される点が上記先行出願の請求項２のシステムと異なっている。なお、ｎ＝３であれば、例えば、文書２からは「あいう」「いうえ」「うえお」に加えて、末尾の文字「お」を含む３未満の文字連鎖である「えお」「お」も抽出される。
【００２５】
検索語がｎ＋１文字以上の場合、検索語分割手段は検索語を覆う２つ以上のｎ文字連鎖である索引語に当該検索語を分割し、検索条件解析手段はそれら索引語の出現位置間の距離を指定する位置演算子で合成する。いま、＃ｄｉｓｔａｎｃｅ［ｘ］（Ａ，Ｂ）で索引語Ａと索引語Ｂが距離ｘ文字にある文書を検索することを指定するものとする。例えば、ｎ＝２で、検索語が「あいう」であれば、検索語分割手段は検索語を２個の索引語「あい」「いう」に分割し、検索条件解析手段は＃ｄｉｓｔａｎｃｅ［１］（あい，いう）に相当する検索条件木をつくる。検索条件評価手段は、「あい」「いう」に関する転置リストを読み出し、これら２つの索引語が同時に出現しており、これが検索結果となる。
【００２６】
検索語がｎ文字の場合、検索語分割手段は検索語を索引とし、検索条件解析手段はその索引語からなる検索条件を作成する。例えば、ｎ＝２で、検索語が「いえ」であれば、検索語分割手段は検索語から索引語「いえ」を抽出し、検索条件解析手段は′いえ′に相当する検索条件木をつくる。この場合、検索結果は文書３になる。
【００２７】
ｎ＞１であって検索語がｎ文字未満の場合、検索語分割手段は１文字目からがその検索語と一致する索引に存在している全ての索引語を出力し、検索条件解析手段はそれら索引語を複数の検索結果の和集合をとる和集合演算子で合成する。例えば、検索語が「え」であれば、検索語分割手段は「え」「えお」を出力し、検索条件解析手段は＃ｏｒ（え，えお）という検索条件木をつくる。ここで、＃ｏｒ（Ａ，Ｂ）は索引語Ａを含む文書集合と索引語Ｂを含む文書集合の和集合を検索することを指定するものとする。この場合、文書２，３が検索結果となる。なお、上記先行出願の請求項２のシステムでは、文書２のみが検索され、文書３は検索されない。
【００２８】
本実施形態のシステムでは、ｎ＞１のときに１文字からなる検索語は複数の索引語の和集合演算結果として検索が行われる。したがって、１文字からなる検索語の検索が遅いという問題がある。そこで、本願の第２の実施形態では、１文字以上Ｎ文字以下の異なる長さの索引語を登録文書から抽出して索引を作成する。第１の実施形態の説明で用いた４つの文書をＮ＝２として、第２の実施形態のシステムで登録した場合の索引を図３の表に示す。末尾に限らず１文字の出現が記録されている点が図２の表と異なる。
【００２９】
このシステムでは、検索語がＮ＋１文字以上の場合の処理は、第１の実施形態のシステムと同じである。一方、検索語が１文字以上Ｎ以下の場合、検索語分割手段は検索語を索引語とし、検索条件解析手段はその索引語からなる検索条件を作成する。検索語が「え」であれば、検索語分割手段は「え」を出力し、検索条件解析手段は′え′という検索条件木をつくる。第１の実施形態のように和集合演算を行うことなく、文書２，３が検索結果となることがわかる。
【００３０】
第２の実施形態のシステムでは、１文字の検索語の処理は高速化されるが、その分索引が大きくなる。すなわち、第２の実施形態のように登録文書分割の長さを１以上とすることは望ましくない。そこで、第３の実施形態では、ｎを２以上の整数としたとき、ｎ文字以上Ｎ文字以下の異なる長さの索引語を登録文書から抽出して索引を作成する。この場合、検索処理は第１の実施形態のように３つに場合分けされる。以下では、ｎ＝２，Ｎ＝３として説明する。検索語が「あいうえ」であれば、検索語の長さはＮ以上なので、検索条件木は＃ｄｉｓｔａｎｃｅ［１］（あいう，いうえ）となる。検索語が「あいう」であれば、ｎ以上Ｎ以下なので、検索条件木は′あいう′となる。検索語が「あい」である場合も同様にして検索条件木は′あい′となる。検索語が「あ」であれば、ｎ未満なので、検索条件木は＃ｏｒ（あ，ああ，あああ，…，あい，あいあ，…，あん，…，あんん）となる（ここでは、ひらがなのみからなる文書が登録されているものとしている）。
【００３１】
第３の実施形態のシステムでは、ｎ文字未満の検索語の処理において、検索語分割手段はその検索語と先頭部分が一致する索引に存在している全ての索引語を出力するため、和集合演算子で合成すべき索引語数が非常に大きくなる。そこで、第４の実施形態では、検索語分割手段はその検索語と先頭部分が一致する索引に存在しているｎ文字以下の索引語を出力する。登録時には、登録文書中に存在するｎ文字連鎖は必ず登録されているので、検索時はｎ以下の索引の文字連鎖を和集合演算子で合成すれば十分である。このようにｎ文字以下の索引語だけを出力することで、和集合演算子で合成すべき索引語が削減され、検索が高速化できる。例えば、ｎ＝２，Ｎ＝３として、検索語が「あ」であれば、検索条件木は＃ｏｒ（あ，ああ，あい，…，あん）となる。
【００３２】
日本語には、カタカナ・ひらがな・漢字などの複数の文字種があり、以下のような特徴がある。
・同一文字種のみからなる単語が多い。
・同一文字種のみからなる単語の長さは、文字種によって異なる。
【００３３】
従って、第１〜第３の実施形態のシステムのように、登録文書・検索語を分割する際、文字種を無視するのは効率的とは言えない。これに対し第５の実施形態のシステムでは、文字種を考慮することで効率的な登録・検索処理を実現する。具体的には、文字種ごとに、第１・第２・第３の実施形態による処理方法を含む個別の方法を指定できるようにする。例えば、ある文字種に対する分割方法が第１の実施形態のシステムによるものであればその文字種に対するｎを、第２の実施形態であればその文字種に対するＮを、第３の実施形態であればその文字種に対するｎとＮを、指定できる。
【００３４】
以下では、文字種にはカタカナ・漢字・その他の３種類があるものとして説明する。このとき、例えば、以下のように索引を作成することができる。
・カタカナに対しては、第３の実施形態による処理でｎ＝２，Ｎ＝３とする。
・漢字に対しては、第２の実施形態による処理でＮ＝２とする。
・その他に対しては、第１の実施形態による処理でｎ＝１とする。
【００３５】
登録文書が例えば「検索システムを作る」であれば、「検」「検索」「索」「シス」「システ」「ステ」「ステム」「テム」「ム」「を」「作」「る」のように分割される。「ム」が切り出されているのは、「システム」というカタカナの連続部分の末尾に位置するｎ未満の文字連鎖だからである。
【００３６】
検索処理は、検索語が同一文字種だけで構成されているか否かによって異なる。同一文字種だけで構成されている場合、検索処理は、その文字種の分割方法に対応した検索処理となる。例えば、検索語が「検索」であれば第２の実施形態の処理を行うので検索条件木は′検索′となる。一方、異なる文字種から構成されている場合、同一文字種の連続部分に対しては上記方法で検索条件木（これを副検索条件木と呼ぶ）を作成し、それらを位置演算子で結合したものを最終的な検索条件木とする。例えば、検索語が「検索システム」であるとする。この場合、まず、漢字の連続部分「検索」に対する副検索条件木′検索′と、カタカナの連続部分「システム」に対する副検索条件木＃ｄｉｓｔａｎｃｅ［１］（システ，ステム）がまず作成される。つぎに、「検索」と「システム」の距離（２文字）で２つの副検索条件木を結合した＃ｄｉｓｔａｎｃｅ［２］（検索，＃ｄｉｓｔａｎｃｅ［１］（システ，ステム））が最終的な検索条件木となる。
【００３７】
ただし、検索語が異なる文字種から構成されており、同一文字種の連続部分の末尾以外のものの長さがその文字種の最小の切り出し長さｎより短い場合の検索が効率的でないという問題がある。例えば、検索語が「ムを」であれば、「ム」に対する副検索条件木＃ｏｒ（ム，ムア，…）と、「を」に対する副検索条件木と′を′を結合して最終的な検索条件木を＃ｄｉｓｔａｎｃｅ［１］（＃ｏｒ（ム，ムア，…），を）とする。しかし、「ム」に対する副検索条件木で和集合演算子で展開されている索引語のうち、「ム」以外は「を」以外の文字と連続している文字連鎖であるので、「を」との距離は１になり得ない。したがって、同一文字種の連続部分の末尾以外のものの長さがその文字種の最小の切り出し長さｎより短い場合であっても、検索処理では、その連続部分に対してはその連続部分そのものである索引語を用いればよい。すなわち、検索語が「ムを」の場合の「ム」に対する副検索条件木は′ム′でよく、最終的な検索条件木は＃ｄｉｓｔａｎｃｅ［１］（ム，を）となる。この場合、検索条件木は単純となり、検索も高速化できる。
【００３８】
第５の実施形態のシステムでは、検索語が異なる文字種から構成されており、同一文字種の連続部分の末尾のものの長さがその文字種の最小の切り出し長さｎより短い場合の検索が効率的でないという問題がある（これに該当するのは、同一文字種の連続部分の末尾のものに対する切り出し方式が、第１の実施形態でｎ＞１の場合および第３の実施形態の場合だけである）。例えば、検索語が「索シ」であれば、「索」に対する副検索条件木′索′と、「シ」に対する副検索条件木＃ｏｒ（シ，シア，…）となるため、最終的な検索条件木は＃ｄｉｓｔａｎｃｅ［１］（＃ｏｒ（シ，シア，…）となる。しかし、このように位置演算子のなかに和集合演算子が含まれると、検索処理が複雑となり、検索時間が増大する。
【００３９】
これに対し、第６の実施形態のシステムでは、第１の実施形態でｎ＞１の場合および第３の実施形態を適用する文字種に対しては、文書分割手段は登録文書中のその文字種の連続部分をｎ文字連鎖である索引語と、ｎ′をｎ未満の整数とするときにその文字種の連続部分の末尾の文字を含むｎ′文字連鎖である索引語と、その文字種の連続部分の先頭の文字を含むｎ′文字連鎖である索引語とに分割する。例えば、登録文書が「検索システムを作る」であれば、「検」「検索」「索」「シ」「シス」「システ」「ステ」「ステム」「テム」「ム」「を」「作」「る」のように分割する。カタカナ連続部分の先頭文字を含む１文字連鎖である「シ」が単独で切り出されている点が、第５の実施形態による処理と異なる。
【００４０】
検索処理は、検索語が同一文字種だけで構成されているか否かによって異なるが、同一文字種だけで構成されている場合は第５の実施形態と全く同様に処理すれば良い。一方、異なる文字種から構成されている場合、同一文字種の連続部分の末尾のものの長さがその文字種の最小の切り出し長さｎより短い場合の処理が第５の実施形態と異なる。このとき、登録時には、同一文字種の連続部分の先頭文字を含むｎ′文字連鎖は索引語として抽出されているので、検索時にも、その連続部分に対してはその連続部分そのものである索引語を用いればよい。すなわち、検索語が「索シ」の場合の「シ」に対する副検索条件木は′シ′でよく、最終的な検索条件木は＃ｄｉｓｔａｎｃｅ［１］（索，シ）となる。
【００４１】
第５の実施形態のシステムでは、異なる文字種からなる２文字連鎖は索引に記録されることはなく、検索にも利用されることがない。しかし、文字種の組み合わせのなかには、検索語として指定されることの多いものもある。例えば、漢字・ひらがなの組合わせは「動き」のように活用語を構成するので、検索語としても使用されることが多い。しかし、第５の実施形態のシステムであれば、「動き」は＃ｄｉｓｔａｎｃｅ［１］（動，き）という検索条件木として処理されるため、検索に時間がかかる。
【００４２】
そこで、第７の実施形態のシステムでは、指定された異なる文字種からなる２文字連鎖を索引に利用する。文書分割手段は、登録文書中の同一文字種の連続部分ごとにその文字種に対するｎあるいはＮに対応して索引語に分割するとともに、指定された異なる文字種からなる２文字連鎖も索引語として抽出する。例えば、第５の実施形態の例のように文字種ごとの処理方法を指定するのに加えて、漢字・ひらがなの組み合わせも索引に使用するとする。この場合、登録文書が「検索システムを作る」であれば、「検」「検索」「索」「シス」「システ」「ステ」「ステム」「テム」「ム」「を」「作」「る」に加えて、漢字・ひらがなの組合わせである「作る」も抽出する。
【００４３】
検索語分割手段も、文書分割手段と同様に、検索語を分割する。検索条件解析手段は、検索語が指定された異なる文字種からなる２文字連鎖を含まない場合は、これまでと同様に、検索条件木を作成する。異なる文字種からなる２文字連鎖を含む場合は、それによって連結される連側部分を位置演算子で連結する副検索条件木を作成する対象と捉え、そのなかの同一文字種の連続部分を分割するとともに異なる文字種からなる２文字連鎖も索引語として抽出する。その上で、検索条件解析手段が、抽出された索引語を位置演算子で副検索条件木に組み上げる。
【００４４】
例えば、漢字・カタカナの組み合わせが指定されている場合、検索語が「検索システム」であれば、「検索システム」全体を副検索条件木作成対象と捉え、漢字の連続部分「検索」とカタカナの連続部分「システム」から「検索」「システ」「ステム」を抽出し、さらに漢字・カタカナからなる「索シ」も抽出する。これから＃ｄｉｓｔａｎｃｅ［１］（検索，＃ｄｉｓｔａｎｃｅ［１］（索シ，＃ｄｉｓｔａｎｃｅ［１］（システ，ステム）））という副検索条件木を作成する（この場合、検索語からひとつの副検索条件木作成対象が作成されないので、この副検索条件木が最終的な検索条件木になる）。
【００４５】
また、検索語が「検索システム作成」であれば、「検索システム」と「作成」が副検索条件木作成対象となる「ム」と「作」で大きく分割されるのは、カタカナ・漢字の組み合わせは指定されていないからである。「検索システム」からは先の副検索条件木が作成され、「作成」からは副検索条件木′作成′が作成される。したがって、最終的な検索条件木は＃ｄｉｓｔａｎｃｅ［６］（＃ｄｉｓｔａｎｃｅ［１］（検索，＃ｄｉｓｔａｎｃｅ［１］（索シ，＃ｄｉｓｔａｎｃｅ［１］（システ，ステム））），作成）となる。
【００４６】
第７の実施形態のシステムでは、検索語が指定された異なる文字種からなる２文字種連鎖を含んでおり、その前側の文字種の連続部分の長さが１文字の場合、検索処理に無駄が発生する。例えば、漢字・ひらがなに対する分割方法が第１の実施形態でｎ＝２であり、漢字・ひらがなが指定されているとする。このとき、検索語が「動きが」であれば、漢字の連続部分「動」からは＃ｏｒ（動，動あ，…）が、ひらがなの連続部分「きが」からは′きが′が作成され、それと漢字・ひらがなの連続「動き」から生成された′動き′を組み合わせればよい最終的な検索条件木は＃ｄｉｓｔａｎｃｅ［１］（＃ｄｉｓｔａｎｃｅ［０］（＃ｏｒ（動，動あ，…），動き），きが）となる。しかし、#ｄｉｓｔａｎｃｅ［０］（＃ｏｒ（動，動あ，…），動き）は′動き′と等価であるので、上述した検索条件木を作成することは無駄である。
【００４７】
そこで、第８の実施形態のシステムでは、検索語が指定された異なる文字種からなる２文字連鎖を含んでおり、その前側の文字種の連続部分の長さが１文字の場合、検索語分割手段はその前側の１文字に対応する索引語を生成しない。すなわち、「動きが」という検索語からは「動き」「きが」が抽出され、最終的な検索条件木も#ｄｉｓｔａｎｃｅ［１］（動き，きが）となる。その結果、検索処理が簡単となり、検索処理も高速化される。
【００４８】
第７の実施形態のシステムでは、検索語が指定された異なる文字種からなる２文字連鎖を含んでおり、その後側の文字種の連続部分の長さが１文字の場合、検索処理に無駄が発生する。例えば、漢字・ひらがなに対する分割方法が第１の実施形態でｎ＝２であり、漢字・ひらがなが指定されているとする。このとき、検索語が「動作が」であれば、漢字の連続部分「動作」からは′動作′が、ひらがなの連続部分「が」からは＃ｏｒ（が，があ，…）が作成され、それと漢字・ひらがなの連続「作が」から生成された′作が′を組み合わせて、最終的な検索条件木＃ｄｉｓｔａｎｃｅ［１］（動作，＃ｄｉｓｔａｎｃｅ［１］（作が，＃ｏｒ（が，があ，…）））が作成される。しかし、＃ｄｉｓｔａｎｃｅ［１］（作が，＃ｏｒ（が，があ，…））は′作が′と等価であるので、上述した検索条件木を作成することは無駄である。
【００４９】
そこで、第９の実施形態のシステムでは、検索語が指定された異なる文字種からなる２文字連鎖を含んでおり、その後側の文字種の連続部分の長さが１文字の場合、検索語分割手段はその後側の１文字に対応する索引語を生成しない。すなわち、「動作が」という検索語からは「動作」「作が」が抽出され、最終的な検索条件木も＃ｄｉｓｔａｎｃｅ［１］（動作が，作が）となる。その結果、検索処理が簡単となり、検索処理も高速化される。
【００５０】
第７の実施形態のシステムでは、検索語が同一の文字種から構成されており、その長さがその文字種の最小の切り出し長さｎより短い場合の検索が効率的でないという問題がある（これに該当するのは、同一文字種の連続部分の末尾のものに対する切り出し方式が、第１の実施形態でｎ＞１の場合および第３の実施形態の場合だけである）。例えば、漢字およびひらがなに対する分割方法が第１の実施形態でｎ＝２，ひらがな・漢字が指定されており、検索語が「あ」であれば、「あ」に対する検索条件木は＃ｏｒ（あ，ああ，…，あん，あ亜，…）となる。
ところが、文書登録においては「あ」に異なる文字種が続いていた場合には「あ」が抽出されているので、ひらがな・漢字の連続である索引語を含む文書はすべて「あ」に対応する索引に記録されている。したがって、検索語分割手段がひらがな・漢字を生成するのは無駄である。
【００５１】
第１０の実施形態のシステムでは、検索語分割手段が、検索語が同一の文字種から構成されており、その長さがその文字種の最小の切り出し長さｎより短い場合には、その検索語と先頭部分が一致する索引に存在しているその文字種だけから構成される索引語を出力する。例えば、「あ」に対する検索条件木は＃ｏｒ（あ，ああ，…，あん）となる。その結果、上述したような無駄な索引語を検索処理で用いなくなるので、検索が高速化される。
【００５２】
これまでの手法では、検索語が２つ以上の索引語に分割される場合には位置演算子で合成した検索条件のみを用いて検索が実施されていた。この方法では、無駄な位置の突き合わせ処理の発生する可能性がある。例えば、文書１＝“あいうえお”、文書２＝“あいうえい”、文書３＝“あいうえう”、文書４＝“あいうええ”、文書５＝“あいうえお”とし、第１の実施形態のシステムによる方法でｎ＝２として索引を作成すると図４に示す表のようになる。
【００５３】
第１の実施形態の説明に示した方法で検索語「あいいう」を処理すると、索引語として「あい」「いい」「いう」が得られ、＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（あい，いい），いう）という検索条件木が作成される。しかし、「あい」と「いう」が距離２の位置にあれば、両者の間には必ず「いい」が存在するので、＃ｄｉｓｔａｎｃｅ［２］（あい，いう）という検索条件木で十分である。位置演算子を含む検索条件の処理は、まず全ての索引語が出現している文書ＩＤを特定し、次にその文書において索引語間の出現位置のズレが位置演算子の指定通りかを検査することで、その文書が本当に検索条件に該当するかを決定するという手順で実現できる。上記検索語では、出現位置のズレを検査する際には、「あい」「いう」の２つの索引語を用いれば良いが、文書ＩＤの特定の際には、「いい」も用いた方が効率化される。索引には「いい」が登録されていないので、「いい」が出現しているか調べるだけで「あいいう」に該当する文書がないことがわかるからである（この手法は前述した先行出願特願平１０−２５６９７４号の請求項８・９で提案済み）。以下、文書ＩＤの特定処理を候補決定、出現位置のズレの検査処理を詳細判定と呼び、前者に使用する検索条件木を候補決定用条件木、後者に使用する検索条件木を詳細判定用条件木と呼ぶ。すると、この検索語に対しては、候補決定用条件木：＃ａｎｄ（あい，いい，いう）、詳細判定用条件木：＃ｄｉｓｔａｎｃｅ［２］（あい，いう）となる。ここで、＃ａｎｄは各オペランドに対する検索結果の集合積を検索結果とするもので、集合積演算子という。
【００５４】
検索語「いうえお」に対して上記方法を適用すると、候補決定条件木：＃ａｎｄ（いう，うえ，えお）、詳細判定用条件木：＃ｄｉｓｔａｎｃｅ［２］（いう，えお）となる。ところが、この場合、「いう」が出現している文書には必ず「うえ」が出現しているので、候補決定用条件木に「うえ」を加えても、候補文書を絞り込む効果はなく、索引語が増えたぶん処理が増大するので、検索が遅くなるという問題がある。
【００５５】
第１１の実施形態及び第１２の実施形態では、候補文書を絞り込む効果が期待できる索引語のみを候補決定用条件木に追加し、検索を高速化する。すなわち、単純に検索語から抽出された索引語を加えるのではなく、候補決定用条件木には、詳細判定用条件木に用いられる索引語と、それ以外の索引語のうち前後にある詳細判定用条件木に用いられる索引語よりも文書頻度が少ない索引語を使用する。例えば、検索語「あいいう」では、詳細判定に使用する「あい」「いう」の文書頻度５に対して「いい」の文書頻度は０なので、「いい」を使用することとなる。一方、検索語「いうえお」では、詳細決定に使用する「いう」の文書頻度５に対して「うえ」の文書頻度も５で小さくないので、「うえ」は使用しない。なお、第１１の実施形態と第１２の実施形態では、詳細判定用に使用する索引語として、第１１の実施形態が最小個数のものを選択するのに対し、第１２の実施形態が索引語ごとの文書頻度の合計が最小となるものを選択する点で異なっている。
【００５６】
本願と同一人にて出願された他の先行出願として特願平１０−０２０８４０号があるが、当該先行出願の請求項８では、検索条件木に複数の検索結果の集合和をとる集合和演算子が入れ子になっている場合、後者の子ノードを前者の子ノードとし、後者を前者の要素から取り除く平坦化を行う。例えば、検索条件木が＃ｏｒ（＃ｏｒ（東京，江戸），大阪）であれば、＃ｏｒ（東京，江戸，大阪）とする。ここで、＃ｏｒが集合和演算子である。
【００５７】
ところが、集合和演算子に子ノードである集合和演算子の子ノード数が多い場合、平坦化の作業に処理コストがかかる。そこで、本願の第１３の実施形態では、検索条件木に複数の検索結果の集合和をとる集合和演算子が入れ子になっている場合、集合和演算子に子ノードである集合和演算子の子ノード数がしきい値以下である場合に限って、後者の子ノードを前者の子ノードとし、後者を前者の要素から取り除く平坦化を行う。その結果、集合和演算子に子ノードである集合和演算子の子ノード数が多い場合に処理コストが増大することを回避できる。
【００５８】
検索条件木に複数の検索結果の集合積をとる集合積演算子の子ノードに集合和演算子がある場合、集合和演算子の子ノードに集合積演算子が来るそれと等価な和標準形に変換することができる。例えば、＃ａｎｄ（＃ｏｒ（東京，江戸），大阪）は＃ｏｒ（＃ａｎｄ（東京，大阪），＃ａｎｄ（江戸，大坂））となる。このように変形すると、集合和演算を行う対象となる文書集合が小さくなるので、検索を効率化できる。
【００５９】
しかし、集合積演算子の子ノードにある集合和演算子の子ノード数が多いと、変換後の集合和演算子の子ノード数が膨大になってしまうことがある。例えば、＃ａｎｄ（＃ｏｒ（東京，とうきょう，トウキョウ，ＴＯＫＹＯ，ｔｏｋｙｏ，江戸，えど，エド，ＥＤＯ，ｅｄｏ），＃ｏｒ（大阪，おおさか，オオサカ，ＯＯＳＡＫＡ，ｏｏｓａｋａ））であると、変換後の子ノード数は１０×５＝５０個にもなり、変換作業にかかる処理コストも大きくなる。
【００６０】
そこで、本願の第１４の実施形態では、検索条件木に複数の検索結果の集合積をとる集合積演算子の子ノードに集合和演算子がある場合、集合和演算子の子ノードに集合積演算子が来るそれと等価な形式に、変換後の集合和演算子の子ノード数がしきい値以下である場合に限って、変換する。その結果、変換後の集合和演算子の子ノード数が多くなる場合に処理コストが増大することを回避できる。
【００６１】
複数の索引語に分割される検索語を集合積演算子で合成したような検索条件の場合を考える。例えば、第１の実施形態のシステムによる処理（ｎ＝２）で索引を作成しているとき、＃ａｎｄ（プリンタ，システム）という検索条件からは＃ａｎｄ（＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（プリ，リン），ンタ），＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（シス，ステ），テム））という検索条件木が作成される。この検索条件木は、まず、＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（プリ，リン），ンタ）で「プリンタ」に該当する文書を決定し、その文書が、＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（シス，ステ），テム）で「システム」に該当するかを判定し、該当していれば検索結果に加えるという手順で、評価される。
【００６２】
このとき、検索条件木はａｎｄ（＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ），＃ｄｉｓｔａｎｃｅ［２］（シス，テム））となり、前記の特願平１０−２５６９７４号の請求項８・請求項９あるいは請求項１１・請求項１２のシステムによる処理であれば、例えば、＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ）に対しては＃ａｎｄ（プリ，リン，ンタ）、＃ｄｉｓｔａｎｃｅ［２］（シス，テム）に対しては＃ａｎｄ（シス，ステ，テム）が候補決定用条件木として設定される。そこで、まず、＃ａｎｄ（プリ，リン，ンタ）で「プリンタ」を含む候補文書を決定し、その文書が、＃ａｎｄ（シス，ステ，テム）で「システム」を含む候補かを判定し、満たしていれば＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ）で「プリンタ」を含むための位置条件を満たしているか判定し、満たしていれば＃ｄｉｓｔａｎｃｅ［２］（シス，テム）で「システム」を含むための位置条件を満たしているか判定するという手順で、該当文書かを決定できる。この手順では、位置条件を満たしているかを判断する回数が少なくなるので、検索処理を高速化できる。
【００６３】
そこで、本願の第１５の実施形態では、子ノードの候補決定用条件木を集合積演算子で合成したものを候補決定用条件木として持つ。例えば、先の検索条件に対する候補決定用条件木は＃ａｎｄ（プリ，リン，ンタ，シス，ステ，テム）となる。この方法では、候補文書決定の手間が減るので、検索処理をさらに高速化できる。
【００６４】
第１５の実施形態の方法では、＃ａｎｄ（プリンタ，装置）のように子ノードに索引語ノードがある検索条件に対しては、そのノードが候補決定用条件木に含まれず、候補決定用条件木は＃ａｎｄ（プリ，リン，ンタ）となる。そのため、候補文書が十分に絞り込まれず検索処理が遅くなる可能性がある。そこで、本発明の更に他の例では、集合積演算子の候補決定用条件木として子ノードが索引語ノードも付加する。例えば、先の検索条件に対する候補決定用条件木は＃ａｎｄ（プリ，リン，ンタ，装置）となる。この方法では、候補文書が絞り込まれるので、検索処理を高速化できる。
【００６５】
２つの検索結果の集合差をとる集合差演算子（以下＃ａｎｄ−ｎｏｔと書く）で合成したような検索条件の場合を考える。例えば第１の実施形態の方法（ｎ＝２）で索引を作成しているとき、＃ａｎｄ−ｎｏｔ（プリンタ，システム）という検索条件からは＃ａｎｄ−ｎｏｔ（＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（プリ，リン），ンタ），＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］シス，ステ），テム））という検索条件木が作成される。この検索条件木は、まず、＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（プリ，リン），ンタ）で「プリンタ」に該当する文書を決定し、その文書が＃ｄｉｓｔａｎｃｅ［２］（＃ｄｉｓｔａｎｃｅ［１］（シス，ステ），テム）で「システム」に該当するかを判定し、該当していなければ検索結果に加えるという手順で、評価される。
【００６６】
このとき、検索条件木は＃ａｎｄ−ｎｏｔ（＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ），＃ｄｉｓｔａｎｃｅ［２］シス，テム））となり、上記特願平１０−２５６９７４号の請求項８・請求項９あるいは請求項１１・請求項１２の方法であれば、例えば、＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ）に対しては＃ａｎｄ（プリ，リン，ンタ）、＃ｄｉｓｔａｎｃｅ［２］シス，テム）に対しては＃ａｎｄ（シス，ステ，テム）が候補決定用条件木として設定される。そこで、まず、＃ａｎｄ（プリ，リン，ンタ）と＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ）を用いて「システム」を含む文書を決定し、その文書が、＃ａｎｄ（シス，ステ，テム）で「システム」を含む候補かを判定し、満たしていなければ＃ｄｉｓｔａｎｃｅ［２］シス，テム）で「システム」を含むための位置条件を満たしているか判定するという手順で該当文書かを決定できる。この手順が本願の第１７の実施形態であり、位置条件を満たしているか判断する回数が少なくなるので、検索処理を高速化できる。
【００６７】
複数の索引語に分割される検索語を集合和演算子で合成したような検索条件の場合を考える。例えば、第１の実施形態の方法（ｎ＝２）で索引を作成しているとき、＃ｏｒ（プリンタ，システム）という検索条件からは＃ｏｒ＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ），＃ｄｉｓｔａｎｃｅ［２］シス，テム））という検索条件木が作成される。
【００６８】
このとき、上記特願平１０−２５６９４号の請求項８・請求項９あるいは請求項１１・請求項１２の方法であれば、例えば、＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ）に対しては＃ａｎｄ（プリ，リン，ンタ）、＃ｄｉｓｔａｎｃｅ［２］（シス，テム）に対しては＃ａｎｄ（シス，ステ，テム）が候補決定用条件として設定される。この検索条件木は以下のように評価できる。まず、「プリンタ」に該当する文書を＃ａｎｄ（プリ，リン，ンタ）および＃ｄｉｓｔａｎｃｅ［２］（プリ，ンタ）を用いて決定する。次に、「システム」に該当する文書を＃ａｎｄ（シス，ステ，テム）および＃ｄｉｓｔａｎｃｅ［２］（シス，テム）を用いて決定する。そして最後に両者の集合和を求める。
【００６９】
ところが、「システム」に該当する文書を決定する際には、「プリンタ」に該当する文書はすでに検索結果に含まれることが判定済みなので、「システム」に該当するかを正確に判断する必要がない。したがって、上の説明における２番目の処理は、＃ａｎｄ（シス，ステ，テム）で「システム」を含む候補文書を決定し、その文書が「プリンタ」に該当していなければ＃ｄｉｓｔａｎｃｅ［２］（シス，テム）で「システムを含むための位置条件を満たしているかを判定し、満たしていれば結果集合に追加するが、その文書が「プリンタ」に該当していれば位置条件の判定は不要で次の候補文書の決定に進むこととできる。この処理を実現するのが、本願の第１８の実施形態であり、この方法では、子ノードに対して位置条件を判断する回数が削減できるので、検索処理が高速化される。
【図面の簡単な説明】
【００７０】
【図１】本発明による文書検索システムの概要を示すブロック図である。
【図２】第１の実施形態を説明するための表である。
【図３】第２の実施形態を説明するための表である。
【図４】第１０の実施形態を説明するための表である。
【符号の説明】
【００７１】
１…文書分割手段、２…索引、３…検索語分割手段、４…検索条件解析手段、５…検索条件評価手段。
【図１】
2007213606.tif 000003
【図２】
2007213606.tif 000004
【図３】
2007213606.tif 000005
【図４】
2007213606.tif 000006