JP4980148B2 - 文書検索方法 - Google Patents

文書検索方法 Download PDF

Info

Publication number
JP4980148B2
JP4980148B2 JP2007151860A JP2007151860A JP4980148B2 JP 4980148 B2 JP4980148 B2 JP 4980148B2 JP 2007151860 A JP2007151860 A JP 2007151860A JP 2007151860 A JP2007151860 A JP 2007151860A JP 4980148 B2 JP4980148 B2 JP 4980148B2
Authority
JP
Japan
Prior art keywords
search
document
index
expression
hits
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
JP2007151860A
Other languages
English (en)
Other versions
JP2008305175A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007151860A priority Critical patent/JP4980148B2/ja
Priority to US12/133,811 priority patent/US7966307B2/en
Publication of JP2008305175A publication Critical patent/JP2008305175A/ja
Application granted granted Critical
Publication of JP4980148B2 publication Critical patent/JP4980148B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、インデックス型検索とスキャン型検索という2つの検索手法を組み合わせることで、双方の欠点を補い合いながら文書を検索する技術に関する。
文書検索には2つの方式がある。まずは、スキャン型検索と呼ばれる方式で、検索対象の文書を1つずつ調べながら、検索式を満たす文書を探す。実際には、各文書を先頭から読みながら、各検索キーワードの出現の有無を調べる。スキャンアルゴリズムとしては、AC法(非特許文献1)、読み飛ばしを行うCW法(非特許文献2)などが知られている。もう一方は、インデックス型検索と呼ばれる方式で、各検索タームに対してそれを含む文書のリスト(インデックス)をあらかじめ構築しておき、検索時にはインデックスを調べることにより検索結果の文書集合を得る。インデックスの構築法も含め、インデックス型検索は非特許文献3が詳しい。
上記の2つの方式にはそれぞれ利点と欠点がある。スキャン型検索は文書を1つずつ調べるため検索が遅い。一方、インデックス型検索は事前に構築したインデックスを調べれば良いので検索は速い。逆に、文書データの他にインデックスを保守しておかねばならない。インデックスに含める情報にもよるが、インデックスのサイズは総文書サイズの数倍になる場合もある。また、検索対象の文書が追加・削除・変更された場合は、その都度インデックスを最新の状態に更新する必要もある。スキャン型検索では、インデックスのような二次データを必要とせず、オリジナルの文書データさえあれば検索ができる。
また、インデックス型検索は速いとは言え、検索キーワードの数が多くなると検索速度も比例して遅くなる。特にインデックスの圧縮を行う場合は、圧縮の復号処理のためにその傾向が顕著に現れ、場合によってはスキャン型検索よりも遅くなることもある。一般に、インデックス型検索の検索速度は検索ターム毎のヒット文書数を総和した数に反比例する。一方、スキャン型検索の検索速度は、検索式には大きく依存しない。
以上の2つの方式を組み合わせた方式として、ハイブリッド型検索が考えられる。従来からある文字成分表を用いた検索もハイブリッド型検索に分類することができる。ここでは、単純でサイズが小さいインデックスを用いて、まずインデックス型検索を行う。続いて、検索結果の文書集合に対してスキャン型検索を行う。ここでのインデックス型検索は、ふるいとして動作すれば良く、検索漏れさえ起こさなければ精度は100%でなくてもよい。このようなインデックスの候補としては、文字成分表や位置情報を保存しない文字2グラムのインデックスなどがある。スキャン型検索の前にふるいとしてのインデックス型検索を行うことにより、スキャン型検索で全文書を調べる必要が無くなり、速度が遅いというスキャン型検索の欠点が克服できる。ただし、サイズは小さいとはいえインデックスは依然必要である。
Aho,A.V., Corasick,J., "Efficient string matching: an aid to bibliographic search", Communications of the ACM,18(6),pp.333-340,1975 Commentz-Walter,B., "A string matching algorithm fast on the average", In Proceedings of the 6th International Colloquium on Automata, Languages and Programming,LNCS71,pp.118-132,1979 Baeza-Yates,R.,Ribeiro-Neto,B., "Modern Information Retrieval", Addison-Wesley,1999
ハイブリッド型検索を行っても、検索式によってはインデックス型検索が遅くなり、効果が出ないことがある。前述したように、どの文書にも現れるような検索タームが検索式に多く含まれる場合、インデックスの文書リストの圧縮を復号する回数が多くなり、インデックス型検索の速度が低下する。極端な場合、ハイブリッド型検索を行うよりも、スキャン型検索のみを行う方が速い場合も出てくる。ただし、このような場合は非常にまれなため、平均速度としては顕在化しない場合が多い。しかし、最悪ケースの速度を保証せねばならない場合は、上記のような場合に対応する必要がある。
検索式中の検索タームの内、どの文書にも現れるような検索タームの数がある閾値を超えたらスキャン検索のみを行う、という方針を取れば、全文書をスキャンする検索速度で最悪の検索速度が保証できる。しかしこの場合、閾値は実験的に決めざるをえない。また、検索式中には、絞込みが効果的な部分論理式も多いため、この情報を使わずにスキャン型検索を行うのはもったいない。
一方、スキャン型検索側にも問題がある。スキャンアルゴリズムとしてCW法を用いると、読み飛ばしの効果により高速なスキャンが可能になる。読み飛ばしとは、おおまかに説明すれば、検索式中のキーワードの最短長をLとすれば、検索対象文書中のi文字目の文字が検索式のどのキーワードにも出現しなければ、i+Lの範囲にはどのキーワードも存在しないという事実を利用して、スキャンする文字を安全なだけ読み飛ばす手法である。ただし、検索式中に一つでも短いキーワードがあれば、読み飛ばせる文字数も少なくなってしまう。この場合は、読み飛ばしを行わないAC法と同等かそれ以下の検索速度になってしまう。
本発明は、上記の課題を解決するために、検索式をインデックス型検索用とスキャン型検索用に振り分けてハイブリッド型検索を行う。その際、検索式毎にハイブリッド型検索の検索速度を予測し、予測検索速度が最小になるように振り分けを行う。具体的には、まず、検索式中の各検索タームのヒット件数をインデックスから取得し、検索ターム毎に、その検索タームよりヒット件数が多い検索タームを便宜上全件ヒットとみなした場合の予測速度を算出する。全件ヒットとみなした検索タームはインデックス型検索では文書リストの取得は行わなくて済むために、インデックス型検索の検索時間が節約できる。ここでは、ヒット件数が多い検索タームほど、インデックス型検索の検索時間はかかるが、全件ヒットとみなしても絞込み効果には大きな影響を与えない、という特徴を利用している。
スキャン型検索に関する課題に対しては、例えばインデックス型検索で用いるインデックスを文字2グラム単位にしておけば、1文字もしくは2文字からなる短いキーワードに関してはインデックス型検索で検索が完結することになる。本発明では、インデックス型検索で完結する短い文字列はインデックス型検索での結果を利用することで、スキャン型検索(特にCW法)では短いキーワードを調べないようにする。
インデックス型検索において、ヒット件数の多い検索タームを全件ヒットとみなしその検索を行わないことにより、絞込み率は大きく低下させずにインデックス型検索の速度、ひいてはハイブリッド型検索の速度を向上させることができる。加えて、短いキーワードをインデックス型検索に任せることにより、スキャン型検索における読み飛ばし効果が増し、スキャン型検索の速度、ひいてはハイブリッド型検索の速度を向上させることができる。
以下、図面を参照して本発明の実施の形態を説明する。
[実施例1]
図1は、本発明の文書検索装置のシステム構成例を示す図である。文書検索装置は、検索サーバ10と、ネットワーク11と、検索クライアント12とを備える。
検索サーバ10は、CPU101、メモリ102、文書データDB107、文書インデックスDB108を備える。また、検索サーバ10は、検索式構築部103、インデックス型検索部104、スキャン型検索部105を構成するプログラム、及びデータ通信部106を格納している。
CPU101は、検索式構築部103、インデックス型検索部104、スキャン型検索部105を構成する各種プログラムを実行することによって各種処理を実行する。メモリ102は、CPU101が実行するプログラム及びプログラムを実行するために必要なデータを一時的に記憶する。
データ通信部106は、ネットワーク11を介してデータ通信をするインターフェースであり、例えば、TCP/IPプロトコルによって通信可能なLANカードによって構成される。検索サーバ10は、データ通信部106を介してネットワーク11に接続された検索クライアント12と通信する。
検索クライアント12は、利用者からの検索式を受け付けて、ネットワーク11を介して検索サーバ11に検索式を送付し、検索サーバ11から同じくネットワーク11を介して検索結果を受け取り、利用者に提示する。検索クライアント12の内部構成については説明を省略する。
文書データDB107には、検索対象の文書が登録されている。スキャン型検索部105では、文書データDB107内の文書を対象に検索を行う。文書インデックスDB108には、各検索タームに対して、それを含む文書のリスト(インデックス)、及び文書数が登録されている。本実施例では、文字2グラムを検索タームとしている。検索対象の文書から、文書データDB107を構成する手段については非特許文献3に詳しい。インデックス型検索部104では、文書インデックスDB内の情報を用いて検索を行う。
図2は、文書検索装置で実行される検索処理のフロー全体を示す図である。以下、図2に基づいて、検索式構築部103、インデックス型検索部104、スキャン型検索部105によって実行される処理の概要を説明する。
まず、検索式201が、検索クライアント12から送られてくる。ここでの検索式は、(“文書”+“画像”)*“検索処理”といったように、キーワードを論理式で組み合わせたものとする。この例は、“文書”又は“画像”を含みかつ“検索処理”を含む文書を見つけるための検索式である。
次に、検索式構築202により、検索式201からインデックス型検索用検索式203とスキャン型検索用検索式204とを構築する。この際、検索式構築202は文書インデックスDB108から必要な情報を得て、最終的な予測検索速度が最速となるようにそれぞれの検索式を構築する。検索式構築202の詳細な説明は後述する。
インデックス型検索用検索式203とスキャン型検索用検索式204が構築できたら、まずインデックス型検索205を行う。インデックス型検索の詳細に関しては、非特許文献3に詳しいのでここでは説明を割愛する。入力されたインデックス型検索用検索式203を満たす文書を、文書インデックスDB108を用いて検索する。検索した結果を文書IDのリストとして検索結果1(207)に出力する。
次に、インデックス型検索で検索された検索結果1(207)を対象に、スキャン型検索206を行う。スキャン型検索の方法としては非特許文献1のAC法、非特許文献2のCW法などを用いることができる。スキャン型検索206では、検索結果1(207)の各文書IDに相当する文書の本体を文書データDB107から取得し、その文書本体に対して、スキャン型検索用検索式204を満たすかどうかを判定する。スキャン型検索用検索式204を満たす文書集合が最終的な検索結果である検索結果2(208)となる。
以下では、各データベース(文書データDB107、文書インデックスDB108)の詳細を説明した後、図2の検索式構築202の手順の詳細を説明する。
図4は、文書インデックスDB108に格納されるテーブルの構成の一例を示す図である。文書インデックスDB108にはタームテーブル40とインデックステーブル41の2種類のテーブルを格納する。
タームテーブル40は、ターム401をターム番号402に変換するためのテーブルである。内部的にはハッシュ表などで実装する。タームとは検索に使われる最小単位の文字列のことである。本実施例では、文字2グラムをタームとして用いることにする。例えば、“検索処理”という文字列は、“検索”“索処”“処理”という3つの文字2グラムに分割され、タームとして登録されることになる。インデックステーブル41は、各ターム411からそのタームを含む文書数412、実際の文書番号リスト413を検索するためのテーブルである。内部的には、配列等で実装する。
なお、ここでは文字2グラムをタームとして用いたが、その他にも、文字1グラムや文字3グラムなどをタームとして用いることも可能である。更には、カタカナ語のみ文字3グラムを使う等、字種別に使うタームの種類を区別することも可能である。一般に、文字NグラムのNを大きくすれば検索ノイズが少なくなる。例えば、「本発明」を文字1グラムで表現すると、「本」「発」「明」となり、「本の発刊は明日だ」という文字列とマッチしてしまう。文字2グラムで表現すると「本発」「発明」となり、上記の文字列とはマッチしないが、「本発表では…の発明を説明する」とマッチしてしまう。文字3グラムにすれば、完全に「本発明」を含む文字列としかマッチしなくなる。一方、Nを大きくすると、インデックステーブル41のサイズが大きくなるという欠点がある。文字3グラムを使うと、インデックステーブル41が元の文字列の数倍の大きさになる場合もある。経験的には、検索ノイズ、インデックステーブルの大きさの観点から、文字2グラムがバランスの取れたタームであることが知られているので、本実施例でも文字2グラムをタームとして用いている。
図5は、文書データDB107に格納されるテーブルの構成の一例を示す図である。文書データDB107には、各文書の本体を検索するための文書データテーブル50を格納する。文書データテーブル50は、文書番号501からその文書のオフセット502と長さ503を取得するためのテーブルである。文書本体は、別途ディスク上もしくはメモリ上に配置されている。オフセット502は、その配置場所の先頭位置を表し、長さ503は、オフセットからの長さを表す。文書データテーブル50は配列等により実装する。
図6は、検索式構築202の処理手順を示すフローチャートである。検索式構築202は、検索式構築部103で実行される。検索式構築202ではまず初期設定を行う(S601)。Qは検索式であり、例えば、
Q=(“文書”+“画像”)*“検索処理”
となる。ここで、“+”はOR検索を、“*”はAND検索を表す。検索式構築202の出力は、インデックス型検索用の検索式Qindexとスキャン型検索用の検索式Qscanである。それぞれ入力のQを変形したものである。
まずは、スキャン型検索用検索式Qscanを構築する(S602)。本実施例では、スキャン型検索用には元の検索式Qを設定する。スキャン型検索の欠点を補うような検索式構築手順については、別の実施例として後で改めて説明する。
以降のS603からS607でインデックス型検索用の検索式Qindexを構築する。まずは、Qに含まれるキーワードの集合をQwとする(S603)。例の場合、
Qw={“文書”,“画像”,“検索処理”}
となる。
次に、S604において、Qwのそれぞれのキーワードw_iを文字2グラムに分解してwb_iとする。また、分解した全2グラムの集合をWBとする。WB内では、重複は省く。例の場合、例えば“検索処理”というキーワードw_iに対するwb_iは、
wb_i={“検索”,“索処”,“処理”}
となる。またWBは、
WB={“文書”,“画像”,“検索”,“索処”,“処理”}
となる。以上は、各検索キーワードを文字2グラムに分割していることに相当する。
次に、検索式Q中の各キーワードw_iを、対応する文字2グラム集合wb_iの各文字2グラムの積(AND)で置き換えた検索式をQindex1とする(S605)。例では、
Qindex1=(“文書”+“画像”)*(“検索”*“索処”*“処理”)
となる。基本的には、この検索式でインデックス型検索をすればよいのだが、既に説明したように、ヒット件数の多い文字2グラムの数が多くなると、インデックス型検索の速度が低下してしまう。
よって、S606において、検索式中の全ての文字2グラム集合WBの中から、実際にインデックス型検索を行う文字2グラムのみを選択してWB1とする。したがって、インデックス検索は行わない文字2グラムの集合はWB2=WB−WB1となる。実際の選択処理を図7に示す。図7の説明は後述する。
WB1が決まったら、Qindex1中でWB2に属する文字2グラムを恒真値“T”に置き換えて最終的なQindexとする。例の場合、後述する図7の処理により、
WB2={“文書”,“処理”}
となったとすると、
Qindex1=(T+“画像”)*(“検索”*“索処”*T)
となる。実際にインデックス型検索では、恒真値“T”に対しては検索を行わない。インデックス型検索では、恒真値“T”は全件ヒットに等しい。更には、恒真値TとORで結合された部分論理式も恒真であるから、その部分検索式に含まれる文字2グラムについても検索を行わないようにすることもできる。例えば、上記の例の場合(T+“画像”)は恒に真であるため、“画像”に関する検索は行わなくても良いことになる。その結果、検索式は更にT*(“検索”*“索処”*T)と簡略化できる。
図7は、検索式に含まれる文字2グラムの集合WBからインデックス型検索に使う文字2グラムの集合WB1を選択する処理手順である。まずは、S701で初期設定を行う。本処理は、Qindex1とWBが入力となり、WB1を出力する。また、検索速度を見積もるための定数値として、インデックスセル読み取り時間IT(セル数/秒)、検索対象文書の平均文書長DL(バイト数)、スキャン速度ST(バイト数/秒)を設定しておく。インデックスセル読み取り時間ITは、インデックスの各セルを読み取る時間(秒)の平均値である。具体的には、文書インデックスDB108において、ターム番号41に対応する文書番号リスト413の各要素(文書番号)を読み取るための時間である。文書番号リスト413は通常圧縮されているため、圧縮の復号時間がITのほとんどを占める。
次に、S702において、WBの各文字2グラムb_iに対して文書インデックスDB108を引き、ヒット件数n_iを求めておく。インデックステーブル41の文書数412がヒット件数に相当する。この処理は、文書番号リスト413にはアクセスしないため、処理時間は無視できるほど小さい。例の場合、ヒット件数が以下のようになったとする。
“文書“→1120
“画像”→531
“検索”→36
“索処”→21
“処理”→1639
次に、WBの各タームb_iに対して、b_iよりヒット件数の多いタームを全件ヒットとした場合の予測検索時間T_iを計算する(S703)。既に述べたように、全件ヒットとみなしたタームは、それに対するインデックス型検索を行わない。ヒット件数が大きいタームほど、それらを全件ヒットとみなしても実測とのずれが小さくなる。
予測検索時間T_iを計算するために、まずは、インデックスセルの読み取り数DFを計算する(S704)。DFは、b_iよりヒット件数が少ない(同数も含む)ターム及びb_i自身のヒット件数を足した数になる。
次に、スキャン型検索対象文書数の予測値DNを推定する(S705)。スキャン型検索対象文書数は、インデックス型検索の結果の文書数と等しい。インデックス型検索の結果の文書数を推定するために、インデックス型検索の検索式Qindex1の各部分検索式において、以下の規則により検索結果数を予測する。まず、検索タームb_iとb_jがANDで結合されている場合は、それぞれのヒット件数n_iとn_jの小さい方を検索結果の予測数とする。また、ORで結合されている場合は、それぞれのヒット件数の和を予測数とする。ただし、和が全文書数を超えた場合は全文書数を予測数とする。いずれの場合も、予測数は多めに見積もっており、予測数が実際のヒット件数を下回ることはない。上記の規則を用いて、検索式Qindex1で検索した場合の検索件数を予測する。ただし、b_iよりヒット件数が多いタームは全件ヒットとみなしているため、これらのヒット件数は全文書数となる点に注意されたい。
例えば上記の例において、“画像”よりヒット件数が多いターム(“文書”と“処理”)を全件ヒットとした場合のDNは、以下のようになる。全文書数は5000と仮定する。
min{5000+531,min{1120,36,5000}}=36
ここで、“文書”と“処理”は全件ヒットと仮定したが、そもそものヒット件数が多いため、最終的なDNには影響を及ぼしていないことがわかる。
以上で計算した、インデックスセル読み取り数DNと、スキャン型検索対象文書数の予測値DNを用いて、以下の式より予測検索時間T_iを計算する(S706)。
T_i=DF/IT+(DN*DL)/ST
これは、インデックス型検索の予測検索時間DF/ITと、スキャン型検索の予測検索時間(DN*DL)/STを足した値となっている。
以上で、WBの各タームb_iに対して、b_iよりヒット件数の多いタームを全件ヒットとみなした場合(検索しない場合)の予測検索時間T_iを推定した。よって、このT_iの最小値を与える設定で実際の検索も行えばよい。つまり、予測検索時間の最小値をあたえるタームをb_minとすると、b_minとb_minよりヒット件数が少ない(同数も含む)タームが実際にインデックス型検索を行う検索タームWB1となる(S707)。
ここまでの処理で、元の検索式からインデクス型検索用の検索式とスキャン型検索用の検索式が構築できた。後は、既に図2で説明したように、それぞれの検索式を用いて2つの検索を組み合わせればよい。本実施例により、予測検索時間が最小となるように、インデックス型検索の検索タームを選択することができる。
[実施例2]
実施例1では、インデックス型検索を行う検索タームWB1を同定する際に、各検索タームにつき、それよりもヒット件数が多い検索タームを全件ヒットとみなし、かつ、その場合のスキャン型検索対象文書数の予測値DNを計算している(S705)。しかし、検索式が長くなった場合、DNを検索タームの数だけ計算するのは、計算時間の点からあまり好ましくない。本実施例では、計算時間をあまり必要としない検索タームWB1の決定法を採用する。それ以外は、実施例1と同じである。
図8は、本実施例における、インデックス型検索用2グラムの同定処理手順である。実施例1では図7の処理に相当する。
まず、S801で初期設定を行う。S701と異なる点は、パラメータとして目標検索時間Tmaxをあらかじめ与えておく点である。本実施例では、検索時間がTmaxにほぼ収まるように、検索タームの選定を行う。その際に近似を行うことで計算時間を節約する。
S802では、検索タームの集合WBの各要素b_iに対して、文書インデックスDB108からヒット件数n_iを取得し、WBをヒット件数の昇順にソートする。ソートした結果をWBsortとする。
次に、S705と同様の規則を用いて、スキャン型検索対象文書数DNを計算する(S803)。ただし、ここでは、どの検索タームに対しても全件ヒットを仮定せず、S802で設定した本来のヒット件数を使う。つまり、本来は検索ターム毎にDNを計算しなおさねばならないのだが、ここでは、全件ヒットを全く仮定しない場合でのDNで全ての場合を近似することになる。
次に、与えられた検索時間Tmaxに検索時間が収まるようなインデックスセル読み取り数の閾値DFTを、以下の式を解くことにより求める(S804)。
Tmax=DFT/IT+(DN*DL)/ST
最後に、WBsortの先頭要素から順にヒット件数の累積和を計算し、累積和がDFTを超えた要素より前の要素(超えた要素自体は含まない)を実際にインデックス型検索する検索タームの集合WB1の要素とする。
本実施例により、検索時間が最悪でもほぼTmaxに収まるような検索式の構築が可能になる。
[実施例3]
実施例1、実施例2では、いずれもスキャン型検索の検索式として元の検索式をそのまま用いている。スキャン型検索は、検索式によらず検索速度が一定であると言われているが、既に説明したように、読み飛ばしを行うCW法は、検索速度が最短キーワードの長さに大きく依存する。検索式中に一つでも短いキーワードがあれば、そのキーワードの影響を受けて、スキャン中に読み飛ばせる文字数が小さくなり、検索時間も増大してしまう。
本実施例では、インデックス型検索とスキャン型検索を更に密に連携させることで、このようなスキャン型検索の欠点を補う方法を説明する。インデックス型検索において、インデックスに登録するタームとして文字2グラムを用いる場合、1文字もしくは2文字からなるキーワードは、インデックス型検索のみで、漏れも誤り無い検索結果を返すことが出来る。よって、このような短いキーワードに対しては、インデックス型検索の検索結果を利用すれば、スキャン型検索を行う必要がない。
そのためには、全体の処理フローを図2の形から図3の形に変更する必要がある。図3は、インデックス型検索306の内部処理としてスキャン型検索307が呼ばれている点が図2とは異なる。
インデックス型検索306では、各検索タームに対して、文書インデックスDB108から文書番号リスト413を取得する。文書番号リスト413は、文書番号の昇順でソートされているために、全検索タームに対する複数の文書リストは、文書番号を付き合わせながら同時に進めていくことができる。詳細は、非特許文献3を参照されたい。
つまり、検索結果は、文書番号が若い方から順々に出力される。同時に、それぞれの検索結果が出力された時点では、その文書が各検索タームを含むか含まないかが判明している。この直後に、スキャン型検索307を呼べば、図2と同様の処理が行える。図2は一度インデックス型検索を完結させてから、検索結果の文書集合に対してまとめてスキャン型検索を行うのに対し、図3では、インデックス型検索でヒットしたそれぞれの文書に対して、その都度スキャン型検索を行っていることに相当する。
図3の方法の場合、ヒット文書内の検索タームの有無の情報を、スキャン型検索307に容易に渡せるという利点がある。また、本実施例の場合、インデックス型検索の検索タームは文字2グラムであるため、1文字もしくは2文字から成る検索キーワードは、インデックス型検索のみで検索が完結しており、スキャン型検索で実際の有無を確かめる必要がない。よって、スキャン型検索307を行う前に、このような検索キーワードに関しては、インデックス型検索での結果を使うことで、スキャン型検索を行う検索キーワードの数を減らすことができる。特に、今の場合は、スキャン型検索で省ける検索キーワードは1文字もしくは2文字の短いキーワードであるために、スキャン型検索では短いキーワードを検索する必要がなくなり、スキャン型検索の速度低下の原因を取り除くことができる。
ただし、この場合、インデックス型検索用検索式構築302において、1文字もしくは2文字の短いキーワードが必ずインデックス型検索で検索されるように、あらかじめインデックス型検索用の検索式を構築しておく必要がある。そのためには、図7(実施例1に相当)及び図8(実施例2に相当)のWB1(インデックス型検索を行う2グラムの集合)に、1文字もしくは2文字のキーワードから派生した2グラムを強制的に含めておく必要がある。
具体的には、図7の処理に関しては、S701の初期設定において、WBから1文字もしくは2文字キーワード由来の2グラムを抜いておき、抜いておいた2グラムをS707においてWB1に含めればよい。図8の処理に関しても同様に、S801の初期設定において、WBから1文字もしくは2文字キーワード由来の2グラムを抜いておき、抜いておいた2グラムをS805においてWB1に含めればよい。S705、S803においては、抜いておいた2グラムに関しては別途ヒット件数を取得し、そのヒット件数を用いて全体のヒット件数を予測する。以上の処理により、1文字もしくは2文字から成るキーワードに由来する2グラムは必ずインデックス型検索で検索されることになる。
これらの処理以外は、図7もしくは図8の処理を行うため、インデックス型検索の欠点を補うような検索式は本実施例でも実現されている点に注意されたい。
次に、スキャン型検索用検索式構築303の具体的な処理手順を図9に示す。上で説明したように、この処理は、インデックス型検索306からヒット文書毎に呼ばれ、呼ばれた時点では、インデックス型検索された検索タームの有無もわかっている。よって、S901では、元の検索式をQ、検索対象文書(ヒット文書)をd、それのみがキーワードである2グラムの集合(実際には1グラムも含む)をWB0とすると、WB0に対するヒット文書dの検索結果の集合RWB0が既にわかっている。RWB0の要素は対応するWB0の要素がdに出現したかしないかの真偽値である。
よって、S902で、WB0の各キーワードに対応するQ中のキーワードを、RWB0内の対応する真偽値におきかえれば、スキャン型検索用の検索式Qscanとなる。あとは、dに対して通常のスキャン型検索307を行えばよい。
以上、本発明により、インデックス型検索の欠点とスキャン型検索の欠点双方を補うようなハイブリッド型検索を実現することができる。
本発明による文書検索装置全体のブロック図である。 本発明の実施例1,2の検索サーバで実行される処理のフロー図である。 本発明の実施例3の検索サーバで実行される処理のフロー図である。 文書インデックスDBに含まれるタームテーブルとインデックステーブルの一例を示す図である。 文書データDBに含まれる文書データテーブルの一例を示す図である。 本発明による検索式構築のフローチャートである。 本発明の実施例1,3のインデックス型検索用2グラムの同定のフローチャートである。 本発明の実施例2,3のインデックス型検索用2グラムの同定のフローチャートである。 本発明の実施例3のスキャン型検索用検索式構築のフローチャートである。
符号の説明
10 検索サーバ
101 CPU
102 メモリ
103 検索式構築部
104 インデックス型検索部
105 スキャン型検索部
106 データ通信部
107 文書データDB
108 文書インデックスDB
11 ネットワーク
12 検索クライアント

