JPH0830633A - テキストデータ検索装置 - Google Patents

テキストデータ検索装置

Info

Publication number
JPH0830633A
JPH0830633A JP6160828A JP16082894A JPH0830633A JP H0830633 A JPH0830633 A JP H0830633A JP 6160828 A JP6160828 A JP 6160828A JP 16082894 A JP16082894 A JP 16082894A JP H0830633 A JPH0830633 A JP H0830633A
Authority
JP
Japan
Prior art keywords
character
search
hash table
text
component table
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
Application number
JP6160828A
Other languages
English (en)
Inventor
Satoshi Asakawa
悟志 浅川
Junichi Kotani
純一 小谷
Atsushi Hatakeyama
敦 畠山
Hajime Terachi
元 寺地
Shuzo Tomohiro
修造 友広
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
Hitachi Seibu Software Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Seibu Software Co 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, Hitachi Seibu Software Co Ltd filed Critical Hitachi Ltd
Priority to JP6160828A priority Critical patent/JPH0830633A/ja
Publication of JPH0830633A publication Critical patent/JPH0830633A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 対象となるデータベース毎に最適な状態に維
持されたハッシュテーブル、および、文字成分表を使用
して、テキストデータの検索処理を高速に行えるテキス
トデータ検索装置を提供すること。 【構成】 文字成分表と、ハッシュテーブルと、テキス
トデータからなるデータベース本体をサーチする前に、
前記ハッシュテーブル、および、文字成分表を使用する
文字成分表サーチを含む補助サーチ行う第1の手段と、
前記第1の手段により絞り込まれた文書に対してテキス
トサーチを行う第2の手段とを具備する階層プリサーチ
方式のテキストデータ検索装置において、各データベー
ス毎の文字成分表、および、ハッシュテーブルと、文書
を登録あるいは削除した場合にハッシュテーブルの最適
化状態を判断し、新たに文字成分表、および、ハッシュ
テーブルを再作成する手段とを具備する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、フルテキストサーチ方
式のテキストデータ検索装置に係わり、特に、その検索
処理を高速化したテキストデータ検索装置に関する。
【0002】
【従来の技術】従来、インデックス情報を用いない文書
検索システムとして、例えば、特開平4−274557
号公報(テキストデータベース検索方法及び装置)に記
載されているように、検索文字列の探索処理を高速化す
るために、テキスト本体をサーチする以前にテキストデ
ータを予め情報圧縮しておいた補助ファイルをサーチ
し、テキスト本体をサーチする文書件数を絞り込むこと
によって等価的に高速なフルテキストサーチを実現する
文書検索方式(階層プリサーチ方式)が公知である。
【0003】前記公報(特開平4−274557号)で
は、補助ファイルとして、テキストデータ内で使用可能
な全ての文字に対して1ビットの情報を割り付けたビッ
トリストである文字成分表と、テキストデータを単語レ
ベルで部分文字列に分割し、分割した部分文字列間で相
互に文字列の包含関係を調べ、他の部分文字列に含まれ
る文字列を排除した部分文字列の集合からなる凝縮テキ
ストを使用している。
【0004】図17は、前記公報(特開平4−2745
57号)に記載されている階層プリサーチによる検索手
順を説明するための図である。
【0005】図17において、201は文字成分表であ
り、例えば、文書1には、「あ」、「い」、「音」、
「声」、「認」、「識」という文字が含まれているため
それぞれの文字に対応するビットがオンになっている。
【0006】202は凝縮テキストであり、例えば、テ
キスト203の文書4では、「音声」、「対」、「音
声」、「応答」という単語を含んでいるが、この中で、
「音声」という単語は2度出現しており、凝縮テキスト
ではこの重複を排除して「音声」という単語は1つだけ
含まれるようにしている。
【0007】203はテキストであり、テキスト203
はテキストデータを変更を加えずに格納したものであ
る。
【0008】200は階層プリサーチによる検索手順を
表しており、まず、文字成分表サーチで文字単位の絞り
込みを行い、次に、文字成分表サーチで絞り込まれた文
書に対し凝縮テキストサーチで単語単位の絞り込みを行
い、最後にテキストをサーチするという方式である。
【0009】このように、最も検索に時間がかかるテキ
スト本体を探索する量を、文字成分表、および、凝縮テ
キストのサーチで減らすことにより、高速なフルテキス
トサーチを実現している。
【0010】前記階層プリサーチ方式では、テキストデ
ータをサーチする量をできる限り少なくすることによ
り、より高速な検索を行うことができる。
【0011】即ち、文字成分表、凝縮テキストといった
補助ファイルサーチ時の文書のヒット率を小さくする、
別の言い方をすれば、絞り込み率を小さくすることによ
り、より高速な検索を行うことができる。
【0012】このような考え方にしたがい、前記公報
(特開平4−274557号公報)に記載されている文
字成分表について、テキトスデータに含まれる2文字以
上の文字列に対し、1ビットの情報を割り付けた連接文
字成分表により絞り込み率を向上させることが、例え
ば、特開平5−174064号公報(テキストデータベ
ース検索方法及び装置)に記載されている。
【0013】図18は、前記公報(特開平5−1740
64号)に記載されている連接文字成分表の構造を説明
するための図である。
【0014】図18に示すように、前記公報(特開平5
−174064号)に記載されている連接文字成分表で
は、テキスト中の2文字以上の部分文字列を1エントリ
とする。
【0015】検索時には、検索文字列を2文字以上の部
分文字列に分割し、文字成分表の該当ビットリストの論
理積をとることにより候補文書を抽出する。
【0016】例えば、「オンライン」という検索文字列
ならば、「オン」、「ンラ」、「ライ」、「イン」とい
う部分文字列に分割し、そのそれぞれで文字成分表の該
当ビットリストの論理積をとる。
【0017】このように2文字以上の部分文字列を使う
ことにより、1文字の場合よりもテキスト中での出現頻
度を抑えることができ、その結果、頻繁に使用される文
字でも十分な絞り込みが可能となる。
【0018】しかし、このような2文字以上の部分文字
列で文字成分表を作成すると文字成分表のサイズが大き
くなりすぎるという問題がある。
【0019】例えば、2文字の部分文字列による文字成
分表では、6,879文字種×6,879文字種=4
7,320,641種のエントリを用意する必要があ
る。これは、メモリを大量に消費してしまい好ましいこ
とではない。
【0020】そこで、前記公報(特開平5−17406
4号)では、図19に示すように、複数の文字成分表エ
ントリを一つのエントリにハッシングすることにより大
量のメモリを消費する文字成分表の縮小化も提案してい
る。
【0021】前記方法では、図19に示すハッシュテー
ブル400を用いる。
【0022】ハッシュテーブル400には、どの部分文
字列が文字成分表のどのエントリにハッシングされてい
るかという情報が格納されている。
【0023】例えば、図19の例では、「関係」、「経
済」という部分文字列は同じ文字成分表エントリにハッ
シュされている。
【0024】検索時には、まず、このハッシュテーブル
400から、各検索文字列の部分文字列が文字成分表の
どのエントリに対応しているかという情報を得て、文字
成分表を引くことになる。
【0025】しかし、このハッシュテーブル400を用
いた連接文字成分表では、テキストデータに含まれてい
る部分文字列の使用頻度の違いにより、文字成分表の各
エントリに対応する文書数が多くなってしまうという問
題がある。
【0026】即ち、使用頻度の高い部分文字列どうしを
同じ文字成分表エントリにハッシングしてしまうと、そ
の文字成分表エントリに対応する文書の数が多くなって
しまい、その結果として、その部分文字列による文字成
分表サーチでは十分に絞り込むことができず、検索性能
が低下してしまうという問題点があった。
【0027】前記問題点に対して、前記公報(特開平5
−174064号)では、テキストデータに含まれてい
る部分文字列の使用頻度から、使用頻度の少ない文字ど
うしを同じエントリにハッシングする文字使用頻度情報
ハッシング方式を提案している。
【0028】図20は、前記文字使用頻度情報ハッシン
グ方式を説明するための図である。
【0029】図20に示すように、前記文字使用頻度情
報ハッシング方式の文字成分表を作成するには、まず、
第1のステップとして、テキストデータに含まれている
部分文字列の使用頻度のカウントを行う。
【0030】図20におけるグラフ550は、テキスト
データに含まれている2文字の部分文字列の使用頻度を
表したもので、縦軸がその部分文字列を含んでいる文書
の数で、横軸が2文字からなる部分文字列の種類であ
る。
【0031】グラフ550に示したように、一般的にテ
キストデータからなるデータベースに含まれている文字
列の使用頻度は、各部分文字列によって異なる値とな
る。
【0032】次に、第2のステップとして、この部分文
字列を使用頻度の多い順にソートする。
【0033】図20におけるグラフ551は、前記ソー
トした結果を表すグラフである。
【0034】また、図20におけるグラフ552は、横
軸、即ち、部分文字列の種類がXで示された数になるよ
うに、ハッシングを行ったもので、Xが文字成分表のエ
ントリ数となる。
【0035】使用頻度が基準値に満たなかった文字列
は、他の使用頻度が基準値に満たなかった文字列と同じ
エントリにハッシングされ、そのエントリでの使用頻度
の合計が基準値と等しくなるように平均化される。
【0036】例えば、「電流」と「電圧」という文字列
は使用頻度が基準値よりも小さいため、一つのエントリ
にハッシングされ、このどちらの文字列で検索を行って
も、文字成分表でのヒット件数は基準値と等しくなる。
【0037】即ち、基準値より使用頻度が小さかった文
字列については、どの文字列で検索を行っても文字成分
表でのヒット率は同じになる。
【0038】また、「電気」という文字列のように、使
用頻度が基準値より大きい文字列は、他の文字列と重複
したハッシングは行わず、単独で一つのエントリとす
る。
【0039】このように、従来では、頻度情報ハッシン
グ方式により、テキストデータに含まれている部分文字
列の使用頻度の違いによる文字成分表の絞り込み率悪化
を改善していた。
【0040】
【発明が解決しようとする課題】前記公報(特開平5−
174064号)に記載されている文字使用頻度ハッシ
ングによる文字成分表においては、検索文字列として、
どの文字が使用されていても、平均的に最低の文字成分
表での絞り込み率を得るためには、ハッシュテーブル
が、検索対象となっているデータベース毎のテキストデ
ータの文字使用頻度を正確に反映したハッシングにより
作成されている必要がある。
【0041】そのため、複数のデータベースを管理する
テキストデータ検索装置においては、データベースが異
なれば部分文字列の使用頻度も異なるため、あるデータ
ベースにおいては、検索性能が低下するという問題点が
あった。
【0042】また、テキストデータの文字使用頻度は、
文書の登録、削除を繰り返すと変化してしまう。
【0043】テキストデータから文字列使用頻度を取得
し、ハッシュテーブルを作成した直後では、図21にお
けるグラフ650のように、文字成分表の各エントリに
入っている文書の数は平均化されている。
【0044】しかしながら、例えば、「電流」という部
分文字列を含む文書が多数追加登録された場合、図21
におけるグラフ651のように文字成分表のエントリに
入っている文書の数が平均値からずれてしまう。
【0045】したがって、「電流」という部分文字列の
検索を行った場合、文字成分表での文書のヒット文書件
数は平均化された数より多くなり、検索性能は低下す
る。
【0046】このような状態になった場合は、ハッシュ
テーブルをテキストデータの文字使用頻度と正確に一致
させるため、文字使用頻度を再度取得して、ハッシュテ
ーブルと文字成分表を再作成する必要がある。
【0047】しかし、データベースの容量が大きくなる
と、この処理には長時間かかってしまうため、頻繁に行
うには現実的ではなく、かつ、いつこの再作成を行えば
良いかというタイミングをユーザが知ることは容易では
ないという問題点があった。
【0048】また、文字使用頻度ハッシュ方式では、ハ
ッシュテーブルを作成することにより文字成分表の大き
さを圧縮すると共に、どの文字を含む検索文字列で検索
を行っても平均的に最低な文字成分表での絞り込み率を
維持することが可能となる。
【0049】しかし、使用頻度が少ない部分文字列は、
複数個で一つの文字成分表エントリにハッシングされて
しまうため、もし、これらの使用頻度が少ない文字を他
の文字と重複したハッシングをせず、独立した文字成分
表でのエントリを持たせたならば文字成分表でのヒット
文書件数はもっと小さくできたにもかかわらず、平均値
と等しいヒット文書件数となってしまう。
【0050】そのため、ユーザが、特定の部分文字列に
対する検索性能を高く維持したいような場合であって
も、特定の部分文字列に対するヒット文書件数が、平均
値と等しいヒット文書件数となってしまうという問題点
があった。
【0051】本発明は、前記従来技術の問題点を解決す
るためになされたものであり、本発明の目的は、テキス
トデータ検索装置において、対象となるデータベース毎
に最適な状態に維持されたハッシュテーブル、および、
文字成分表を使用して、テキストデータの検索処理を高
速に行える技術を提供することにある。
【0052】本発明の前記目的並びにその他の目的及び
新規な特徴は、本明細書の記載及び添付図面によって明
らかにする。
【0053】
【課題を解決するための手段】本願において開示される
発明のうち、代表的なものの概要を簡単に説明すれば、
下記の通りである。
【0054】(1)文書中で使用される文字の数より少
ないエントリに文字コードをマッピングした文字成分表
と、前記文字成分表をアクセスするための使用されるハ
ッシュテーブルと、テキストデータからなるデータベー
ス本体をサーチする前に、前記ハッシュテーブル、およ
び、文字成分表を使用する文字成分表サーチを含む補助
サーチ行う第1の手段と、前記第1の手段により絞り込
まれた文書に対してテキストサーチを行う第2の手段と
を具備する階層プリサーチ方式のテキストデータ検索装
置において、各データベースで使用される文字の使用頻
度を基づき最適化された、複数のデータベース毎の文字
成分表、および、ハッシュテーブルと、文書を登録ある
いは削除した場合にハッシュテーブルの最適化状態を判
断する判断手段と、前記判断手段に基づきハッシュテー
ブルが最適状態でないと判断した場合に、新たに文字成
分表、および、ハッシュテーブルを再作成する手段とを
具備することを特徴とする。
【0055】
【作用】前記手段によれば、複数のデータベースを管理
するテキストデータ検索装置において、各データベース
毎に最も効率よく検索できるよう最適化された文字成分
表、および、ハッシュテーブルを使用し、また、文書を
登録あるいは削除した場合に、ハッシュテーブルの最適
化状態を判断し、新たに文字成分表、および、ハッシュ
テーブルを再作成して、各データベース毎のテキストデ
ータを検索するようにしたので、その検索処理を高速化
することが可能となる。
【0056】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0057】なお、実施例を説明するための全図におい
て、同一機能を有するものは同一符号を付け、その繰り
返しの説明は省略する。
【0058】(実施例1)図1は、本発明の一実施例
(実施例1)であるテキストデータ検索装置の概略構成
を示すブロック図である。
【0059】図1に示すように、本実施例1のテキスト
データ検索装置は、ディスプレイ100、キーボード1
01、CPU102、原文書を取り込むためのフロッピ
ディスク等からなる入力デバイス103、主メモリ10
4、データベースを格納するディスク装置120から構
成される。
【0060】主メモリ104には、テキスト登録プログ
ラム105、凝縮テキスト登録プログラム106、文字
成分表登録プログラム107、ハッシュテーブル登録プ
ログラム108、文書削除プログラム109、ハッシュ
テーブル最適化チェックプログラム110、これら文書
登録・削除のためのプログラムを制御する文書登録・削
除制御プログラム111という文書登録・削除関連プロ
グラム群と、検索条件式解析プログラム114、文字成
分表サーチプログラム115、凝縮テキストサーチプロ
グラム116、テキストサーチプログラム117、これ
らの文書検索のためのプログラムを制御する階層検索制
御プログラム118、その他データベースオープンプロ
グラム112、データベースクローズプログラム113
と、検索に必要なデータ、及びテーブルを格納するデー
タエリア119が存在する。
【0061】ディスク装置120には、全データベース
に共通に使用する標準ハッシュテーブル121、各デー
タベース毎のテキスト122、凝縮テキスト123、文
字成分表124、ハッシュテーブル125が設けられ
る。
【0062】データベース1は、それに対応するハッシ
ュテーブル1(125)、および、文字成分表1(12
4)を使用して文字成分表サーチを行い、また、データ
ベース2は、それに対応するハッシュテーブル2(12
5)、および、文字成分表2(124)を使用して文字
成分表サーチを行う。
【0063】このように、検索対象のデータベースの文
字使用頻度に最適にハッシングされた文字成分表サーチ
を常に行うことにより、どのような検索文字列でも、平
均的に最低の文字成分表での絞り込み率を得ることがで
きる。
【0064】例えば、「電子技術データベース」、「新
聞記事データベース」という2つのデータベースが存在
するとする。
【0065】ここで、「電流」と「電圧」という2つの
文字列が両データベースに含まれているとし、かつ、
「電子技術データベース」でのこの2つの文字列の使用
頻度は、「新聞記事データベース」での使用頻度より高
いとする。
【0066】その場合、それぞれのデータベースに対応
する文字成分表での、「電流」と「電圧」のハッシング
状況は図2に示すようになる。
【0067】図2において、グラフ150が「電子技術
データベース」でのハッシング状況を、グラフ151が
「新聞記事データベース」でのハッシング状況を示して
いる。
【0068】「電子技術データベース」では、「電流」
及び「電圧」という部分文字列の使用頻度が高いため、
それぞれ別々の文字成分表エントリになるようにハッシ
ングされ、「新聞記事データベース」では、これらの二
つの部分文字列の出現頻度が低かったため、一つの重複
した文字成分表エントリにハッシングされている状態を
示している。
【0069】このように、各データベースのテキストデ
ータに含まれる部分文字列の使用頻度の違いにより、ハ
ッシングのされ方が大きく異なる場合がある。
【0070】このような場合でも、各データベース毎
に、それに対応するハッシュテーブル(125)を持た
せることで、常に、平均的に最小の文字成分表ヒット率
を得ることができる。
【0071】前記した如く、各データベースは、テキス
ト122、凝縮テキスト123、文字成分表124、ハ
ッシュテーブル125の4つのファイルから構成されて
おり、凝縮テキスト123、文字成分表124、ハッシ
ュテーブル125は、テキスト本体をサーチする文書数
を絞り込むために使用する補助ファイルである。
【0072】即ち、テキスト本体をサーチする前にこれ
らの補助ファイルによるサーチを行い、そこで文書数を
より少なく絞り込むほど検索性能が向上する。
【0073】次に、図3を使用して、テキスト122、
および、凝縮テキスト123について説明する。
【0074】図3において、原文書130は、データベ
ースとして登録するテキストデータである。
【0075】テキスト122は、この原文書を変更を加
えずに蓄積したものである。
【0076】凝縮テキスト123は、テキストを単語レ
ベルで部分文字列に分割し、分割した部分文字列間で相
互に文字列の包含関係を調べ、他の部分文字列に含まれ
る文字列を排除した部分文字列の集合である。
【0077】例えば、テキスト122における文書4の
「音声に対し音声で応答する」というテキストでは、ひ
らがなを取り除いた「音声、対、音声、応答」から、重
複する「音声」という部分文字列を一つだけに圧縮した
「音声、対、応答」が凝縮テキスト123となる。
【0078】次に、文字成分表124、および、ハッシ
ュテーブル125について、前記図19を使用して詳細
に説明する。
【0079】図1に示す文字成分表124、および、ハ
ッシュテーブル125が、図19における文字成分表4
01、および、ハッシュテーブル400に該当する。
【0080】文字成分表401は、テキスト122の全
ての1文字以上の部分文字列に対して1ビットの情報を
割り付けたビットリストである。
【0081】本実施例1では、2文字の部分文字列に対
し1ビットの情報を割り付けた連接文字成分表を使用す
る。
【0082】ハッシュテーブル400は、複数の部分文
字列を文字成分表の一つのエントリに対応付けている。
【0083】例えば、「経済」という検索文字列で文字
成分表を検索する場合を考えてみると、「経済」という
部分文字列に対しハッシュテーブル400の「関係、経
済」のエントリを引き、このハッシュテーブルエントリ
が指す文字成分表エントリのビットがオンとなる文書1
と文書3をヒットさせる。
【0084】通常、ある1文字の部分文字列を含む文書
の数は、ある2文字以上の部分文字列を含む文書の数よ
り多くなる。
【0085】例えば、2万件程度の一般的な新聞記事デ
ータで、「経」という1文字の部分文字列を含む文書は
約4000件存在し、「経済」という2文字の部分文字
列を含む文書は1800件存在するという実例がある。
【0086】即ち、1文字の部分文字列に対し1ビット
情報を割り付けた文字成分表より、2文字の部分文字列
に対し1ビットの情報を割り付けた文字成分表の方がよ
り少ない文書に絞り込むことが可能であり、検索性能も
向上する。
【0087】更に、より長い部分文字列に対し1ビット
の情報を割り付けた文字成分表の方がより少ない文書に
絞り込むことが可能である。
【0088】また、2文字の連接文字成分表で、2文字
の部分文字列に対し単純に1ビットの情報を割当てたと
すると、シフトJISコードの場合には文字数が全部で
6,879あるため、6,879×6,879=47,
320,641種の組み合わせの文字列に対しエントリ
を用意する必要があり、これは、メモリを大量に消費し
実用上好ましくない。
【0089】そのため、本実施例1では、ハッシュテー
ブル400を用意し、複数の部分文字列を文字成分表の
一つのエントリにまとめることにより文字成分表を小さ
くしている。
【0090】どの部分文字列を一つのハッシュテーブル
エントリに組み合わせるかということは、高い検索性能
を維持するために重要な項目である。
【0091】テキストデータ内での各部分文字列が出現
する文書の数は、前記図20におけるグラフ550のよ
うにばらばらに異なっている。
【0092】このことから、誤って出現頻度の高い検索
文字列同士を同じハッシュテーブルエントリに組み合わ
せてしまうと、その部分文字列での文字成分表サーチで
はほとんど絞り込むことができず、検索性能が大幅に低
下することになる。
【0093】例えば、前記図20の例では、数の多い
「電気」と「電圧」という部分文字列の組み合わせがハ
ッシュテーブル400のエントリとなった場合、これが
指す文字成分表エントリに含まれる文書の数は多くな
り、文字成分表で十分に文書を絞り込むことができなく
なる。
【0094】このような問題を避けるために、本実施例
1では、図20におけるグラフ552に示すように、出
現頻度の多い部分文字列は、単独のエントリを与え、出
現頻度の少ない部分文字列同士は同じハッシュテーブル
エントリに対応させ、各ハッシュテーブルエントリに対
応する文書の数が基準値で平均化するように調整する文
字使用頻度情報ハッシング方式を採用している。
【0095】例えば、前記図20では、「電流」と「電
圧」という基準値より出現頻度が少ない部分文字列同士
を同じハッシュテーブルエントリに組み合わせている。
【0096】これにより、どの部分文字列で検索を行っ
ても、平均的に最低の文字成分表での絞り込み率を維持
することができる。
【0097】また、データベースの内容が異なれば、各
部分文字列が出現する文書の数も異なる。
【0098】そのため、本実施例1では、各データベー
ス毎に文字使用頻度ハッシング方式で最適化したハッシ
ュテーブル125を用意し、最高の検索性能が得られる
ようしている。
【0099】即ち、各テキストデータ毎に文字成分表1
24、および、ハッシュテーブル125がそれぞれ存在
し、ハッシュテーブル125は、各データベース毎のテ
キストデータの文字使用頻度情報を使用して、どの検索
文字列であっても、平均的に最小のヒット率が得られる
ようにハッシングが行われている。
【0100】そして、検索を行う場合には、検索対象の
テキストデータに対応するハッシュテーブル125を使
用して文字成分表サーチを行う。
【0101】次に、図4を用いて、本実施例1における
検索時の動作を説明する。
【0102】始めに、ステップ301において、データ
ベースのオープンを行う。
【0103】キーボード101より検索を希望するデー
タベースをオープンするためのコマンドを入力すると、
データベースオープンプログラム112は、ディスク装
置120から指定されたデータベースのテキスト12
2、凝縮テキスト123、文字成分表124、ハッシュ
テーブル125を主メモリ104上のデータエリア11
9に展開する。
【0104】次に、ステップ302において、キーボー
ド101より検索コマンドと検索文字列を入力する。
【0105】検索コマンドと検索文字列は、検索条件式
解析プログラム114により解析が行われる。
【0106】その後、ステップ303において、文字成
分表サーチプログラム115により、ハッシュテーブル
125、文字成分表124を使用して文字成分表サーチ
を行う。
【0107】例えば、図5に示すように、「ライオン」
という検索文字列が与えられたとすると、まずこれを部
分文字列に分解する。
【0108】生成される部分文字列は、「ライ」、「イ
オ」、「オン」の3つとなる。
【0109】このそれぞれの部分文字列を使って、ハッ
シュテーブル125、文字成分表124を引く。
【0110】前記図19に示すハッシュテーブル400
では、「イオ」と「オン」は、同じハッシュテーブルエ
ントリに配置されているため、この両者から得られる文
字成分表エントリは同じものとなる。
【0111】このようにして得た各部分文字列に対応す
る文字成分表エントリのビットリストの論理積を取った
結果でビットがオンになっている文書がヒットした文書
となる。図5の場合には、文書1と文書3がヒットした
ことになる。
【0112】次に、ステップ304において、前記ステ
ップ303の文字成分表サーチで絞り込まれた文書に対
し、凝縮テキストサーチプログラム116により、凝縮
テキスト123を使って凝縮テキストサーチを行う。
【0113】凝縮テキストサーチは、検索文字列を単語
に分割し、分割された各単語単位に検索を行う。
【0114】例えば、「経済の発展」という検索文字列
であれば、「経済」、「発展」という単語単位で凝縮テ
キスト123をサーチし、その両方の単語が出現した文
書をヒットさせる。
【0115】次に、ステップ305において、前記ステ
ップ304の凝縮テキストサーチで絞り込まれた文書に
対し、テキストサーチプログラム117により、テキス
ト122を使用してテキストサーチを行う。
【0116】テキストサーチでは、検索文字列そのもの
をサーチする。
【0117】例えば、「経済と発展」という検索文字列
であれば、「経済と発展」という文字列が存在する文書
をヒットさせる。
【0118】以上の処理の結果得られた検索結果は、デ
ィスプレイ100に表示される。
【0119】もし、まだ別の検索文字列による検索を続
ける場合には、繰返しキーボード100から検索コマン
ドと検索文字列を入力し、以上説明してきたことと同様
の処理を行う。
【0120】検索を終了するには、ステップ306にお
いて、データベースのクローズを行う。
【0121】キーボード101よりデータベースをクロ
ーズするためのコマンドを入力すると、データベースク
ローズプログラム113が、主メモリのデータエリア1
19に展開されているテキスト122、凝縮テキスト1
23、文字成分表124、ハッシュテーブル125を解
放する。
【0122】階層検索制御プログラム118は、前記検
索条件式解析プログラム114、文字成分表サーチプロ
グラム115、凝縮テキストサーチプログラム116、
テキストサーチプログラム117の実行の制御を行う。
【0123】以上説明したように、本実施例1では階層
検索方式を採用しており、通常の場合、文字成分表サー
チで全文書件数の10%程度まで絞り込み、凝縮テキス
トサーチで全文書件数の5%程度まで絞り込むことがで
きる。
【0124】即ち、最も検索に時間がかかるテキストサ
ーチを行う文書の数は全文書の5%程度で済むため、高
速な検索を実現している。
【0125】更に、本実施例1は、データベース毎に最
適化されたハッシュテーブル125を用意しているた
め、常に文字成分表で低い絞り込み率を維持することが
でき、ハッシュテーブル125をデータベース間で共用
する場合に比べて、より高い検索性能を実現している。
【0126】次に、図6を用いて、本実施例1の文書の
登録動作について説明する。
【0127】まず、キーボード101から文書登録を実
行するコマンドを入力し、入力デバイス103から登録
する文書のテキストデータを入力する。
【0128】始めに、ステップ501において、テキス
ト登録プログラム105によりテキスト122の作成、
および、ディスク装置120への登録を行う。
【0129】テキスト122の作成手順は、前記図3に
示すように、入力デバイス103から入力された原文書
130に変更を加えずにテキスト122に追加するとい
う手順により行う。
【0130】次に、ステップ502において、凝縮テキ
スト登録プログラム106により凝縮テキスト123の
作成、および、ディスク装置120への登録を行う。
【0131】凝縮テキスト123の作成手順は、前記図
3に示すように、テキスト122を単語レベルで部分文
字列に分割し、分割した部分文字列間で相互に文字列の
包含関係を調べ、他の部分文字列に含まれる文字列を排
除する。
【0132】例えば、テキスト122の文書4「音声に
対し音声で応答する」というテキストでは、ひらがなを
取り除いた「音声、対、音声、応答」から、重複する
「音声」という部分文字列を一つだけに圧縮した「音
声、対、応答」が凝縮テキスト123となる。
【0133】次に、ステップ503において、文字成分
表登録プログラム107により文字成分表124の作
成、および、ディスク装置120への登録を行う。
【0134】前記文字成分表124の作成手順につい
て、図7を用いて説明する。
【0135】始めに、ステップ601において、登録す
る文書のテキスト122に含まれる2文字からなる部分
文字列の全てを抽出する。
【0136】次に、ステップ602において、各部分文
字列で、ハッシュテーブル125を引く。
【0137】次に、ステップ603において、そのハッ
シュテーブルエントリが対応する文字成分表エントリの
新規文書のビットをオンにする。
【0138】例えば、図8に示すように、「・・経済の
発展には・・」という新規文書を登録する場合、このテ
キストデータの部分文字列「経済」に対しては、ハッシ
ュテーブル125から「経済」に対応するエントリを引
き、そのハッシュテーブルエントリに対応する文字成分
表エントリの新規文書に対応するビットをオンにする。
【0139】以下、このテキストデータ中の全部分文字
列に対し同様の処理を行う。
【0140】次に、ステップ504において、ハッシュ
テーブル最適化チェックプログラム110によるハッシ
ュテーブル125の最適化チェックを行う。
【0141】テキスト122に含まれる部分文字列の使
用頻度から正確にハッシュテーブル125を作成したと
しても、ハッシュテーブル125の決定後にテキストに
文書の登録を継続的に行った場合は、登録する文書に含
まれている部分文字列が、登録前の文字使用頻度情報で
ハッシングされている文字成分表124に追加されるこ
とになり、結果として、ハッシュテーブル125が最適
な状態から徐々に悪い方向へ変化していくことになる。
【0142】そのため、ハッシュテーブル125の最適
化をチェックし、テキスト122の実際の部分文字列の
使用頻度とハッシュテーブル125との不一致が発生し
た場合、再度テキスト122中の部分文字列の使用頻度
を採取し、ハッシュテーブル125、および、文字成分
表124を再作成する必要がある。
【0143】しかし、この作業は、計算機にとって負担
が大きいため、頻繁に実行すべきことではない。そこ
で、テキスト122中の部分文字列の使用頻度とハッシ
ュテーブル125との不一致による検索速度の低下の許
容範囲をユーザが定め、それを越えたときに、テキスト
122中の部分文字列の使用頻度情報の採取、ハッシュ
テーブル125、および、文字成分表124を再作成す
るようにした方が効果的である。
【0144】前記ハッシュテーブルの最適化チェックの
方式について、図9を用いて説明する。
【0145】図9に示すグラフ250は、何度か文書の
登録を行った後の各ハッシュテーブルエントリが対応す
る文字成分表エントリに含まれる文書の数を示してい
る。
【0146】文書の追加登録を行っていない状態では、
複数の部分文字列が一つのハッシュテーブルエントリに
ハッシングされているハッシュテーブルエントリに含ま
れる文書の数は基準値で一致しているはずであるが、文
書登録を繰り返すことにより、全テキストデータに含ま
れる部分文字列の数が偏って増加することになる。
【0147】その結果、基準値を越えるハッシュテーブ
ルエントリが出現するようになる。
【0148】例えば、図9に示すグラフ250では、
「電流」、「電圧」という部分文字列が含まれている文
書を多数登録したために、「電流」、「電圧」という部
分文字列が対応しているハッシュテーブルエントリに含
まれる文書の数が基準値より増加している。
【0149】このような状態になると、どの部分文字列
で文字成分表サーチを行った場合でも、ヒットする文書
件数は基準値に抑えられていたものが、例えば、「電
流」という部分文字列による文字成分表サーチを行った
場合には、基準値よりも多くの文書がヒットすることに
なり、文字成分表サーチで充分な絞り込みができなくな
るばかりでなく、「電圧」のように同一のエントリにマ
ッピングされた他の文字列で検索する場合も、充分な絞
り込みができなくなる。
【0150】ハッシュテーブル125の最適化チェック
は、図9に示すグラフ250のように、基準値に対し、
文字成分表での絞り込み悪化の許容範囲を設定し、これ
を上限基準値とする。
【0151】そして、複数の部分文字列の組み合わせで
ハッシングされているハッシュテーブルエントリが指す
文字成分表エントリに含まれる文書数がこの上限基準値
を越えていないかをハッシュテーブル最適化チェックプ
ログラム110がチェックする。
【0152】例えば、図9に示すグラフ250では、
「電流」、「電圧」の部分文字列のエントリが上限基準
値を越えているため、このハッシュテーブルは最適化さ
れていない状態と判断する。
【0153】もし、図9に示すグラフ251のように多
少基準値を越えていても、上限基準値を越えているエン
トリがなければ、そのハッシュテーブル125は最適化
されている状態と判断する。
【0154】前記ステップ504におけるハッシュテー
ブル最適化チェックプログラム110によるハッシュテ
ーブル125の最適化チェックで、ハッシュテーブル1
25は最適化されている状態であると判断された場合に
は、そこで登録作業が終了する。
【0155】もし、ハッシュテーブル125が最適化さ
れていないと判断された場合には、検索性能を維持する
ために、ハッシュテーブル125を最適化された状態に
編成しなおす必要がある。
【0156】本実施例1では、ステップ505におい
て、ユーザにそのことを知らせるメッセージをディスプ
レイ100に表示、警告し、文書の登録作業を終了す
る。
【0157】ユーザはこの警告に従い、ハッシュテーブ
ル125の再作成を実行することになる。
【0158】また、この方法以外に、ハッシュテーブル
125が、最適化されていないことをシステムが認識し
た時点で自動的にハッシュテーブル125の再作成を実
行するという方法でも可能である。
【0159】以下に、ハッシュテーブル125の作成手
順を、図10を用いて説明する。
【0160】始めに、ステップ901において、テキス
トデータ中の全文書の部分文字列を抽出し、各部分文字
列の出現頻度を集計する。
【0161】その結果は、前記図20のグラフ550の
ようになる。
【0162】通常の場合、このように各部分文字列が出
現する文書の数はばらばらの状態である。
【0163】前記図20のグラフ551は、これらの部
分文字列を出現頻度が多い順に整列した結果を示してい
る。
【0164】次に、ステップ502において、ハッシュ
テーブルエントリの数(文字成分表エントリの数と等し
い)と全部分文字列の出現頻度数の合計から基準値を算
出する。
【0165】ハッシュテーブルエントリの数をX、全部
分文字列の出現頻度数の合計をNとすると、基準値Zは
以下の式で求めることができる。
【0166】
【数1】 Z=N/X ・・・・・・・・・・・・
・(1−1)式 しかし、部分文字列の中には、出現頻度がZよりも大き
いものが存在する。
【0167】そういう部分文字列は他の部分文字列と組
み合わせたハッシュテーブルエントリにはせずに、単独
に一つのハッシュテーブルエントリを割り当てなければ
ならない。
【0168】このような単独割当て部分文字列の数を
A、全単独割当て部分文字列のデータベース内での出現
頻度数の合計をANとして、(1−1)式を修正すると
以下の式になる。
【0169】
【数2】 Z=(N−AN)/(X−A)・・・・
・(1−2)式 この(1−2)式で得られた基準値Zでも単独割当てに
変えなければならない部分文字列が存在する場合は、そ
の部分文字列をA、及びANに加えて再計算を行う。
【0170】最終的に単独割当て部分文字列に変えなけ
ればならない部分文字列がなくなるような基準値が得ら
れるまで再計算を続け、単独割当て部分文字列に変えな
ければならない部分文字列が無くなった時点でのZが真
の基準値となる。
【0171】次に、ステップ903において、出現頻度
が基準値に満たない部分文字列を他の出現頻度が基準値
に満たない部分文字列と同じハッシュテーブルエントリ
に組み合わせることによりそのハッシュテーブルエント
リが対応する文書の数を基準値と等しくする。
【0172】この操作を単独割当て部分文字列のハッシ
ュテーブルエントリ以外の全てのハッシュテーブルエン
トリに対して行う。
【0173】その結果が、前記図20に示すグラフ55
2である。
【0174】例えば、前記図20に示すグラフ552で
は、出現頻度が基準値に満たない「電流」、「電圧」と
いう部分文字列が同じハッシュテーブルエントリにハッ
シングされている。
【0175】また、出現頻度が基準値より大きい「電
気」という部分文字列は単独で一つのハッシュテーブル
エントリが割当てられている。
【0176】最後に、ステップ904において、この新
規に作成したハッシュテーブル125を使い、文字成分
表124全体を新規に作成する。
【0177】次に、データベースの初期登録時のハッシ
ュテーブルについて述べる。
【0178】データベースの初期登録時はハッシュテー
ブルが存在しない。
【0179】また、登録文書件数が少ないとハッシング
による検索性能向上の効果は小さい。
【0180】このため、データベースの初期登録時は、
新聞記事等の一般的に出現する部分文字列に偏りが少な
いデータベースから作成した標準ハッシュテーブル12
1を使用する。
【0181】そして、登録文書件数が充分増えた時点
で、前記したような方法でハッシュテーブル125を作
成する。
【0182】文書登録・削除制御プログラム111は、
前記テキスト登録プログラム105、凝縮テキスト登録
プログラム106、文字成分表登録プログラム107、
ハッシュテーブル登録プログラム108、ハッシュテー
ブル最適化チェックプログラム110の実行の制御を行
う。
【0183】次に、文書の削除操作について、図11を
用いて説明する。
【0184】始めに、ステップ1001において、テキ
スト122、凝縮テキスト123、文字成分表124か
ら削除する文書のデータを削除する。
【0185】次に、ステップ1002において、ハッシ
ュテーブル最適化チェックを行う。
【0186】文書削除時のハッシュテーブル最適化チェ
ック方式を、図12を用いて説明する。
【0187】文書の削除を繰返し行うと、ハッシュテー
ブルエントリに対応する文書の数が基準値より少ないも
のが出現する。
【0188】例えば、図12に示すグラフ350は、
「電流」・「電圧」という部分文字列を含む文書を多数
削除した結果、「電流」・「電圧」という部分文字列の
ハッシュテーブルエントリが対応する文書数が基準値よ
り少なくなった場合を示している。
【0189】この状態は検索性能が低下することはない
が、基準値を計算し直すことで、基準値をより低い値に
設定することが可能となり、検索性能を向上させること
ができる。
【0190】そこで、ハッシュテーブルエントリに対応
する文書の数がある値よりも少なくなった場合に、基準
値を再計算すべき旨を伝える下限基準値をあらかじめ設
定しておき、ハッシュテーブル最適化チェックでは、こ
の下限基準値を下回る文書数のハッシュテーブルエント
リが一つでも存在すれば、ハッシュテーブルが最適化状
態でないと判断する。
【0191】また、対応する文書数が基準値より少ない
ハッシュテーブルエントリが存在しても、下限基準値を
下回る文書数のハッシュテーブルエントリが存在しなけ
れば最適化状態であると判断する。
【0192】例えば、図12に示すグラフ351の場合
は、下限基準値を下回っているハッシュテーブルエント
リは存在しないため最適化状態であると判断され、図1
2に示すグラフ350の場合は、「電流」・「電圧」と
いう部分文字列のハッシュテーブルエントリが対応する
文書数が下限基準値を下回っているため最適化状態でな
いと判断される。
【0193】前記ステップ1002におけるハッシュテ
ーブル最適化チェック処理で、ハッシュテーブル125
が最適化状態であれば、文書削除処理は終了する。
【0194】ハッシュテーブル125が最適化状態でな
ければ、ステップ1003において、ユーザに対し、ハ
ッシュテーブル125の再作成を行う必要があることを
知らせるメッセージをディスプレイ100に表示し、警
告を行い、文書削除処理を終了する。
【0195】また、ハッシュテーブル125が最適化状
態でない場合、自動的にハッシュテーブル125を再作
成してしまうという方法でも実現可能である。
【0196】前記文書削除プログラム109、ハッシュ
テーブル最適化チェックプログラム110は、文書登録
・削除制御プログラム111によって実行の制御が行わ
れる。
【0197】以上説明してきたように、本実施例1のテ
キストデータ検索装置では、各テキストデータ122毎
に、最適化されたハッシュテーブル125、文字成分表
124を用いて高い検索性能を維持することができる。
【0198】(実施例2)次に、本発明の他の実施例
(実施例2)について説明する。
【0199】本実施例2は、前記実施例1に対して、ユ
ーザ指定ハッシング方式で作成したハッシュテーブルを
提供することにより、文字成分表での文書の絞り込みを
より向上させ、検索性能を向上させるものである。
【0200】本実施例2と前記実施例1とは、ディスク
装置内に格納される各データベースを構成するファイル
が相違するが、他の構成は同じである。
【0201】本実施例2におけるデータベースのファイ
ル構成を図13を用いて説明する。
【0202】図13において、2100はディスク装置
であり、また、各データベースを構成するファイルは、
テキスト2101、凝縮テキスト2102、文字成分表
2103、ハッシュテーブル2104、ユーザ指定ハッ
シングファイル2105である。
【0203】テキスト2101、凝縮テキスト210
2、文字成分表2103は、前記実施例1と同じであ
る。
【0204】本実施例2のハッシュテーブル2104
は、ユーザが指定する部分文字列を単独のハッシュテー
ブルエントリにハッシングを行うというユーザ指定ハッ
シング方式によって作成されている。
【0205】ユーザ指定ハッシングファイル2105
は、ユーザ指定ハッシングで単独のハッシュテーブルエ
ントリを割り当てたい部分文字列を記述したファイルで
ある。
【0206】前記ユーザ指定ハッシング方式について、
図14を用いて説明する。
【0207】図14において、グラフ450に示すハッ
シングの状態は、前記した方法によるハッシング方式で
最適化されている状態である。
【0208】ここで、「電流」という部分文字列で文字
成分表サーチを行った場合、ヒットする文書件数は基準
値と一致する。
【0209】この「電流」という部分文字列は、この部
分文字列を含む文書の数が基準値より少ないため、他の
部分文字列と組み合わされたハッシュエントリとなって
いる。
【0210】これを単独のハッシュテーブルエントリと
したものが、図14に示すグラフ451である。
【0211】この場合、「電流」という部分文字列で文
字成分表サーチを行った場合、ヒットする文書件数は基
準値より少なくなり、「電流」という部分文字列を含む
検索文字列での文字成分表サーチの絞り込み性能を向上
させることができる。
【0212】このように、ユーザ指定ハッシング方式に
より作成したハッシュテーブルはユーザが指定した特定
の部分文字列に対する検索性能向上させることを可能と
する。
【0213】ユーザが特定の部分文字列を指定するに
は、ユーザ指定ハッシングファイル2105にその部分
文字列を記述しておく。
【0214】図15に、前記ユーザ指定ハッシングファ
イル2105の形式の一例を示す。
【0215】図15に示す例では、「電流」、「電圧」
という部分文字列でユーザ指定ハッシングを行うよう指
定している。
【0216】前記ユーザ指定ハッシングの処理方式を、
図16を用いて説明する。
【0217】始めに、ステップ1501において、テキ
スト2101中の全文書の2文字からなる部分文字列を
抽出し、各部分文字列の出現頻度を集計する。
【0218】次に、ステップ1502において、ユーザ
指定ハッシングファイル2105を読み込み、ユーザが
単独のハッシュテーブルエントリを割り当てるよう指定
している部分文字列を得る。
【0219】次に、ステップ1503において、基準値
の算出を行う。
【0220】ユーザ指定ハッシングファイル2105か
ら得られる、ユーザが単独のハッシュテーブルエントリ
を割り当てるよう指定している部分文字列の数をU、そ
の全部分文字列の使用頻度合計をUNとすると、ユーザ
指定ハッシング方式での基準値を求める計算式は、前記
実施例1での(1−2)式にU、UNのパラメータを追
加し、以下のようになる。
【0221】
【数3】 Z=(N−AN−UN)/(X−A−
U)・・・(2−1) この式から得られる基準値Zよりも単独での出現頻度が
多い部分文字列が存在する場合、その部分文字列を単独
にハッシュテーブルエントリを割当てる部分文字列に変
更し、その部分文字列の数をAに加え、その部分文字列
のデータベース内での出現頻度をANに加えて、再計算
を行う。
【0222】最終的に単独にハッシュテーブル2104
を割当てるように変更しなければならない部分文字列が
なくなった時点でのZが真の基準値となる。
【0223】次に、ステップ1504において、ハッシ
ュテーブル2104の各エントリに対応する文書の数が
基準値と一致するように部分文字列の組み合わせを決定
する。
【0224】この時、ユーザが単独のハッシュテーブル
エントリを割り当てるよう指定している部分文字列は、
基準値計算時に単独のハッシュテーブルエントリに割当
てるよう判断された部分文字列と同様に、単独で一つの
ハッシュテーブルエントリを与える。
【0225】最後に、ステップ1505において、この
ハッシュテーブル2104を使用して文字成分表210
3を作成する。
【0226】なお、本実施例2では、ユーザが検索性能
を向上させたい文字列を、単独の文字成分表エントリを
与えるようにしたが、複数の文字列と重複した文字成分
表エントリにハッシングされても、そのエントリに対応
する文書の数が基準値よりも小さくなるようにハッシン
グを行っても良い。
【0227】以上説明したように、本実施例2によれ
ば、ユーザ指定ハッシングファイル2105を用いて、
ユーザ指定ハッシングを行うことにより、ユーザが希望
する部分文字列に対し最高の検索性能を実現するハッシ
ュテーブル2104を作成することが可能となる。
【0228】これにより、どの検索文字列でも文字成分
表でのヒット率を平均化してしまうのではなく、ユーザ
が高速な検索を望む検索文字列に対して、文字成分表で
のヒット率をより小さくし、ユーザのニーズに合わせた
文字成分表の最適化を行うことが可能となる。
【0229】以上、本発明を実施例に基づき具体的に説
明したが、本発明は、前記実施例に限定されるものでは
なく、その要旨を逸脱しない範囲で種々変更し得ること
は言うまでもない。
【0230】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば、下
記の通りである。
【0231】(1)テキストデータ検索装置において、
データベース毎のテキストデータで使用されている文字
の文字使用頻度に基づき最適な文字成分表、および、ハ
ッシュテーブルを用意するようにしたので、どのデータ
ベースのテキストデータが対象であっても、また、どの
ような検索文字列であっても、平均的に最低の文字成分
表での絞り込み率を得ることができ、検索性能を向上さ
せることができ、これにより、高速なフルテキストサー
チ方法が実現可能である。
【0232】(2)テキストデータ検索装置において、
文書の登録・削除の結果生じる各文字成分表エントリ中
に含まれる文書数の片寄りをチェックすることにより、
ハッシュテーブル、および、文字成分表を、常に各デー
タベースのテキストデータの文字使用頻度に最適な状態
に保つことができ、検索性能の低下を防ぐことができ
る。
【0233】(3)テキストデータ検索装置において、
ユーザが指定した部分文字列の文字成分表でのヒット件
数が最小になるようにハッシングすることにより、ユー
ザが希望する検索文字列の検索性能を向上させることが
できる。
【図面の簡単な説明】
【図1】本発明の一実施例(実施例1)であるテキスト
データ検索装置の概略構成を示すブロック図である。
【図2】文字使用頻度が異なるデータベースでのハッシ
ング状況を説明するための図である。
【図3】本実施例1における、テキスト、凝縮テキスト
の形式を示す図である。
【図4】本実施例1における、検索の手順を示すフロー
チャートである。
【図5】本実施例1における、文字成分表検索処理方式
を説明するための図である。
【図6】本実施例1における、文書登録の手順を示すフ
ローチャートである。
【図7】本実施例1における、文字成分表の作成手順を
示すフローチャートである。
【図8】本実施例1おける、文字成分表の作成手順を説
明するための図である。
【図9】本実施例1における、文書追加登録後のハッシ
ュテーブル最適化チェック方式を説明するための図であ
る。
【図10】本実施例1における、ハッシュテーブルの作
成手順を示すフローチャートである。
【図11】本実施例1における、文書削除の手順を示す
フローチャートである。
【図12】本実施例1における、文書削除後のハッシュ
テーブル最適化チェック方式を説明するための図であ
る。
【図13】本発明の他の実施例(実施例2)であるテキ
ストデータ検索装置の各データベースの構成を示す図で
ある。
【図14】本実施例2における、ユーザ指定ハッシング
方式を説明するための図である。
【図15】本実施例2における、ユーザ指定ハッシング
ファイルの一形式を示す図である。
【図16】本実施例2における、ユーザ指定ハッシング
によるハッシュテーブルの作成手順を示すフローチャー
トである。
【図17】従来のフルテキストサーチにおける、階層プ
リサーチによる検索手順を説明するための図である。
【図18】従来のフルテキストサーチにおける、連接文
字成分表の構造を説明するための図である。
【図19】従来のフルテキストサーチにおける、ハッシ
ングをおこなった連接文字成分表を説明するための図で
ある。
【図20】従来のフルテキストサーチにおける、文字使
用頻度情報ハッシング方式を説明するための図である。
【図21】従来のフルテキストサーチにおける、文書登
録による文字成分表エントリ中の文書数増加を説明する
ための図である。
【符号の説明】 100…ディスプレイ、101…キーボード、102…
CPU、103…入力デバイス、104…主メモリ、1
20…ディスク装置、105…テキスト登録プログラ
ム、106…凝縮テキスト登録プログラム、107…文
字成分表登録プログラム、108…ハッシュテーブル登
録プログラム、109…文書削除プログラム、110…
ハッシュテーブル最適化チェックプログラム、111…
文書登録・削除制御プログラム、114…検索条件式解
析プログラム、115…文字成分表サーチプログラム、
116…凝縮テキストサーチプログラム、117…テキ
ストサーチプログラム、118…階層検索制御プログラ
ム、112…データベースオープンプログラム、113
…データベースクローズプログラム、119…データエ
リア、120…ディスク装置、121…標準ハッシュテ
ーブル、122,2101…各データベース毎のテキス
ト、123,2102…各データベース毎の凝縮テキス
ト、124,2103…各データベース毎の文字成分
表、125,2104…各データベース毎のハッシュテ
ーブル、2100…ディスク装置、2105…ユーザ指
定ハッシングファイル。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 畠山 敦 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 寺地 元 大阪府大阪市中央区北浜三丁目5番29号 日立西部ソフトウエア株式会社内 (72)発明者 友広 修造 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 文書中で使用される文字の数より少ない
    エントリに文字コードをマッピングした文字成分表と、
    前記文字成分表をアクセスするための使用されるハッシ
    ュテーブルと、テキストデータからなるデータベース本
    体をサーチする前に、前記ハッシュテーブル、および、
    文字成分表を使用する文字成分表サーチを含む補助サー
    チ行う第1の手段と、前記第1の手段により絞り込まれ
    た文書に対してテキストサーチを行う第2の手段とを具
    備する階層プリサーチ方式のテキストデータ検索装置に
    おいて、 各データベースで使用される文字の使用頻度を基づき最
    適化された、複数のデータベース毎の文字成分表、およ
    び、ハッシュテーブルと、文書を登録あるいは削除した
    場合にハッシュテーブルの最適化状態を判断する判断手
    段と、前記判断手段に基づきハッシュテーブルが最適状
    態でないと判断した場合に、新たに文字成分表、およ
    び、ハッシュテーブルを再作成する手段とを具備するこ
    とを特徴とするテキストデータ検索装置。
