JP2006179019A - 文書検索装置 - Google Patents
文書検索装置 Download PDFInfo
- Publication number
- JP2006179019A JP2006179019A JP2006007929A JP2006007929A JP2006179019A JP 2006179019 A JP2006179019 A JP 2006179019A JP 2006007929 A JP2006007929 A JP 2006007929A JP 2006007929 A JP2006007929 A JP 2006007929A JP 2006179019 A JP2006179019 A JP 2006179019A
- Authority
- JP
- Japan
- Prior art keywords
- signature
- search
- character string
- document
- processing 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.)
- Pending
Links
Images
Landscapes
- Machine Translation (AREA)
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】複数の検索文字列を含む条件式を用いて文書を検索する際の検索の高速化が図れるようにする。
【解決手段】複数の検索文字列が含まれる条件式に基づいて文字列を検索する際に、条件式に含まれる全ての検索文字列のシグネチャーを摘出し、各シグネチャーの値が1であるビットに応じてビットスライスされたビットマップを走査するカーソルを用意し、そのカーソルを条件式の内容に従って並行に走査させながら検索する。これにより、条件式に含まれる検索文字列が増えても、シグネチャーファイルを一回走査するだけで検索結果を求めることが可能となり、検索の高速化を図ることができる。
【選択図】 図3
【解決手段】複数の検索文字列が含まれる条件式に基づいて文字列を検索する際に、条件式に含まれる全ての検索文字列のシグネチャーを摘出し、各シグネチャーの値が1であるビットに応じてビットスライスされたビットマップを走査するカーソルを用意し、そのカーソルを条件式の内容に従って並行に走査させながら検索する。これにより、条件式に含まれる検索文字列が増えても、シグネチャーファイルを一回走査するだけで検索結果を求めることが可能となり、検索の高速化を図ることができる。
【選択図】 図3
Description
本発明は、文書検索装置に係り、さらに詳しくは、シグネチャーファイルを利用して指定された文字列を含む文書を検索する文書検索装置に関する。
従来より、英文や日本文などの複数の文字種を扱って文書の作成・編集などを行うものとしてワードプロセッサや、ワープロソフトを使ったパーソナルコンピュータなどがあり、これらの装置に入力された文書データ中の部分文字列を検索するものとして文書検索装置が用いられている。
この種の文書検索装置としては、例えば、特開平7−244671号公報に記載された文書検索装置があり、ある文字列から一定の方法で摘出される2進数によるビットパターンのシグネチャーを用いることによって文書検索が行われていた。このシグネチャーの2進数のビットパターンにおいて「1」がセットされるビットの位置は、文字列を構成する文字や単語を数値化し、その値を0からビット位置の最大値までの値にハッシングすることにより得ている。例えば、文字列として「コピー」があったとすると、「コ」、「ピ」、「ー」を文字コードを用いて「5」、「7」、「12」と数値化できたとすると、その数値がビット位置を示し、ビットが「5」と「7」と「12」番目の位置に「1」が立つことになり、「000010100001」のようになる。この0と1のパターンがビットマップ(ビットパターン)と称され、このビットマップによって構成されるものがシグネチャーである。
シグネチャーの摘出方法については、非特許文献1に記載されている。この非特許文献1によれば、文書データを構成する単語ごとにワードシグネチャーと称されるシグネチャーを作り、それらをスーパーインポーズしたものを文書データのシグネチャーとするものである。ここで、スーパーインポーズとは、複数のシグネチャーにおいて同じ位置のビットの値の論理和をとり、各論理和の値の列を新たなシグネチャーとして摘出する操作のことである。
また、単語を構成する部分文字列の検索もできるようにするために、文書データに重複部分を持たせながら一定の文字数の文字列に分割して、上記したワードシグネチャーと同様に各文字列のシグネチャーをスーパーインポーズする方法がある。
また、より長い文書データを文やパラグラフなどの論理的なブロックに分割して、各ブロックから摘出される複数のシグネチャーを1つの文書に対応させる方法もある。ここで、ブロックから摘出されたシグネチャーは、ブロックシグネチャーと呼ばれている。
検索文字列を含む文書を検索するためにシグネチャーを利用する場合は、異なる文字列から同じビットパターンのシグネチャーが摘出される可能性があるので、検索結果として検索文字列を含まない文書を検出することがある。この文書は、フォルスドロップと呼ばれる。一方、検索文字列が含まれる文書は、アクチュアルドロップと呼ばれる。
従来の文書検索装置において、シグネチャーは文書ごとに摘出され、各シグネチャーはシグネチャーファイルと呼ばれるファイルに一括して格納される。シグネチャーファイルは、シグネチャーの格納方法によって2つに大別される。1つは、単にシグネチャーを順に並べて格納する方法である。この方法によるファイル構成は、シーケンシャル構成と呼ばれる。もう1つは、シグネチャーの各ビットをビット位置ごとに別々のビットマップに格納する方法である。この方法によるファイル構成は、ビットスライス構成と呼ばれる。ビットスライス構成によるシグネチャーファイルは、非特許文献2に記載されている。
また、シーケンシャル構成のシグネチャーのビットマップを圧縮する方法は、非特許文献3に記載されているように、ランレングスコーティングなどを利用する方法がある。
従来の文書検索装置では、"高速orプリンター"のように、論理演算子ANDやORでつながれた複数の検索文字列を含む条件式により検索する場合は、各検索文字列ごとにシグネチャーファイルの走査を行って、それぞれの検索結果の集合演算を行うことにより、最終的な検索結果を求めていた。
「Access Method of Text 」(Christos Faloutsos,Computing Surveys,Vol.17,No.1,March 1985,pp49〜74)
「Partial-Match Retrieval via Method of Superimposed Codes」(Charles S. Roberts, Proceedings of the IEEE. Vol.67,No.12,December,1979,pp1624〜1979)
「Description and Performance Analysis of Signature File Methods for Office Filing」(Christos Faloutsos,ACM Transaction Office Information Systems,Vol.5,No.3,July 1987,pp.237〜257 )
しかしながら、このような従来の文書検索装置にあっては、複数の検索文字列を含む条件式を用いて検索する場合、条件式に含まれる検索文字列の数が増加するに伴って走査回数が増えるため、その分検索時間が長くなり、検索性能が低下するという不都合があった。
本発明は、上記に鑑みてなされたものであって、複数の検索文字列を含む条件式を用いて文書を検索する際の検索の高速化が図れる文書検索装置を提供することを目的とする。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、2進数によるビットパターンのシグネチャーを利用して、検索文字列を含む文書データを検索する文書検索装置において、シグネチャーを摘出するシグネチャー摘出処理部と、前記文書データを所定の文字数の文字列であるブロックに分割し、前記各ブロックを構成する文字列から前記シグネチャー摘出処理部を利用してシグネチャーを摘出してブロックシグネチャーとしてシグネチャーファイルに格納する文書登録処理部と、前記検索文字列から所定の文字数の部分文字列を抽出し、前記部分文字列から前記シグネチャー摘出処理部を利用して検索文字列のシグネチャーを摘出し、当該検索文字列のシグネチャーに基づいて前記シグネチャーファイルに格納されている前記ブロックシグネチャーを検索する文書検索処理部と、を備え、前記文書検索処理部は、前記検索文字列が論理演算子でつながれた複数の検索文字列を含む条件式である場合、前記条件式に含まれる全ての前記検索文字列からシグネチャーを摘出し、摘出した前記各シグネチャーの値が1であるビットに応じてビットスライスされたビットマップをそれぞれ走査する前記各検索文字列に関連づけられているカーソルを用意し、前記各カーソルを前記条件式の内容に従って並行に走査させながら検索を行う、ことを特徴とする。
また、請求項2にかかる発明は、請求項1記載の文書検索装置において、前記カーソルは、前記検索文字列ごとに当該カーソルに応じてビットスライスされたビットマップで値が1であるビットの数が少ない順に並べられることを特徴とする。
また、請求項3にかかる発明は、請求項1記載の文書検索装置において、前記条件式は、前記検索文字列に対応づけられているリテラルが連言の選言となっている論理式の形式である連言標準形に変換しておくことを特徴とする。
また、請求項4にかかる発明は、請求項1記載の文書検索装置において、前記検索文字列に応じたプライマリーカーソルがビットスライスされたビットマップの末尾に達したときに、そのプライマリーカーソルに応じた検索文字列をリテラルとする連言を除去することを特徴とする。
請求項1にかかる発明によれば、複数の検索文字列が含まれる条件式に基づいて文字列を検索する際に、条件式に含まれる全ての検索文字列のシグネチャーを摘出して、各シグネチャーの値が1であるビットに応じてビットスライスされたビットマップを走査するカーソルを用意して、そのカーソルを条件式の内容に従って並行に走査させながら検索するため、条件式に含まれる検索文字列が増えても、シグネチャーファイルを一回走査するだけで検索結果を求めることが可能となり、複数の検索文字列を含む条件式を用いて文書を検索する際の検索の高速化を図ることができるという効果を奏する。
また、請求項2にかかる発明によれば、検索効率を向上させることができるという効果を奏する。
また、請求項3にかかる発明によれば、条件式を連言標準形にしておくことにより、連言のいずれかの真偽によって、条件式全体の真偽を判定することができるという効果を奏する。
また、請求項4にかかる発明によれば、条件式を簡略化することができるという効果を奏する。
以下、本発明の実施の形態1〜実施の形態4を図面に基づいて説明する。
まず、各実施の形態の説明に入る前に、各実施の形態に共通する文書検索装置の概略構成について説明する。図1は、本実施の形態に係る文書検索装置の概略構成を示すブロック図である。図1において、文書検索装置は、入力部1、処理部2、文字列入力処理部3、レコード識別子計算処理部4、文書検索処理部5、文書出力処理部6、格納位置計算処理部7、文書登録処理部8、シグネチャー摘出処理部9、出力部10、データ部11、シグネチャーファイル12、レコードファイル13などにより構成されている。
対象とする検索文字列および登録文書の文書データの文字コードは、ASCII(American Standard Code Information Interchange)のように、各文字のバイト数が一律1バイトの文字コードでも、EUC(Extended Unix Interchange )のように1バイト、2バイト、3バイトの文字が混在する文字コードでもよい。なお、文字列入力処理部で用いられる内部処理用の文字コードは、変換される文字コード(例えば、EUC)と同じである必要はない。また、本発明においては、EUCを用いた場合について説明する。
図1に示されるように、入力部1から入力された検索文字列および登録文書の文書データは、処理部2の文字列入力処理部3で入力用の文字コードからEUCに変換される。また、検索時にアクチュアルドロップである文書データは、文書出力処理部6でEUCから出力用の文字コードへ変換される。したがって、検索文字列および登録文書の文書データは、処理部2内では、常にEUCの文字列として処理され、文書データは、常にEUCの文字列としてデータ部11のレコードファイル13に格納される。
上記したように、本実施の形態の文書検索装置は、文書を登録および検索する機能を有し、入力部1と処理部2とデータ部11と出力部10の4つの部分から構成されている。また、前記処理部2は、文字列入力処理部3とシグネチャー摘出処理部9と文書検索処理部5とレコード識別子計算処理部4と文書出力処理部6と文書登録処理部8と格納位置計算処理部7とを備えるとともに、図示を省略したが、後述するカーソル移動処理部と条件式清算部と条件式見込み計算部とをさらに備えている。
また、前記データ部11は、シグネチャーファイル12とレコードファイル13とを備えている。文書の登録に際しては、入力部1で登録する文書データの入力を受けつけ、入力された文書データは文字列入力処理部3で所定の文字コードに変換された後、文書登録処理部8に渡される。その文書登録処理部8は、第1に、データ部11のレコードファイル13に文書データを格納する。第2に、格納位置計算処理部7を利用して、文書データを格納したレコードの識別子からシグネチャーの格納位置を計算する。第3に、文書データを一定の文字数のブロックに分割して、シグネチャー摘出処理部9を利用して各ブロックからブロックシグネチャーを摘出する。ただし、隣接するブロック同士は、一定の文字数の重複部分を有する。第4に、ブロックシグネチャーをデータ部11のシグネチャーファイル12における所定の格納位置に格納する。
また、文書の検索動作に関しては、まず、入力部1で検索文字列を受け付け、入力された検索文字列は文字列入力処理部3で所定の文字コードに変換された後、文書検索処理部5に渡される。その文書検索処理部5は、第1に、検索文字列から制限された文字数以内の部分文字列を抽出し、シグネチャー摘出処理部9を利用して、部分文字列からシグネチャーを摘出し、そのシグネチャーを検索文字列のシグネチャーとする。ここで、制限された文字数とは、登録された文書データを構成するブロック同士の重複部分の文字数のことである。第2に、検索用のシグネチャーで「1」がセットされているビットを調べ、データ部11のシグネチャーファイルにおいて、先に調べたビットに対応するビットスライスされたビットマップを参照し、検索文字列が含まれると判断されるブロックから摘出されたブロックシグネチャーの格納位置を求める。
第3に、レコード識別子計算処理部4を利用して、ブロックシグネチャーの格納位置からレコード識別子の値を求める。第4に、データ部11のレコードファイル13において、レコード識別子に対応するレコードを参照して文書データを求める。第5に、求めた文書データを文書出力処理部6に渡す。その文書出力処理部6は、渡された文書データに本当に検索文字列が含まれるかどうかを調べ、フォルスドロップを除去し、アクチュアルドロップを所定の文字コードに変換したのち、文書データを出力部10に渡す。その出力部10は、渡された文書データを出力する。
(実施の形態1)
本実施の形態1では、文書検索装置の処理部2を用いて前方一致、後方一致を条件とした文字列を検索する際に、前方一致、後方一致を条件とした下記の検索文字列p1、p2と検索対象の文字列t1、t2、t3としている。
p1="高速"
p2="プリンター"
t1="高速プリンター"
t2="首都高速道路"
t3="プリンター出力"
本実施の形態1では、文書検索装置の処理部2を用いて前方一致、後方一致を条件とした文字列を検索する際に、前方一致、後方一致を条件とした下記の検索文字列p1、p2と検索対象の文字列t1、t2、t3としている。
p1="高速"
p2="プリンター"
t1="高速プリンター"
t2="首都高速道路"
t3="プリンター出力"
これらの文字列において、先頭か末尾かを区別するための仮想的な文字を、ここでは、「^」(文字列の先頭を示す文字)と「$」(文字列の末尾を示す文字)とし、下記に示すような文字列に変換してからシグネチャーを摘出するようにする。
p1'="^高速"
p2'="プリンター$"
t1'="^高速プリンター$"
t2'="^首都高速道路$"
t3'="^プリンター出力$"
p1'="^高速"
p2'="プリンター$"
t1'="^高速プリンター$"
t2'="^首都高速道路$"
t3'="^プリンター出力$"
このように、本実施の形態1では、文字列における先頭か末尾かを区別するための仮想的な文字を含めてシグネチャーを摘出するようにしたため、上記の検索文字列p1'やp2'を条件とした検索結果は、何れの場合もt1'の「高速プリンター」のみを検索することができる。このことは、従来例のように、p1の条件ではt1、t2が検索結果となり、p2の条件ではt1、t3が検索結果となる場合と較べると、フォルスドロップの発生率を大幅に低減することが可能となり、その結果として検索性能と検索速度を向上することができる。
(実施の形態2)
本実施の形態2では、文書検索装置の処理部2を用いて文書データを一つ以上の部分文字列(ブロック)に分割し、各ブロックに応じたシグネチャーを摘出する際に、各ブロックの文字数が一定となるように分割するものである。これを図2で説明すると、図2(a)には、文書データを一定の文字数で分割した比較例が示され、図2(b)には、各ブロックの文字数が適切な文字数以下であって、かつ、各ブロックの文字数が均一となるように分割した本実施の形態2の例を示したものである。図2(a)のように、分割するブロックの文字数を予め一定に定めて分割すると、文書データごとに末尾のブロック(図中のブロック4)の文字数が、末尾以外のブロック(図中のブロック1,2,3)の文字数以下となる。このような状況では、シグネチャーのビット数に対して、適切なブロックの文字数をLとし、ブロック1,2,3の文字数をL1とし、ブロック4の文字数をL2とすると、それらの大小関係が下記の不等号の関係になる場合がある。
L2≦L≦L1
本実施の形態2では、文書検索装置の処理部2を用いて文書データを一つ以上の部分文字列(ブロック)に分割し、各ブロックに応じたシグネチャーを摘出する際に、各ブロックの文字数が一定となるように分割するものである。これを図2で説明すると、図2(a)には、文書データを一定の文字数で分割した比較例が示され、図2(b)には、各ブロックの文字数が適切な文字数以下であって、かつ、各ブロックの文字数が均一となるように分割した本実施の形態2の例を示したものである。図2(a)のように、分割するブロックの文字数を予め一定に定めて分割すると、文書データごとに末尾のブロック(図中のブロック4)の文字数が、末尾以外のブロック(図中のブロック1,2,3)の文字数以下となる。このような状況では、シグネチャーのビット数に対して、適切なブロックの文字数をLとし、ブロック1,2,3の文字数をL1とし、ブロック4の文字数をL2とすると、それらの大小関係が下記の不等号の関係になる場合がある。
L2≦L≦L1
上記不等号の関係にある場合は、ブロックシグネチャーにおいて、ブロック4にとっては必要数以上のビットが割り当てられることになる一方で、ブロック1,2,3にとっては、ビット数が不足することになるため、フォルスドロップの増加を招いていた。
これに対して、本実施の形態2では、図2(b)に示されるように、各ブロックの文字数がL以下となるように、各ブロックの文字数を均一化して文書データを分割し、シグネチャーを摘出するようにしたので、上記不都合を解消することが可能となり、フォルスドロップを低減することができる。
(実施の形態3)
本実施の形態3では、文書検索装置の処理部2を用いて、日本語のように漢字・ひらがな・カタカナのように文字種の多い文書データから上記したN−gram方式を用いてシグネチャーを摘出する際に、任意に隣接するN文字(Nは2以上の整数)で切り出すのではなく、文字種が同一である任意に隣接するN文字を切り出してシグネチャーを摘出するようにしたものである。このようにすることで、先に示した例題の"リコーの高性能カメラ"という文字列は、
リコー/高性能/カメラ
のように切り出すことが可能となり、先の切り出し例である
リコー/コーの/ーの高/の高性/高性能/性能カ/能カメ/カメラ
と比較すると、(コーの/ーの高/の高性)および(性能カ/能カメ)のような余分な切り出しに対してシグネチャーのビットを割り当てる必要がなくなるため、フォルスドロップの発生する確率を大幅に低減させることができる。
本実施の形態3では、文書検索装置の処理部2を用いて、日本語のように漢字・ひらがな・カタカナのように文字種の多い文書データから上記したN−gram方式を用いてシグネチャーを摘出する際に、任意に隣接するN文字(Nは2以上の整数)で切り出すのではなく、文字種が同一である任意に隣接するN文字を切り出してシグネチャーを摘出するようにしたものである。このようにすることで、先に示した例題の"リコーの高性能カメラ"という文字列は、
リコー/高性能/カメラ
のように切り出すことが可能となり、先の切り出し例である
リコー/コーの/ーの高/の高性/高性能/性能カ/能カメ/カメラ
と比較すると、(コーの/ーの高/の高性)および(性能カ/能カメ)のような余分な切り出しに対してシグネチャーのビットを割り当てる必要がなくなるため、フォルスドロップの発生する確率を大幅に低減させることができる。
このように、本実施の形態3によれば、N−gram方式を用いて文書データを切り出してシグネチャーを摘出する場合に、切り出す文字種を同一のもののみとしたため、切り出された文字列の種類を従来と比較すると大幅に少なくすることができる。このように、文字列の種類が十分に少なくなれば、シグネチャーの長さ(ビット数)をその種類に一致させることも可能である。そのようなシグネチャーを作ると検索文字列がN文字の場合、走査すべきビットマップは、一つのビットスライスだけでよくなり、しかも、フォルスドロップは全く発生しない。
なお、この実施の形態3に係る文書検索装置において、検索文字列が"プリンター"の場合に3−gram方式を用いれば、
プリン/リンタ/ンター
のようになり、検索文字列とはなりにくい文字列からシグネチャーが提出されることになるが、このような場合は、上記3−gram方式だけを用いるのではなく、4−gram方式や5−gram方式といった他の方式と併用することにより、上記の場合と同様に好適な効果を得ることができる。
プリン/リンタ/ンター
のようになり、検索文字列とはなりにくい文字列からシグネチャーが提出されることになるが、このような場合は、上記3−gram方式だけを用いるのではなく、4−gram方式や5−gram方式といった他の方式と併用することにより、上記の場合と同様に好適な効果を得ることができる。
(実施の形態4)
本実施の形態4では、文書検索装置の処理部2を用いて、"高速orプリンター"のように、論理演算子ANDやORでつながれた複数の検索文字列を含む条件式を用いて検索する場合であっても、検索の高速化が図れるようにしたものである。すなわち、第1に、条件式に含まれる全ての検索文字列(パターン)からシグネチャーを摘出し、第2に、摘出した各シグネチャーの値が1であるビットに応じたビットスライスされたビットマップを走査する複数のカーソルを用意し、第3に、それらのカーソルを条件式の内容にしたがって並行して動かしながら走査することにより、シグネチャーファイル12を1回走査しただけで、検索結果を求めることが可能となる。しかも、カーソルは常に順方向に走査させるので、MH(Modified Huffman)法等により圧縮されたビットマップに対しても対応できるという利点がある。
本実施の形態4では、文書検索装置の処理部2を用いて、"高速orプリンター"のように、論理演算子ANDやORでつながれた複数の検索文字列を含む条件式を用いて検索する場合であっても、検索の高速化が図れるようにしたものである。すなわち、第1に、条件式に含まれる全ての検索文字列(パターン)からシグネチャーを摘出し、第2に、摘出した各シグネチャーの値が1であるビットに応じたビットスライスされたビットマップを走査する複数のカーソルを用意し、第3に、それらのカーソルを条件式の内容にしたがって並行して動かしながら走査することにより、シグネチャーファイル12を1回走査しただけで、検索結果を求めることが可能となる。しかも、カーソルは常に順方向に走査させるので、MH(Modified Huffman)法等により圧縮されたビットマップに対しても対応できるという利点がある。
図3は、上記した検索文字列のパターンとカーソルとビットスライスされたビットマップとの関係を示した図である。ここで、カーソルは、ビットスライスされたビットマップに対して1対1に対応している。つまり、条件式に含まれる検索文字列から摘出されたシグネチャーのうち、あるビット位置の値が1であるものが複数あってもカーソルは一つしか用意しない。そうすることにより、条件式に含まれる検索文字列が増えたとしても、ビットスライスされたビットマップの走査を1回で済ませることができる。
そして、カーソルは、各検索文字列(パターン)に関連づけられている。また、カーソルは、パターンごとに検索効率の良い順に並べられる。この検索効率の良い順とは、ここではカーソルに応じてビットスライスされたビットマップで値が1であるビットの数が少ない順のことである。これにより、検索効率を向上させることができる。
また、各検索文字列において、先頭のカーソルがプライマリーカーソルと称され、検索時にはプライマリーカーソルのうち、指示するビットマップの位置が最も小さいものを選び出し、そのカーソルで値が「1」であるビットを探してゆく。
そして、プライマリーカーソルの移動後、各プライマリーカーソルが指示している位置でシグネチャーが見つかったと仮定した場合、それらのシグネチャーの摘出元である文書データが条件式を満たすか否かを判定する。
また、条件式は、事前に連言標準形に変換しておく。連言標準形とは、リテラルが連言(積)の選言(和)となっている論理式の形式を表す。ここでリテラルは、ひとつの検索文字列に対応づけられる。例えば、条件式"(高速 OR 高精細)AND プリンター"は、"(高速 AND プリンター) OR (高精細 AND プリンター)"という連言標準形に変換される。このように、条件式を連言標準形にしておくことにより、連言のいずれかの真偽によって、条件式全体の真偽を判定することができる。
また、ある検索文字列に応じたプライマリーカーソルがビットスライスされたビットマップの末尾に達したときに、そのプライマリーカーソルに応じた検索文字列をリテラルとする連言を除去することにより、条件式を簡略化することができる。つまり、検索文字列"高性能"のシグネチャーが見つからないことが判明したら、それ以降は、条件式を"高速ANDプリンター"として検索すればよい。
各プライマリーカーソルが指示している位置で、それぞれに応じたシグネチャーが見つかったと仮定し、それらのシグネチャーの摘出元である文書データが条件式を満たすと判断されるときには、検索文字列ごとにプライマリーカーソル以降のカーソルについて、ビット位置の値が「1」であるか否かを確認し、条件式を満足するか否かを判定する。
以上述べたように、カーソル移動を繰り返しながら、検索結果を求めてゆく。その詳細については、フローチャートの図4〜図7に示したものである。これらの各フローチャートは、カーソル移動処理部(図4、図5)、条件式清算部(図6)、条件式見込み計算部(図7)のフローチャートであり、カーソル移動処理部から条件式清算部と条件式見込み計算部とを呼び出す形になっている。そして、それらの各図中では、条件式を構成する検索文字列をパターンと言い表しており、それらの各パターンは、属性値として、position, checked ,match を持っている。position, checked の初期値は、「0」であり、「0」はビットスライスされたビットマップの仮想的な先頭位置を表している。また、match の初期値は、FALSEである。
図4のステップ45の関数searchについては、引数で指定されたカーソルを次の値が「1」であるビットに進め、そのビット位置を返す。但し、つぎの値が「1」であるビットが見つからない場合は、負の値を返す。これにより、ステップ46においてhが正か負かにより、ステップ47かステップ53に行くかが判断される。
そして、これらのフローチャートでは、検索結果やその候補となる文書データがtで表わされているが、tが不定なときは、その値をnullとする(ステップ49)。また、tの属性値としては、start と endがあり、tに応じたシグネチャーの格納位置の先頭と末尾を表している。
また、図5のステップ68では、tに応じたシグネチャーの集合を同族のシグネチャーと表現している。
以上述べたように、実施の形態4の文書検索装置の処理部2では、複数の検索文字列が含まれる条件式に基づいて文字列を検索する際に、条件式に含まれる全ての検索文字列のシグネチャーを摘出し、各シグネチャーの値が1であるビットに応じてビットスライスされたビットマップを走査するカーソルを用意し、そのカーソルを条件式の内容に従って並行に走査させながら検索するようにしたため、条件式に含まれる検索文字列が増えても、シグネチャーファイルを一回走査するだけで検索結果を求めることが可能となり、検索の高速化を図ることができる。
なお、本実施の形態に係る文書検索装置は、文書検索を行う場合について説明したが、これに限定されるものではなく、より一般的な検索装置に対しても適用することが可能である。例えば、性別、血液型、出身県を区別するためのビットをシグネチャーに割り当てて、
"性別=男 AND 血液型=AB AND(出身県=埼玉 OR 出身県=山梨)"
のようにすれば、この条件式の内容の検索を高速で処理することも可能になる。
"性別=男 AND 血液型=AB AND(出身県=埼玉 OR 出身県=山梨)"
のようにすれば、この条件式の内容の検索を高速で処理することも可能になる。
5 文書検索処理部
8 文書登録処理部
9 シグネチャー摘出処理部
12 シグネチャーファイル
8 文書登録処理部
9 シグネチャー摘出処理部
12 シグネチャーファイル
Claims (4)
- 2進数によるビットパターンのシグネチャーを利用して、検索文字列を含む文書データを検索する文書検索装置において、
シグネチャーを摘出するシグネチャー摘出処理部と、
前記文書データを所定の文字数の文字列であるブロックに分割し、前記各ブロックを構成する文字列から前記シグネチャー摘出処理部を利用してシグネチャーを摘出してブロックシグネチャーとしてシグネチャーファイルに格納する文書登録処理部と、
前記検索文字列から所定の文字数の部分文字列を抽出し、前記部分文字列から前記シグネチャー摘出処理部を利用して検索文字列のシグネチャーを摘出し、当該検索文字列のシグネチャーに基づいて前記シグネチャーファイルに格納されている前記ブロックシグネチャーを検索する文書検索処理部と、
を備え、
前記文書検索処理部は、前記検索文字列が論理演算子でつながれた複数の検索文字列を含む条件式である場合、前記条件式に含まれる全ての前記検索文字列からシグネチャーを摘出し、摘出した前記各シグネチャーの値が1であるビットに応じてビットスライスされたビットマップをそれぞれ走査する前記各検索文字列に関連づけられているカーソルを用意し、前記各カーソルを前記条件式の内容に従って並行に走査させながら検索を行う、
ことを特徴とする文書検索装置。 - 前記カーソルは、前記検索文字列ごとに当該カーソルに応じてビットスライスされたビットマップで値が1であるビットの数が少ない順に並べられる、
ことを特徴とする請求項1記載の文書検索装置。 - 前記条件式は、前記検索文字列に対応づけられているリテラルが連言の選言となっている論理式の形式である連言標準形に変換しておく、
ことを特徴とする請求項1記載の文書検索装置。 - 前記検索文字列に応じたプライマリーカーソルがビットスライスされたビットマップの末尾に達したときに、そのプライマリーカーソルに応じた検索文字列をリテラルとする連言を除去する、
ことを特徴とする請求項1記載の文書検索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006007929A JP2006179019A (ja) | 2006-01-16 | 2006-01-16 | 文書検索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006007929A JP2006179019A (ja) | 2006-01-16 | 2006-01-16 | 文書検索装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9267547A Division JPH11110402A (ja) | 1997-09-30 | 1997-09-30 | 文書検索装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006179019A true JP2006179019A (ja) | 2006-07-06 |
Family
ID=36732985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006007929A Pending JP2006179019A (ja) | 2006-01-16 | 2006-01-16 | 文書検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006179019A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015523659A (ja) * | 2012-06-13 | 2015-08-13 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | 多言語混合検索方法およびシステム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07244671A (ja) * | 1994-03-02 | 1995-09-19 | Ricoh Co Ltd | 文書検索装置 |
JPH08161357A (ja) * | 1994-06-02 | 1996-06-21 | Ricoh Co Ltd | 文書管理装置 |
-
2006
- 2006-01-16 JP JP2006007929A patent/JP2006179019A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07244671A (ja) * | 1994-03-02 | 1995-09-19 | Ricoh Co Ltd | 文書検索装置 |
JPH08161357A (ja) * | 1994-06-02 | 1996-06-21 | Ricoh Co Ltd | 文書管理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015523659A (ja) * | 2012-06-13 | 2015-08-13 | アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited | 多言語混合検索方法およびシステム |
US9582570B2 (en) | 2012-06-13 | 2017-02-28 | Alibaba Group Holding Limited | Multilingual mixed search method and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5748953A (en) | Document search method wherein stored documents and search queries comprise segmented text data of spaced, nonconsecutive text elements and words segmented by predetermined symbols | |
JP2758826B2 (ja) | 文書検索装置 | |
US5745745A (en) | Text search method and apparatus for structured documents | |
JP5141560B2 (ja) | 情報検索プログラム、該プログラムを記録した記録媒体、情報検索装置、および情報検索方法 | |
CN101430680B (zh) | 一种无词边界标记语言文本的分词序列选择方法及*** | |
US20070239708A1 (en) | Database Search Method Of Searching A Document Database For A Desired Document File | |
JP2007122403A (ja) | 文書タイトルおよび関連情報の自動抽出装置、抽出方法および抽出プログラム | |
JP2007219620A (ja) | テキスト検索装置、テキスト検索プログラム、及びテキスト検索方法 | |
JP3303881B2 (ja) | 文書検索方法および装置 | |
JP2006179019A (ja) | 文書検索装置 | |
JPS63244259A (ja) | キ−ワ−ド抽出装置 | |
CN115577269A (zh) | 一种基于字符串文本特征相似度的黑名单模糊匹配方法 | |
JP4682627B2 (ja) | 文書検索装置および方法 | |
JP2006179017A (ja) | 文書検索装置 | |
JP2006179018A (ja) | 文書検索装置 | |
JP2004046438A (ja) | テキスト検索方法及び装置及びテキスト検索プログラム及びテキスト検索プログラムを格納した記憶媒体 | |
JP3489237B2 (ja) | 文書検索方法 | |
KR100818628B1 (ko) | 특허 번역 사전 구축 장치 및 방법 | |
JPH11110402A (ja) | 文書検索装置 | |
JPH09198404A (ja) | 文書処理方法及び装置 | |
JP2005071014A (ja) | 文書画像処理装置、方法、プログラムおよび記憶媒体 | |
JPH05135102A (ja) | 文書検索方式 | |
TWI608415B (zh) | 電子檔案資料擷取系統及其方法 | |
JP2007213606A (ja) | 文書検索システム | |
JP4183767B2 (ja) | 文字列検索装置およびその検索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090119 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090210 |