Claims (14)

  1. プロセッサと、検索対象の文書を格納した文書データDBと、前記検索対象の文書に含まれるインデックスタームと当該インデックスタームを含む文書数及び文書リストを格納した文書インデックスDBとを備えた文書検索装置が、キーワードを論理式で組み合わせた検索式の入力を受けて前記文書データDBから文書を検索する文書検索方法であって、前記文書検索装置は、
    入力された検索式に含まれる各キーワードを当該キーワードを構成する前記インデックスタームの積に置き換えたインデックス型検索用検索式を構築する工程、
    前記文書インデックスDBを参照して、前記インデックス型検索用検索式中の各タームにつき、そのタームのヒット件数よりヒット件数が多いタームを全件ヒットとみなした場合に、インデックス型検索にかかる時間と検索される文書数とを予測し、前記予測された数の文書に対して前記入力された検索式でスキャン型検索をするのにかかる時間を予測し、インデックス型検索にかかる時間と前記スキャン型検索にかかる時間の和を全検索時間予測値として算出する工程、
    前記全検索時間予測値が最小となるとき前記全件ヒットとみなされたタームを恒真値で置き換えたインデックス型検索用検索式を構築する工程、
    前記恒真値を含むインデックス型検索用検索式を用いてインデックス型検索を実行する工程、
    前記インデックス型検索によって検索された文書に対して前記入力された検索式でスキャン型検索を実行する工程、
    前記スキャン型検索によって検索された文書を出力する工程、
    を実行する文書検索方法。
  2. 請求項1記載の文書検索方法において、前記インデックスタームは文字2グラムであることを特徴とする文書検索方法。
  3. 請求項1記載の文書検索方法において、前記インデックス型検索用検索式に含まれるタームから前記全件ヒットとみなすタームを除外して残ったタームに関して、前記文書インデックスDBに格納された文書リストの各要素を読み取るのに要する時間を計算し、それを前記インデックス型検索にかかる時間の予測値とすることを特徴とする文書検索方法。
  4. 請求項1記載の文書検索方法において、前記インデックス型検索で検索される文書数の予測に当たっては、前記インデックス型検索用検索式の部分式中でタームがANDで結合されている場合はそれぞれのヒット件数のうち小さい方を検索結果の予測数とし、ORで結合されている場合はそれぞれのヒット件数の和を予測数とし、和が全文書数を超えるときは全文書数を予測数とすることを特徴とする文書検索方法。
  5. 請求項1記載の文書検索方法において、前記スキャン型検索にかかる時間の予測に当たっては、予め与えられた1文書当たりの平均文書長及びスキャン速度に関する情報を用いることを特徴とする文書検索方法。
  6. プロセッサと、検索対象の文書を格納した文書データDBと、前記検索対象の文書に含まれるインデックスタームと当該インデックスタームを含む文書数及び文書リストを格納した文書インデックスDBとを備えた文書検索装置が、キーワードを論理式で組み合わせた検索式の入力を受けて前記文書データDBから文書を検索する文書検索方法であって、前記文書検索装置は、
    入力された検索式に含まれる各キーワードを当該キーワードを構成する前記インデックスタームの積に置き換えたインデックス型検索用検索式を構築する工程、
    前記文書インデックスDBを参照して、前記インデックス型検索用検索式中の各タームをヒット件数の昇順にソートする工程、
    前記インデックス型検索用検索式の部分式中でタームがANDで結合されている場合はそれぞれのヒット件数のうち小さい方を検索結果の予測数とし、ORで結合されている場合はそれぞれのヒット件数の和を予測数とし、和が全文書数を超えるときは全文書数を予測数として、前記インデックス型検索用検索式でインデックス型検索をした場合に検索される文書数を予測する工程、
    前記予測された数の文書に対し前記入力された検索式でスキャン型検索をするのにかかる時間を予測する工程、
    与えられた目標検索時間から前記スキャン型検索にかかる時間を控除した時間内に読むことのできる前記文書インデックスDBの文書リストの最大要素数を計算する工程、
    前記ソートした前記インデックス型検索用検索式中の各タームについてヒット件数の少ないタームから順にヒット件数を累積し、累積和が前記最大要素数を超えた以降のタームを恒真値で置き換えたインデックス型検索用検索式を構築する工程、
    前記恒真値を含むインデックス型検索用検索式を用いてインデックス型検索を実行する工程、
    前記インデックス型検索によって検索された文書に対して前記入力された検索式でスキャン型検索を実行する工程、
    前記スキャン型検索によって検索された文書を出力する工程、
    を実行する文書検索方法。
  7. 請求項6記載の文書検索方法において、前記インデックスタームは文字2グラムであることを特徴とする文書検索方法。
  8. 請求項6記載の文書検索方法において、前記スキャン型検索にかかる時間の予測に当たっては、予め与えられた1文書当たりの平均文書長及びスキャン速度に関する情報を用いることを特徴とする文書検索方法。
  9. プロセッサと、検索対象の文書を格納した文書データDBと、前記検索対象の文書に含まれるインデックスタームとしての文字2グラムと当該インデックスタームを含む文書数及び文書リストを格納した文書インデックスDBとを備えた文書検索装置が、キーワードを論理式で組み合わせた検索式の入力を受けて前記文書データDBから文書を検索する文書検索方法であって、前記文書検索装置は、
    入力された検索式に含まれる各キーワードを当該キーワードを構成するインデックスタームの積に置き換えたインデックス型検索用検索式を構築する工程、
    前記文書インデックスDBを参照して、前記インデックス型検索用検索式中の各タームにつき、そのタームのヒット件数よりヒット件数が多いタームのうち1文字あるいは2文字キーワード由来のターム以外を全件ヒットとみなした場合に、インデックス型検索にかかる時間と検索される文書数とを予測し、前記予測された数の文書に対して前記入力された検索式でスキャン型検索をするのにかかる時間を予測し、インデックス型検索にかかる時間と前記スキャン型検索にかかる時間の和を全検索時間予測値として算出する工程、
    前記全検索時間予測値が最小となるとき前記全件ヒットとみなされたタームを恒真値で置き換えたインデックス型検索用検索式を構築する工程、
    前記恒真値を含むインデックス型検索用検索式を用いてインデックス型検索を実行し、1つの文書が検索される毎に、1文字あるいは2文字キーワード由来の文字2グラムに対する検索結果を反映して前記入力された検索式のうち1文字あるいは2文字キーワードを真偽値で置き換えた検索式を用いてスキャン型検索を実行し結果を出力する工程、
    を実行する文書検索方法。
  10. 請求項9記載の文書検索方法において、前記インデックス型検索用検索式に含まれるタームから前記全件ヒットとみなすタームを除外して残ったタームに関して、前記文書インデックスDBに格納された文書リストの各要素を読み取るのに要する時間を計算し、それを前記インデックス型検索にかかる時間の予測値とすることを特徴とする文書検索方法。
  11. 請求項9記載の文書検索方法において、前記インデックス型検索で検索される文書数の予測に当たっては、前記インデックス型検索用検索式の部分式中でタームがANDで結合されている場合はそれぞれのヒット件数のうち小さい方を検索結果の予測数とし、ORで結合されている場合はそれぞれのヒット件数の和を予測数とし、和が全文書数を超えるときは全文書数を予測数とすることを特徴とする文書検索方法。
  12. 請求項9記載の文書検索方法において、前記スキャン型検索にかかる時間の予測に当たっては、予め与えられた1文書当たりの平均文書長及びスキャン速度に関する情報を用いることを特徴とする文書検索方法。
  13. プロセッサと、検索対象の文書を格納した文書データDBと、前記検索対象の文書に含まれるインデックスタームとしての文字2グラムと当該インデックスタームを含む文書数及び文書リストを格納した文書インデックスDBとを備えた文書検索装置が、キーワードを論理式で組み合わせた検索式の入力を受けて前記文書データDBから文書を検索する文書検索方法であって、前記文書検索装置は、
    入力された検索式に含まれる各キーワードを当該キーワードを構成する前記インデックスタームの積に置き換えたインデックス型検索用検索式を構築する工程、
    前記文書インデックスDBを参照して、前記インデックス型検索用検索式中の各タームのうち1文字あるいは2文字キーワード由来のターム以外をヒット件数の昇順にソートする工程、
    前記インデックス型検索用検索式の部分式中でタームがANDで結合されている場合はそれぞれのヒット件数のうち小さい方を検索結果の予測数とし、ORで結合されている場合はそれぞれのヒット件数の和を予測数とし、和が全文書数を超えるときは全文書数を予測数として前記インデックス型検索用検索式でインデックス型検索をした場合に検索される文書数を予測する工程、
    前記予測された数の文書に対し前記入力された検索式でスキャン型検索をするのにかかる時間を予測する工程、
    与えられた目標検索時間から前記スキャン型検索にかかる時間を控除した時間内に読むことのできる前記文書インデックスDBの文書リストの要素数を計算し、前記要素数から1文字あるいは2文字キーワード由来のタームのヒット件数を控除した要素数を最大要素数とする工程、
    前記ソートした前記インデックス型検索用検索式中の各タームをヒット件数の少ないタームから順にヒット件数を累積し、累積和が前記最大要素数を超えた以降のタームを恒真値で置き換えたインデックス型検索用検索式を構築する工程、
    前記恒真値を含むインデックス型検索用検索式を用いてインデックス型検索を実行し、1つの文書が検索される毎に、1文字あるいは2文字キーワード由来の文字2グラムに対する検索結果を反映して前記入力された検索式のうちの1文字あるいは2文字キーワードを真偽値で置き換えた検索式を用いてスキャン型検索を実行し結果を出力する工程、
    を実行する文書検索方法。
  14. 請求項13記載の文書検索方法において、前記スキャン型検索にかかる時間の予測に当たっては、予め与えられた1文書当たりの平均文書長及びスキャン速度に関する情報を用いることを特徴とする文書検索方法。