JP6160828A 1994-07-13 1994-07-13 テキストデータ検索装置 Pending JPH0830633A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6160828A JPH0830633A (ja) 1994-07-13 1994-07-13 テキストデータ検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6160828A JPH0830633A (ja) 1994-07-13 1994-07-13 テキストデータ検索装置

Publications (1)

Publication Number Publication Date
JPH0830633A true JPH0830633A (ja) 1996-02-02

Family

ID=15723293

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6160828A Pending JPH0830633A (ja) 1994-07-13 1994-07-13 テキストデータ検索装置

Country Status (1)

Country Link
JP (1) JPH0830633A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08190571A (ja) * 1995-01-11 1996-07-23 Hitachi Ltd 文書検索方法
JPH08263508A (ja) * 1995-03-24 1996-10-11 Hitachi Ltd 文書検索方法
JPH08329116A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 構造化文書検索方法
KR100319761B1 (ko) * 2000-01-21 2002-01-05 오길록 시그니처 파일을 이용한 데이터베이스 검색시스템에서의프레임 분할 병렬 처리 방법
EP3236367A2 (en) 2016-04-18 2017-10-25 Fujitsu Limited Encoding program, encoding method, encoding device, retrieval program, retrieval method, and retrieval device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08190571A (ja) * 1995-01-11 1996-07-23 Hitachi Ltd 文書検索方法
JPH08263508A (ja) * 1995-03-24 1996-10-11 Hitachi Ltd 文書検索方法
JPH08329116A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 構造化文書検索方法
KR100319761B1 (ko) * 2000-01-21 2002-01-05 오길록 시그니처 파일을 이용한 데이터베이스 검색시스템에서의프레임 분할 병렬 처리 방법
EP3236367A2 (en) 2016-04-18 2017-10-25 Fujitsu Limited Encoding program, encoding method, encoding device, retrieval program, retrieval method, and retrieval device
US10521414B2 (en) 2016-04-18 2019-12-31 Fujitsu Limited Computer-readable recording medium, encoding method, encoding device, retrieval method, and retrieval device

