(57)【特許請求の範囲】
【請求項１】
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段と、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを生成する生成手段とを備え、
前記生成手段は、前記保持手段に保持された前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外することを特徴とする情報処理装置。
【請求項２】
与えられた検索文字列を前記生成手段で生成されたインデックスに登録された文字位置順位に基づいて検索する検索手段を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段と、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスから、与えられた検索文字列を検索する検索手段とを備え、
前記検索手段は、前記第１属性を有する除外文字を文字位置順位を与えずに前記検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて前記インデックスを検索することを特徴とする情報処理装置。
【請求項４】
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段と、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを生成する生成処理を実行し、該生成処理において前記保持手段に保持された前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外する生成手段と、
前記生成手段で生成したインデックスから、与えられた検索文字列を検索する検索処理を実行し、該検索処理において、前記第１属性を有する除外文字を文字位置順位を与えずに前記検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて前記検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて前記インデックスを検索する検索手段とを備えることを特徴とする情報処理装置。
【請求項５】
前記生成手段は、
検索対象データ中の各文字を指示するための第１カウンタと、
検索対象データ中の各文字に付与すべき文字位置順位を表す第２カウンタと、
前記第１カウンタと前記第２カウンタを増加させながら、該第１カウンタが指示する文字の文字位置として該第２カウンタのカウント値を登録する登録手段と、
前記第１カウンタで指示された文字が前記第１属性を有する除外文字であった場合、前記登録手段を禁止するとともに前記第１カウンタのみを増加させる第１除外手段と、
前記第２カウンタで指示された文字が前記第２属性を有する除外文字であった場合、前記登録手段を禁止するとともに前記第１及び第２カウンタを増加させる第２除外手段とを備えることを特徴とする請求項１、２または４のいずれかに記載の情報処理装置。
【請求項６】
前記検索文字列に前記保持手段に保持されている除外文字列が含まれている場合にその旨を通知する通知手段を更に備えることを特徴とする請求項３または４に記載の情報処理装置。
【請求項７】
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を記憶装置が保持する保持工程と、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを処理装置が生成する生成工程とを備え、
前記生成工程では、前記処理装置が、前記保持工程において前記記憶装置に保持された前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外することを特徴とする情報処理方法。
【請求項８】
前記処理装置が、与えられた検索文字列を前記生成工程で生成されたインデックスに登録された文字位置順位に基づいて検索する検索工程を更に備えることを特徴とする請求項７に記載の情報処理方法。
【請求項９】
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を記憶装置が保持する保持工程と、
処理装置が、検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスから、与えられた検索文字列を検索する検索工程とを備え、
前記検索工程では、前記処理装置が、前記第１属性を有する除外文字を文字位置順位を与えずに前記検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて前記検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて前記インデックスを検索することを特徴とする情報処理方法。
【請求項１０】
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を前記記憶装置が保持する保持工程と、
処理装置が、検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを生成する生成処理を実行し、該生成処理において前記記憶装置が保持する前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外する生成工程と、
前記処理装置が、前記生成工程で生成したインデックスから、与えられた検索文字列を検索する検索処理を実行し、該検索処理において、前記第１属性を有する除外文字を文字位置順位を与えずに前記検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて前記検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて前記インデックスを検索する検索工程とを備えることを特徴とする情報処理方法。
【請求項１１】
前記生成工程は、
前記処理装置が、検索対象データ中の各文字を指示するための第１カウンタと、検索対象データ中の各文字に付与すべき文字位置順位を表す第２カウンタとを増加させながら、該第１カウンタが指示する文字の文字位置として該第２カウンタのカウント値を登録する登録工程と、
前記処理装置が、前記第１カウンタで指示された文字が前記第１属性を有する除外文字であった場合、前記登録工程を禁止するとともに前記第１カウンタのみを増加させる第１除外工程と、
前記処理装置が、前記第２カウンタで指示された文字が前記第２属性を有する除外文字であった場合、前記登録工程を禁止するとともに前記第１及び第２カウンタを増加させる第２除外工程とを備えることを特徴とする請求項７、８及び１０のいずれかに記載の情報処理方法。
【請求項１２】
前記処理装置が、前記検索字列に前記記憶装置に保持された除外文字列が含まれている場合にその旨を通知する通知工程を更に備えることを特徴とする請求項９または１０に記載の情報処理方法。
【請求項１３】
検索対象データから文字列検索用のインデックスを生成する機能をコンピュータに実現させるための制御プログラムを格納するコンピュータ可読メモリであって、該制御プログラムは、コンピュータを、
前記検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを生成する生成手段と、
前記生成手段において、第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段を参照し、前記保持手段に保持されている前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外する除外手段として機能させることを特徴とするコンピュータ可読メモリ。
【請求項１４】
検索対象データに与えられた文字列が存在するか否かを検索する機能をコンピュータに実現させるための制御プログラムを格納するコンピュータ可読メモリであって、該制御プログラムは、コンピュータを、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスから、前記与えられた検索文字列を検索する検索手段と、
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段を参照し、前記保持手段に保持されている前記第１属性を有する除外文字を文字位置順位を与えずに前記検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて前記検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて、前記検索手段に前記インデックスの検索を実行させる除外手段として機能させることを特徴とするコンピュータ可読メモリ。
【請求項１５】
検索対象データに与えられた文字列が存在するか否かを検索する機能をコンピュータに実現させるための制御プログラムを格納するコンピュータ可読メモリであって、該制御プログラムは、コンピュータを、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを生成する生成処理を実行し、該生成処理において、第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段を参照して、前記保持手段に保持された前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外する生成手段と、
前記生成手段で生成したインデックスから、与えられた検索文字列を検索する検索処理を実行し、該検索処理において、前記第１属性を有する除外文字を文字位置順位を与えずに該検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて前記インデックスを検索する検索手段として機能させることを特徴とするコンピュータ可読メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、指定された検索語を含むテキストを検索する情報処理装置及び方法に関し、特に文字位置インデックス方式を用いたテキスト検索を行なう情報処理装置及び方法に関するものである。
【０００２】
【従来の技術】
文書中の全てのテキストを対象として与えられた検索キーを含む文書を検索する全文検索装置などのテキスト検索装置では、大量のテキストを高速に検索するために、検索対象文書のインデックスを予め作成して、インデックスを用いて検索を行なうインデックス技術が利用されている。
【０００３】
インデックス技術の一例として、特開平４-２０５５６０号公報では、文字位置インデックス技術について述べられている。文字位置インデックス技術の基本的な考え方は、被検索テキスト中に出現する文字および文字列の位置を文字ごとに１ずつ増加する整数で表わすことにある。よって、各文字および文字列ごとに、当該文字および文字列をキーとして、当該文字および文字列が現れる全ての位置を列挙するインデックス（文字位置インデックス）を用いて検索が行なわれる。
【０００４】
このインデックスにおいて、ある検索文字列を被検索テキストから検索する場合には、当該検索文字列をインデックスのキーとなっている文字および文字列に分解し、分解した文字および文字列の位置関係が、当該検索文字列における位置関係に一致する組合せを探すことで検索を行なう。
【０００５】
図５は、この従来例の装置の基本構成を示すブロック図である。同図において、５０１は、被検索テキストを保持する被検索テキスト保持部である。５０２は、被検索テキスト保持部501に保持されている被検索テキストに対して、被検索テキスト中の文字ごとに、被検索テキストの文書番号と被検索テキスト中での当該文字の位置とを列挙したインデックスを作成するインデックス作成部である。５０３は、インデックス作成部５０２で作成したインデックスを保持するインデックス保持部である。５０４は、検索を行なう文字列を保持する検索文字列保持部である。５０５は、インデックス保持部503に保持されているインデックスを用いて、検索文字列保持部５０４に保持されている検索文字列に一致する被検索テキスト中の文字列を検索する検索部である。５０６は、検索部による検索結果を保持する検索結果保持部である。
【０００６】
次に、図６を参照してインデックス作成処理を説明する。ステップＳ６０１では、カウンタｃの初期化を行なう。このカウンタｃは、処理の対象となっている文字の位置を示すもので、ここではこれを０に初期化する。そしてステップＳ６０２に移る。
【０００７】
ステップＳ６０２では、ポインタｐの初期化を行なう。ポインタｐは、処理の対象となっている文字を指し示すもので、これを被検索テキストの先頭文字に初期化する。そしてステップＳ６０３に移る。
【０００８】
ステップＳ６０３では、ポインタｐが被検索テキストの最後に達したか否かを判定して、達した場合はインデックス作成処理を終了する。達していない場合は、ステップＳ６０４に移る。
【０００９】
ステップＳ６０４では、ポインタｐが示す位置にある文字について、インデックスの当該文字の位置リストにカウンタｃの値を追加する。そしてステップＳ６０５に移る。ステップＳ６０５では、カウンタｃの値を１増やす。そしてステップＳ６０６に移る。ステップＳ６０６では、ポインタｐが次の文字を指すようにする。そしてステップＳ６０３に戻る。
【００１０】
この処理により、例えば、図８に示す文書に対して、図９に示すインデックスが作成される。ここでは、全角スペースを「□」、改行文字を「\n」で表している。なお、図８および図９では、いくつかの文字以外については表示を省略している。図９の各行が、各文字が現れる位置のリストとなっている。例えば、文字「文」は、位置１０、１７、３２、…に出現している。
【００１１】
次に、図７のフローチャートを参照して、従来例における検索処理の概要を説明する。ステップＳ７０１では、検索文字列保持部５０４に保持されている検索文字列の長さをＬに代入する。また、ｎに１を代入する。例えば、検索文字列が「全文検索」である場合は、Ｌ＝４、ｎ＝１となる。そしてステップＳ７０２に移る。
【００１２】
ステップＳ７０２では、検索文字列保持部５０４に保持されている検索文字列の１番目の文字について、インデックスの読み込みを行なう。当該文字の文書番号と文字位置の組を全て配列１に読み込む。そしてステップＳ７０３に移る。図１２は、図９に示したインデックスを用いて検索文字列「全文検索」を検索しているときの上記配列１の状態を示している。
【００１３】
ステップＳ７０３では、変数Ｌとｎを比較し、ｎ＜Ｌである場合は、ステップＳ７０４に移る。ｎ≧Ｌである場合は、ステップＳ７０７に移る。
【００１４】
ステップＳ７０４では、ｎの値を１増やす。そしてステップＳ７０５に移る。ステップＳ７０５では、検索文字列保持部５０４に保持されている検索文字列のｎ番目の文字について、インデックスの読み込みを行なう。そして、当該文字の全ての文字位置から（ｎ−１）を減じた値を配列２に読み込む。そしてステップＳ７０６に移る。
【００１５】
ステップＳ７０６では、配列１と配列２から、配列１と配列２の両方に存在している値を全て取り出し、これらの値だけを新たに配列１の値とする。そしてステップＳ７０３に戻る。図１３は、先に示した検索例におけるｎ＝３のときの配列１の状態を示している。
【００１６】
ステップＳ７０７では、配列１が空でなければ、検索文字列が検索されたことを示す値として１を検索結果保持部５０６に保持する。また、配列１が空の場合は、検索文字列が検索されなかったことを示す値として０を検索結果保持部５０６に保持する。そして全ての処理を終了する。
【００１７】
この処理の結果、先の例では検索文字列「全文検索」を検索すると、位置３１に当該文字列があるので、このテキストが検索されることになる。
【００１８】
【発明が解決しようとする課題】
しかしながら、上記従来の装置では、被検索テキストの全ての文字についてインデックスを作成しているので、被検索テキストの文字列中に文書整形のための改行文字や空白文字などが挿入されている場合には、その部分の文字列は検索されないという欠点があった。例えば、図９に示したインデックスを用いて「対象」を検索すると、「対」の文字位置が０、「象」の文字位置が３なので、このテキストは検索されない。
【００１９】
一方、改行文字や空白文字などを全て読み飛ばしてインデックスを作成すると、文字列間の区切りを表すような文字までも読み飛ばしてしまい、前後の文字列が連続することになり、誤検索の原因となる。例えば、図８に示す文書に対して改行文字と空白文字を読み飛ばしてインデックスを作成すると、図１０に示すインデックスが得られる。このインデックスを用いて「全文検索」を検索すると、位置７、２８に当該文字列があることになってしまう。
【００２０】
本発明は上記の問題に鑑みてなされたものであり、インデックス生成に際して文字位置の順位を与えずにインデックスへの登録対象から除外される文字と、文字位置の順位を与えてインデックスへの登録対象から除外される文字とを指定することを可能とし、被検索テキストの形式と検索意図に応じたインデックスの作成を可能とする情報処理装置及び方法を提供することを目的とする。
【００２１】
また、本発明の他の目的は、検索に際して与える検索文字列に関して、文字位置の順位を与えずに検索文字列から除外される文字と、文字位置の順位を与えて検索文字列から除外される文字とを指定することを可能とし、被検索テキストの形式や検索意図に応じた検索を可能とする情報処理装置及び方法を提供することにある。
【００２２】
【課題を解決するための手段】
上記の目的を達成するための本発明の情報処理装置は、
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段と、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを生成する生成手段とを備え、
前記生成手段は、前記保持手段に保持された前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外することを特徴とする。
【００２３】
また、上記の目的を達成するための本発明の他の構成の情報処理装置は、
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段と、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスから、与えられた検索文字列を検索する検索手段とを備え、
前記検索手段は、前記第１属性を有する除外文字を文字位置順位を与えずに前記検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて前記インデックスを検索することを特徴とする。
【００２４】
更に上記の目的を達成する本発明の他の構成の情報処理装置は、
第１属性もしくは第２属性のいずれかを有する１つ以上の除外文字を保持する保持手段と、
検索対象データの各文字について当該検索対象データにおける文字位置順位を登録したインデックスを生成する生成処理を実行し、該生成処理において前記保持手段に保持された前記第１属性を有する除外文字を文字位置順位を与えずに前記インデックスへの登録対象から除外し、前記第２属性を有する除外文字を文字位置順位を与えて該インデックスへの登録対象から除外する生成手段と、
前記生成手段で生成したインデックスから、与えられた検索文字列を検索する検索処理を実行し、該検索処理において、前記第１属性を有する除外文字を文字位置順位を与えずに前記検索文字列から除外し、前記第２属性を有する除外文字を文字位置順位を与えて前記検索文字列から除外することにより得られる前記検索文字列の除外文字を除く各文字の文字位置順位を用いて前記インデックスを検索する検索手段とを備える。
【００２５】
また、本発明によれば、上記各情報処理装置によって実現される情報処理方法が提供される。
【００２６】
また、本発明によれば、上記情報処理装置の構成を実現する制御プログラムを格納したコンピュータ可読メモリが提供される。
【００２７】
【発明の実施の形態】
以下、添付の図面を参照して本発明の好適な一実施形態を詳細に説明する。
【００２８】
図１は、本実施形態のテキスト検索装置の機能構成を示すブロック図である。同図において、１０１は、被検索テキストを保持する被検索テキスト保持部である。１０２は、読み飛ばし文字と非作成文字を保持するスキップ文字保持部である。１０３は、インデックス作成部であり、被検索テキスト保持部１０１に保持されている被検索テキストに関して、スキップ文字保持部１０２に保持されている読み飛ばし文字と非作成文字を参照して、被検索テキスト中の文字ごとに、被検索テキスト中での当該文字の位置を列挙したインデックスを作成する。
【００２９】
１０４は、インデックス作成部１０３で作成したインデックスを保持するインデックス保持部である。１０５は、検索を行なう文字列を保持する検索文字列保持部である。１０６は、インデックス保持部１０４に保持されているインデックスを用いて、スキップ文字保持部１０２に保持されている読み飛ばし文字と非作成文字を参照して、検索文字列保持部１０５に保持されている検索文字列に一致する文字列を検索する検索部である。１０７は、検索部１０６による検索結果を保持する検索結果保持部である。
【００３０】
図２は、本実施形態に係るテキスト検索装置のハードウェア構成の概要を示すブロック図である。同図において、２０１は後述する制御手順を実現するプログラムを保持するＲＯＭである。２０２はＲＡＭで、上述した、被検索テキスト保持部１０１、検索文字列保持部１０５、検索結果保持部１０７と、上記プログラムの動作に必要な記憶領域とを提供する。２０３はＲＯＭ２０１に保持されているプログラムに従って処理を行なう中央処理装置である。２０４はディスク装置であり、インデックス保持部１０４、スキップ文字保持部１０２を実現する。２０５はバスであり、上記の各構成を接続し、各構成間におけるデータの授受を可能とする。
【００３１】
また、２０６はキーボードであり、テキスト検索装置へのユーザによる各種入力を行なう。なお、キーボード２０６を介して所定の操作を行なうことにより、スキップ文字保持部１０２に読み飛ばし文字と非作成文字とを設定することが可能である。また、２０７はディスプレイであり、中央処理装置２０３の制御により、検索結果等、各種の表示を行なう。また、出力装置としてのプリンタや、ネットワーク等への接続を可能とする構成を設けてもよいことはいうまでもない。
【００３２】
なお、後述の図３、図４のフローチャートで説明される制御手順を実現するための制御プログラムはＲＯＭ２０１に格納されるものとするがこれに限らない。例えば、ディスク２０４等の外部記憶装置に制御プログラムを格納しておき、これをＲＡＭ２０２にロードして中央処理装置２０３が実行するように構成してもよいことは明らかである。
【００３３】
次に、本装置の動作を説明する。本実施形態の処理は、インデックスの作成処理と検索処理に大きく分かれる。まず、本実施形態のテキスト検索装置におけるインデックス作成処理の手順を説明する。図３は、本実施形態のテキスト検索装置におけるインデックス作成処理を説明するフローチャートである。また、図１１は本実施形態のインデックス作成処理にて図８の文書例を処理した場合に生成されるインデックスの一部を示す図である。なお、以下で説明するインデックス作成処理はインデックス作成部１０３によって実行されるものである。
【００３４】
ステップＳ３０１では、カウンタｃの初期化を行なう。カウンタｃは、処理の対象となっている文字の位置を示すもので、これを０に初期化する。そしてステップＳ３０２に移る。ステップＳ３０２では、ポインタｐの初期化を行なう。ポインタｐは、処理の対象となっている文字を指し示すもので、これを非検索テキスト保持部１０１に保持された被検索テキストの先頭文字に初期化する。そしてステップＳ３０３に移る。
【００３５】
ステップＳ３０３では、ポインタｐが被検索テキストの最後に達したか否かを判定して、最後に達した場合は当該インデックス作成処理を終了する。一方、達していなければ、処理はステップＳ３０４に移る。ステップＳ３０４では、ポインタｐが示す位置にある文字が読み飛ばし文字か否かを判定して、読み飛ばし文字の場合は、ステップＳ３０８に移る。読み飛ばし文字でない場合は、ステップＳ３０５に移る。
【００３６】
ステップＳ３０５では、ポインタｐが示す位置にある文字が非作成文字か否かを判定して、非作成文字の場合は、ステップＳ３０７に移る。非作成文字でない場合は、ステップＳ３０６に移る。ステップＳ３０６では、ポインタｐが示す位置にある文字について、インデックスの当該文字の位置リストにカウンタｃの値を追加する。そしてステップＳ３０７に移る。ステップＳ３０７では、カウンタｃの値を１増やす。そしてステップＳ３０８に移る。ステップＳ３０８では、ポインタｐが次の文字を指すようにする。そしてステップＳ３０３に戻る。
【００３７】
以上の処理により、例えば、図８に示す文書に対して、空白文字を読み飛ばし文字、改行文字を非作成文字とすると、図１１に示すインデックスが作成される。図１１の各行が、各文字が現れる位置のリストとなっている。また、空白文字と改行文字のインデックスは作成されず、空白文字の前後の文字の位置の差は１、改行文字の前後の文字の位置の差は２となっている。このインデックスを用いて、検索文字列「対象」を検索すると、位置０に当該文字列があるので、このテキストが検索されことになる。以上のようにして作成されたインデックスはインデックス保持部１０４によってＲＡＭ２０２の適当なエリアに保持される。
【００３８】
次に、本実施形態における検索処理の概要を説明する。図４は本実施形態による検索処理の手順を説明するフローチャートである。
【００３９】
ステップＳ４０１では、検索文字列保持部１０５に保持されている検索文字列の長さをＬに代入する。また、ｎに１、ｍに０を代入する。なお、ｍは検索文字列中の読み飛ばし文字の数を表す。次に、ステップＳ４０２では、検索文字列保持部１０５に保持されている検索文字列の１番目の文字についてインデックスの読み込みを行ない、当該文字の文字位置を全て配列１に読み込む。そしてステップＳ４０３に移り、変数Ｌとｎを比較する。この結果、ｎ＜Ｌである場合はステップＳ４０４に移る。また、ｎ≧Ｌである場合は、ステップＳ４１０に移る。
【００４０】
ステップＳ４０４では、ｎの値を１増やす。そしてステップＳ４０５に移る。ステップＳ４０５では、検索文字列保持部１０５に保持されている検索文字列のｎ番目の文字が、スキップ文字保持部１０２に保持された非作成文字であるか否かを判定する。判定の結果、非作成文字の場合はステップＳ４０３に戻る。また、当該文字が非作成文字でない場合は、ステップＳ４０６に移る。
【００４１】
ステップＳ４０６では、検索文字列保持部１０５に保持されている検索文字列のｎ番目の文字が、スキップ文字保持部１０２に保持された読み飛ばし文字か否かを判定する。この判定の結果、読み飛ばし文字の場合はステップＳ４０７に移り、読み飛ばし文字でない場合はステップＳ４０８に移る。
【００４２】
ステップＳ４０７では、ｍの値を１増やす。そしてステップＳ４０３に戻る。
【００４３】
さて、当該ｎ文字目が非作成文字でも読み飛ばし文字でも無い場合はステップＳ４０８へ進む。ステップＳ４０８では、検索文字列保持部１０５に保持されている検索文字列のｎ番目の文字について、インデックスの読み込みを行なう。そして、当該ｎ番目の文字について検索された全ての文字位置から（ｎ−ｍ−１）を減じた値を配列２に読み込む。ステップＳ４０９では、配列１と配列２から、配列１と配列２の両方に存在している値を全て取り出し、これらの値だけを新たに配列１の値とする。そしてステップＳ４０３に戻る。
【００４４】
以上のようにして、検索文字列の全ての文字について処理を終えると、処理はステップＳ４０３からＳ４１０へ進む。ステップＳ４１０では、配列１が空でなければ、検索キーが検索されたことを示す値として１を検索結果保持部１０７に保持する。配列１が空の場合は、検索キーが検索されなかったことを示す値として０を検索結果保持部１０７に保持する。そして全ての処理を終了する。
【００４５】
以上説明したように、本実施形態によれば、文字位置を増やさずにスキップする読み飛ばし文字と、文字位置を増やしてスキップする非作成文字を指定することが可能となるので、被検索テキストの文書形式と検索意図とに応じたインデックスの作成と検索が行なえるようになる。
【００４６】
なお、上記検索処理では、検索文字列に読み飛ばし文字や非作成文字が存在するか否かで処理を変更するが、検索文字列に読み飛ばし文字や非作成文字が含まれないという前提のもとであれば、一般的な検索処理を適用できることはいうまでもない。
【００４７】
＜他の実施形態＞
（１）上記実施形態においては、インデックスの作成と検索を同一装置で行なう場合について説明したが、これに限定されるものではなく、例えばインデックスの作成だけを行なう装置、検索だけを行なう装置というように分離させても良い。
【００４８】
図１４はインデックスの作成を行なう装置の基本的な機能構成を示すブロック図である。図１４において、１４０１は、被検索テキストを保持する被検索テキスト保持部である。１４０２は、読み飛ばし文字と非作成文字を保持するスキップ文字保持部である。１４０３は、被検索テキスト保持部１４０１に保持されている被検索テキストに対して、スキップ文字保持部１４０２に保持されている読み飛ばし文字と非作成文字を参照して、被検索テキスト中の文字ごとに、被検索テキスト中での当該文字の位置を列挙したインデックスを作成するインデックス作成部である。１４０４は、インデックス作成部１４０３で作成したインデックスを保持するインデックス保持部である。インデックス保持部１４０４に保持されたインデックスと、スキップ文字保持部１４０２に保持された読み飛ばし文字と非作成文字は、通信回線を通したり、可搬記録媒体によって他の装置に移されて検索が行なわれる。
【００４９】
なお、インデックス作成の手順は、図３のフローチャートで説明したとおりであるので、ここでは説明を省略する。
【００５０】
（２）次に、上述の（１）ようにして提供されたインデックスを用いて検索を行なう装置を説明する。図１５はこの場合の基本的な機能構成を示すブロック図である。図１５において、１５０１は、図１４に示す装置で作成されたインデックスを保持するインデックス保持部である。１５０２は、図１４に示す装置でインデックスを作成する際に用いた読み飛ばし文字と非作成文字を保持するスキップ文字保持部である。１５０３は検索を行なう文字列を保持する検索文字列保持部である。１５０４は、インデックス保持部１５０１に保持されているインデックスを用いて、スキップ文字保持部１５０２に保持されている読み飛ばし文字と非作成文字を参照して検索文字列保持部１５０３に保持されている検索文字列に一致する文字列を検索する検索部である。１５０５は、検索部１５０４による検索結果を保持する検索結果保持部である。
【００５１】
インデックス保持部１５０１とスキップ文字保持部１５０２には、上記実施形態の手順で作成されたインデックスと読み飛ばし文字及び非作成文字が、通信回線或いは可搬記録媒体等を介して提供され、保持される。
【００５２】
なお、検索処理の手順は図４のフローチャートを参照して説明したとおりであるので、ここでは説明を省略する。
【００５３】
（３）また、上記実施形態では、インデックスのキーとして１文字を用いる場合について説明したが、これに限定されるものではなく、任意の長さの文字列を用いてもよい。
【００５４】
（４）また、上記実施形態では、検索文字列の先頭文字から順次処理を行なう場合について説明したが、これに限定されるものではなく、検索語の任意の文字から検索を行なってもよい。
【００５５】
（５）また、上記実施形態では、検索時に１つのインデックスを使用するよう説明しているが、別々に作成された複数のインデックスを同時に検索できるように構成しても良い。この場合、複数のインデックスで同じ語を検索したい場合において、１つずつインデックスを検索対象に設定して検索条件を指定するという手間を省くことができる。
【００５６】
（６）また、上記実施形態では、読み飛ばし文字と非作成文字として各１文字を指定する場合について説明したが、これに限定されるものではなく、読み飛ばし文字と非作成文字のそれぞれについて複数の文字を指定してもよい。
【００５７】
（７）また、上記実施形態では、読み飛ばし文字と非作成文字として文字を指定する場合について説明したが、これに限定されるものではなく、任意の長さの文字列を読み飛ばし文字列あるいは非作成文字列として指定してもよい。また、非作成文字と読み飛ばし文字の例として「スペース」、「改行」をあげたが、このほかに「タブ」、「キャリッジリターン」等のスペースや改行に相当するものや、「：」「（」等、検索語として指定されないような文字（記号）も非作成文字や読み飛ばし文字として設定可能である。属性情報（上付き，下付き等）もスキップ文字として設定可能であるが、その情報を含んだ検索語の正しい検索が行なえなくなる可能性がある。
【００５８】
（８）また、上記実施形態では、インデックス作成時に指定された読み飛ばし文字と非作成文字を検索時にも参照し、検索文字列中の読み飛ばし文字と非作成文字に関してインデックスの読み込みを行なわないように説明している。しかしながら、読み飛ばし文字と非作成文字を参照せずに従来通りの検索を行なって、検索文字列中に読み飛ばし文字や非作成文字が含まれている場合には検索できないようにすることもできる。
【００５９】
（９）また、上記実施形態では、インデックス作成時に指定された読み飛ばし文字と非作成文字を検索時にも参照し、検索文字列中の読み飛ばし文字と非作成文字に関してインデックスの読み込みを行なわないように説明しているが、検索文字列中に読み飛ばし文字と非作成文字が含まれている場合にはその旨を通知するように構成することもできる。
【００６０】
（１０）また、上記実施形態においては、被検索テキスト保持部１０１、検索文字列保持部１０５、検索結果保持部１０７をＲＡＭ２０２で、インデックス保持部１０４、スキップ文字保持部１０２をディスク装置２０４で実現するように説明した。しかしながら、これに限定されるものではなく、任意の記憶媒体を用いて実現してもよいことは明らかである。
【００６１】
（１１）また、上記実施形態においては、図１、図１４、図１５で示される各機能ブロックを同一の計算機上で構成する場合について説明したが、これに限定されるものではない。例えば、ネットワーク上に分散した計算機や処理装置などに分かれて各ブロックを構成するようにしてもよい。
【００６２】
（１２）また、上記実施形態においては、プログラムをＲＯＭ２０１に保持する場合について説明したが、これに限定されるものではなく、任意の記憶媒体を用いて実現してもよい。また、上記実施形態で説明した制御動作を実現する回路で構成されてもよい。
【００６３】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
【００６４】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００６５】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６６】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６７】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６８】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６９】
【発明の効果】
以上説明したように本発明によれば、インデックス生成に際して文字位置の順位を与えずにインデックスへの登録対象から除外される文字と、文字位置の順位を与えてインデックスへの登録対象から除外される文字とを指定することが可能となり、被検索テキストの形式と検索意図に応じたインデックスの作成が可能となる。
【００７０】
また、本発明によれば、検索に際して与える検索文字列に関して、文字位置の順位を与えずに検索文字列から除外される文字と、文字位置の順位を与えて検索文字列から除外される文字とを指定することが可能となり、被検索テキストの形式や検索意図に応じた検索が可能となる。
【００７１】
【図面の簡単な説明】
【図１】本実施形態のテキスト検索装置の機能構成を示すブロック図である。
【図２】本実施形態に係るテキスト検索装置のハードウェア構成の概要を示すブロック図である。
【図３】本実施形態のテキスト検索装置におけるインデックス作成処理を説明するフローチャートである。
【図４】本実施形態による検索処理の手順を説明するフローチャートである。
【図５】従来例の装置の基本構成を示すブロック図である。
【図６】従来の装置例におけるインデックス作成処理の概要を示すフローチャートである。
【図７】従来の装置例における検索処理の概要を示すフローチャートである。
【図８】被検索テキストの例を示す図である。
【図９】従来の装置例におけるインデックスの例を示す図である。
【図１０】従来の装置例におけるインデックスの例を示す図である。
【図１１】本実施形態のインデックス作成処理にて図８の文書例を処理した場合に生成されるインデックスの一部を示す図である。
【図１２】従来の装置例における検索処理の途中の状態を示す図である。
【図１３】従来の装置例における検索処理の途中の状態を示す図である。
【図１４】他の実施形態における、インデックスの作成を行なう装置の基本的な機能構成を示すブロック図である。
【図１５】他の実施形態における、検索を行なう装置の基本的な機能構成を示すブロック図である。
【符号の説明】
１０１、５０１  被検索テキスト保持部
１０２  スキップ文字保持部
１０３、５０２  インデックス作成部
１０４、５０３  インデックス保持部
１０５、５０４  検索文字列保持部
１０６、５０５  検索部
１０７、５０６  検索結果保持部
【図１】
0003825873.tif 000002
【図２】
0003825873.tif 000003
【図３】
0003825873.tif 000004
【図４】
0003825873.tif 000005
【図５】
0003825873.tif 000006
【図６】
0003825873.tif 000007
【図７】
0003825873.tif 000008
【図８】
0003825873.tif 000009
【図９】
0003825873.tif 000010
【図１０】
0003825873.tif 000011
【図１１】
0003825873.tif 000012
【図１２】
0003825873.tif 000013
【図１３】
0003825873.tif 000014
【図１４】
0003825873.tif 000015
【図１５】
0003825873.tif 000016