JP2007151860A 2007-06-07 2007-06-07 文書検索方法 Expired - Fee Related JP4980148B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007151860A JP4980148B2 (ja) 2007-06-07 2007-06-07 文書検索方法
US12/133,811 US7966307B2 (en) 2007-06-07 2008-06-05 Document search method and document search apparatus that use a combination of index-type search and scan-type search

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007151860A JP4980148B2 (ja) 2007-06-07 2007-06-07 文書検索方法

Publications (2)

Publication Number Publication Date
JP2008305175A JP2008305175A (ja) 2008-12-18
JP4980148B2 true JP4980148B2 (ja) 2012-07-18

Family

ID=40096783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007151860A Expired - Fee Related JP4980148B2 (ja) 2007-06-07 2007-06-07 文書検索方法

Country Status (2)

Country Link
US (1) US7966307B2 (ja)
JP (1) JP4980148B2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844609B2 (en) 2007-03-16 2010-11-30 Expanse Networks, Inc. Attribute combination discovery
US20090043752A1 (en) 2007-08-08 2009-02-12 Expanse Networks, Inc. Predicting Side Effect Attributes
US7917438B2 (en) 2008-09-10 2011-03-29 Expanse Networks, Inc. System for secure mobile healthcare selection
US8200509B2 (en) 2008-09-10 2012-06-12 Expanse Networks, Inc. Masked data record access
US8108406B2 (en) 2008-12-30 2012-01-31 Expanse Networks, Inc. Pangenetic web user behavior prediction system
US20100169262A1 (en) * 2008-12-30 2010-07-01 Expanse Networks, Inc. Mobile Device for Pangenetic Web
US8386519B2 (en) 2008-12-30 2013-02-26 Expanse Networks, Inc. Pangenetic web item recommendation system
US9529908B2 (en) * 2010-11-22 2016-12-27 Microsoft Technology Licensing, Llc Tiering of posting lists in search engine index
US9424351B2 (en) 2010-11-22 2016-08-23 Microsoft Technology Licensing, Llc Hybrid-distribution model for search engine indexes
US9342582B2 (en) 2010-11-22 2016-05-17 Microsoft Technology Licensing, Llc Selection of atoms for search engine retrieval
US9195745B2 (en) 2010-11-22 2015-11-24 Microsoft Technology Licensing, Llc Dynamic query master agent for query execution
NZ589787A (en) * 2010-12-08 2012-03-30 S L I Systems Inc A method for determining relevant search results
WO2012120560A1 (ja) * 2011-03-07 2012-09-13 株式会社日立製作所 検索装置及び検索方法
WO2013069149A1 (ja) * 2011-11-11 2013-05-16 株式会社日立製作所 データ検索装置、データの検索方法及びプログラム
US9020911B2 (en) 2012-01-18 2015-04-28 International Business Machines Corporation Name search using multiple bitmap distributions
US20130246045A1 (en) * 2012-03-14 2013-09-19 Hewlett-Packard Development Company, L.P. Identification and Extraction of New Terms in Documents
US9436740B2 (en) 2012-04-04 2016-09-06 Microsoft Technology Licensing, Llc Visualization of changing confidence intervals
US8983936B2 (en) * 2012-04-04 2015-03-17 Microsoft Corporation Incremental visualization for structured data in an enterprise-level data store
US9607045B2 (en) 2012-07-12 2017-03-28 Microsoft Technology Licensing, Llc Progressive query computation using streaming architectures
US9514214B2 (en) 2013-06-12 2016-12-06 Microsoft Technology Licensing, Llc Deterministic progressive big data analytics
US9665605B2 (en) * 2014-09-09 2017-05-30 Kcura Llc Methods and apparatus for building a search index for a database
US9785724B2 (en) 2014-10-30 2017-10-10 Microsoft Technology Licensing, Llc Secondary queue for index process
JP2016157290A (ja) * 2015-02-25 2016-09-01 富士通株式会社 文書検索装置、文書検索方法、および文書検索プログラム
US10740328B2 (en) 2016-06-24 2020-08-11 Microsoft Technology Licensing, Llc Aggregate-query database system and processing
US10552435B2 (en) 2017-03-08 2020-02-04 Microsoft Technology Licensing, Llc Fast approximate results and slow precise results
US11188594B2 (en) * 2018-02-07 2021-11-30 Oracle International Corporation Wildcard searches using numeric string hash

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203288A (ja) * 1998-01-09 1999-07-30 Canon Inc データベース参照装置
JPH11259518A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd データベース検索方法
US6704722B2 (en) * 1999-11-17 2004-03-09 Xerox Corporation Systems and methods for performing crawl searches and index searches
JP2005327023A (ja) * 2004-05-13 2005-11-24 Canon Inc ヒット数予想を利用した全文検索の検索方式
US7305385B1 (en) * 2004-09-10 2007-12-04 Aol Llc N-gram based text searching
JP2006146514A (ja) * 2004-11-18 2006-06-08 Nippon Telegr & Teleph Corp <Ntt> データベース検索システムおよび方法、プログラムおよび記録媒体
JP4368889B2 (ja) * 2006-12-21 2009-11-18 株式会社日立製作所 検索装置、検索方法、及びプログラム