Similar Documents

Publication Publication Date Title
US6725223B2 (en) Storage format for encoded vector indexes
JP4881322B2 (ja) 多重索引に基づく情報検索システム
US6009432A (en) Value-instance-connectivity computer-implemented database
JP3771271B2 (ja) コンパクト0完全木における順序付けられたキーの集まりの記憶と検索のための装置及び方法
Jagadish et al. Incremental organization for data recording and warehousing
US5201048A (en) High speed computer system for search and retrieval of data within text and record oriented files
US6523030B1 (en) Sort system for merging database entries
Brown Fast evaluation of structured queries for information retrieval
US6778985B1 (en) Implementing descending indexes with a descend function
US6247014B1 (en) Method and apparatus for performing hash lookups using valid bit tables with pointers
US20010000536A1 (en) Value-instance-connectivity computer-implemented database
JP3263963B2 (ja) 文書検索方法及び装置
EP1234258A1 (en) System for managing rdbm fragmentations
US8756246B2 (en) Method and system for caching lexical mappings for RDF data
Larson Grouping and duplicate elimination: Benefits of early aggregation
JPH0830633A (ja) テキストデータ検索装置
US20060122963A1 (en) System and method for performing a data uniqueness check in a sorted data set
US6233574B1 (en) Method and apparatus for performing radix lookups using transition tables with pointers
US6223174B1 (en) Method and apparatus for performing radix lookups using valid bit tables with pointers
JP2000057151A (ja) 文書検索方法及びその実施装置並びにその処理プログラムを記録した媒体
Ramesh et al. Variable-depth trie index optimization: Theory and experimental results
US6185570B1 (en) Method and apparatus for performing radix lookups using transition bits and fields in transition tables
Shekita High Performance Implementation Techniques for Next Generation Database Systems
WO2001025962A1 (en) Database organization for increasing performance by splitting tables
CN108920687A (zh) 一种基于Lucene索引段的合并优化方法