Also Published As

Publication number Publication date
US20080306919A1 (en) 2008-12-11
US7966307B2 (en) 2011-06-21
JP2008305175A (ja) 2008-12-18

Similar Documents

Publication Publication Date Title
JP4980148B2 (ja) 文書検索方法
JP5155001B2 (ja) 文書検索装置
CN109241274B (zh) 文本聚类方法及装置
US7490078B2 (en) Stream data processing system and method for avoiding duplication of data process
US7739220B2 (en) Context snippet generation for book search system
KR101479040B1 (ko) 태그들을 문서에 자동으로 추가하는 방법, 장치 및 컴퓨터 저장 매체
KR100816923B1 (ko) 문서 분류 시스템 및 그 방법
US8577155B2 (en) System and method for duplicate text recognition
JP5010885B2 (ja) 文書検索装置、文書検索方法および文書検索プログラム
US9164980B2 (en) Name identification rule generating apparatus and name identification rule generating method
WO2007001128A1 (en) Method and system for determining relation between search terms in the internet search system
CN101398820A (zh) 一种大规模关键词匹配方法
US9519704B2 (en) Real time single-sweep detection of key words and content analysis
US6546383B1 (en) Method and device for document retrieval
CN111324705B (zh) 自适应性调整关联搜索词的系统及其方法
JP2006323575A (ja) 文書検索システム、文書検索方法、文書検索プログラム及び記録媒体
CN111066295A (zh) 邮件检查装置、邮件检查方法和邮件检查程序
US10572592B2 (en) Method, device, and computer program for providing a definition or a translation of a word belonging to a sentence as a function of neighbouring words and of databases
US8195686B2 (en) Search method and search program
JP4952309B2 (ja) 負荷分析システム、方法、及び、プログラム
JP5223380B2 (ja) 評価方法および検索装置
US20110172991A1 (en) Sentence extracting method, sentence extracting apparatus, and non-transitory computer readable record medium storing sentence extracting program
KR101147508B1 (ko) 검색식 추천 장치 및 방법
JP2005339282A (ja) サービス検索装置とその方法、プログラム
JPH06325091A (ja) 類似度評価型データベース検索装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120321

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120418

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees