JP3550173B2 - 全テキストインデックスを圧縮する方法 - Google Patents
全テキストインデックスを圧縮する方法 Download PDFInfo
- Publication number
- JP3550173B2 JP3550173B2 JP30806093A JP30806093A JP3550173B2 JP 3550173 B2 JP3550173 B2 JP 3550173B2 JP 30806093 A JP30806093 A JP 30806093A JP 30806093 A JP30806093 A JP 30806093A JP 3550173 B2 JP3550173 B2 JP 3550173B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bits
- value
- document
- data key
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
- Peptides Or Proteins (AREA)
Description
【産業上の利用分野】
本発明は、データベース記憶技術に係り、より詳細には、全テキストインデックスを圧縮する改良された方法に係る。
【0002】
【従来の技術】
全テキストインデックスを記憶するためのコンピュータデータベースがテキスト記憶及び検索に対して一般的となってきている。これらデータベースは、記憶されたテキスト内の特定のデータストリングに対するインデックスをユーザがサーチできるようにする。典型的に、インデックスデータは、データベースのテキストデータとは個別のデータ構造体に記憶され、それ故、メモリオーバーヘッドを構成する。インデックスはユーザが所望のデータストリングに対するテキストデータを迅速にサーチできるようにするので、このメモリオーバーヘッドは正当とされる。しかしながら、インデックスに必要とされるメモリオーバーヘッドを最小にすることが所望される。
【0003】
【発明が解決しようとする課題】
多数の公知方法は、各データストリングを識別しそしてそのデータストリングが現れるデータベース内の各位置の識別子をデータストリングに関連させることによりインデックスを形成する。これらのインデックスは明らかにやっかいなもので、多量のメモリオーバーヘッドを使用する。同様に、このようなインデックスを用いる他の公知方法は、必要なメモリオーバーヘッドを減少するためにデータ圧縮技術を使用している。しかしながら、これらの方法は、データベースに必要なメモリの50%ないし100%に等しいインデックス用メモリを必要とし、即ち50%ないし100%のオーバーヘッドを必要とする。
【0004】
テキストインデックスを形成する他の方法は、あるデータシーケンスにコードを指定し、データシーケンスを上記したようにインデックスできるようにする。この方法は、データシーケンスに強力なパターンを示すデータベースについては良好に機能するが、データシーケンスに比較的僅かなパターンしかもたないデータベースには受け入れられない。それ故、インデックスに必要なメモリオーバーヘッドがデータベースに必要な記憶容量の20%未満であるようにして全テキストインデックスを記憶する方法及び装置を提供することが所望される。
【0005】
【課題を解決するための手段】
本発明は、複数の文書が記憶されている記憶ボリュームのための内容インデックスを与える形式のインデックスデータを記憶する方法を提供する。各文書は独特の文書識別子を有し、複数のデータキーを含んでいる。データキーのフィールドは、ターゲットデータキーに対する記憶ボリューム内の発生数及び位置を与える。この方法は、データキーフィールドの目的であるターゲットデータキーを識別するためのデータキー識別子を与える段階を備えている。ターゲットデータキーが配置された複数のターゲット文書を各々記述する複数の文書識別子を含む文書データセットを定義し、その後、第1の所定の圧縮機構に基づいてこの文書データセットを文書識別子データに圧縮し、圧縮解除のときに、文書データセットが回復されるようにする。複数のカウント値を与え、各カウント値は文書データセット内の複数の文書識別子の各々に関連したものであり、そして各文書識別子により識別された文書におけるターゲットデータキーの発生数を識別する。又、この方法は、複数のデータキーオフセット値のセットを与える段階も備え、各々のデータキーオフセット値セットは上記複数のカウント値の各々に関連され、そして各データキーオフセット値セットは、各々のカウント値によって識別されたターゲットデータキーの発生数に数値が等しい複数のデータオフセット値を含んでいる。従って、各データキーオフセット値は、各データキーオフセット値セットのカウント値に関連した文書識別子により識別された文書内におけるターゲットデータキーの位置を識別する。
【0006】
本発明の第1の実施例では、文書識別子の範囲の終了点として最小文書識別子及び最大文書識別子を選択することにより文書識別子の範囲を定義する段階を備えた方法によって文書データセットが圧縮される。上記範囲が選択された後に、文書識別子の上記範囲の終了点間の中点が識別され、文書識別子の上記範囲が第1及び第2のグループに仕切られる。次いで、第1グループと第2グループとの間の文書の分布を特徴付ける文書識別子データを設けることによって文書識別子が圧縮され、文書識別子データは上記範囲内の文書識別子の各々を識別するものである。
【0007】
本発明の第2の実施例では、データビットNのベース数を選択する段階を含む方法に基づいて複数のデータキーオフセット値が圧縮される。この方法では、更に、データキーオフセット値がエンコードされたことを指示するためにデータビットのベース数から最上位ビット側の一部分rを選択し、そして残りの最下位データビット側のqをベース数として識別し、r+q=Nとする段階を備えている。その後に、r個の最上位ビット側のビットがセットされない状態でデータキーオフセット値をNビットで表すことができるかどうかの判断を行い、もしできるならば、データキーオフセット値をNビットで表示する。しかしながら、r個の最上位ビット側のビットがセットされない状態でデータキーオフセット値をNビットで表すことができない場合には、r個の最上位ビット側のビットをセットし、そしてこのr個の最上位ビット側のビットと共に使用されるデータキーオフセット値のq個の最下位ビット側のビットをセットして、データキーオフセット値の最上位ビット側のビットがエンコードされたことを指示する。
【0008】
【実施例】
上記したように、本発明は、インデックスを記憶するのに必要なメモリオーバーヘッドを最小にするようにして全テキストインデックスを記憶する方法を提供する。一般に、本発明のインデックスは、複数のデータキーフィールド100を備え、その構造が図1に示されている。各データキーフィールド100は、データキー識別子102と、文書識別子データ104と、オフセットフィールド106とを含んでいる。データキー識別子102は、インデックスされるべきテキスト或いはデータシーケンスを識別するのに使用されるデータワードである。例えば、月刊誌のような定期刊行物からの文献のテキストを記録するためのテキストデータベースを開発することができる。テキストインデックスは、定期刊行物の文献に現れるワードで構成される。テキストインデックスのデータキー識別子102は、定期刊行物内に探索されるべき個別のワードを識別するのに使用されるものである。
【0009】
データキーフィールド100は、データキー識別子102をその各々の文書識別子データ104及びオフセットフィールド106に関連させるために設けられる。文書識別子データ104は、データキー識別子102に関連したテキストシーケンスが現れるデータベースにおいて各文書を識別するデータである。上記の例において、文書識別子データ104は、データキー識別子102によって識別されたワードが現れる定期刊行物データベースにおいて各文献を識別する。
【0010】
オフセットフィールド106は、図2に示すように、複数のオフセットデータシーケンス200−1ないし200−iを備えている。本発明によれば、オフセットデータシーケンス200は、文書識別子データ104(図1)によって識別された各文書ごとに設けられる。各オフセットデータシーケンス200は、複数のオフセットnを含み、各オフセットは、そのオフセットデータシーケンスに対応する文書におけるデータキー識別子102の位置を識別する。例えば、第1のオフセットデータシーケンス200−1は、文書識別子データ104により識別された第1文書に対応する。オフセット#1は、第1文書内のデータキー識別子102によって識別されたテキストシーケンスの第1オフセットを識別する。オフセット#2は、第1文書内のテキストシーケンスの第2オフセットを識別し、等々となる。以下に詳細に述べるように、本発明の現在好ましいと考えられる1つの実施例は、各オフセットをその手前のオフセットから測定することによりオフセットデータシーケンス200に与えられるオフセットの値を最小にするように構成される。しかしながら、本発明の範囲から逸脱せずに複数のオフセットを与える他の方法も存在することが当業者に明らかであろう。
【0011】
定期刊行物のデータベースの上記例を更に説明すれば、所定ワードを識別するためにデータキー識別子102が与えられる。データキーフィールド100は、そのワードが現れる各文献を識別するためにこのデータキー識別子102を文書識別子データと共に含んでいる。オフセットフィールド106は、文書識別子データ104により識別された各文書に関連したオフセットのカウントを含む。各オフセットは、手前のオフセットからのワードのオフセットを表す値を与えることにより文書内のそのワードの位置を識別する。例えば、第1のオフセットは、20であり、これはそのワードが文書の20番目のワードとして最初に現れることを示す。第2のオフセットは50であり、これはそのワードが2回目に現れるのが最初の発生から50ワード目であり、文書の始めから70ワードであることを示している。
【0012】
上記した方法によれば、テキストインデックスは、ユーザがオフセットデータシーケンスをデータベース内で見つけられるように効率的に記憶することができる。テキストインデックスを記憶する上記の方法は、メモリを効率的に保存し、メモリオーバーヘッドを減少する。しかしながら、データキーフィールド100の種々の成分を圧縮する方法を提供することにより、テキストインデックスを記憶するのに必要なメモリオーバーヘッドの量のそれ以上の減少を達成することができる。特に、以下に詳細に述べるように、文書識別データ104及びオフセットフィールド106を圧縮するための方法が提供される。
【0013】
図3、4及び5には、上記複数のデータキーフィールド100を与える方法が示されている。最初に、ステップ300において、ターゲットデータキーと称するテキストシーケンスを識別するためにデータキー識別子102が指定される。ターゲットデータキーは、データキーフィールドが所望される何らかのテキスト又はデータシーケンスである。上記の例では、ターゲットデータキーは、定期刊行物のデータベースに現れる特定のワードである。その後、ステップ302において、ターゲットデータキーが現れる各文書が識別されて文書データセットが定められ、文書データセットは、ターゲットデータキーが現れる各文書の文書識別子を含む。上記例を更に参照すれば、文書データセットは、ターゲットデータキー即ち特定のワードが現れる各文献を識別するための文書識別子を含む。その後に、ステップ304において、文書データセットから第1文書が選択されて、オフセットフィールド106(図1)が決定される。
【0014】
オフセットフィールド106を形成するために、ステップ306において、選択された文書におけるターゲットデータキーの発生数を決定し、その発生数を表す現在値を与える。その後、ステップ308(図4)において、データキーオフセットシーケンスが与えられ、これは、上記したように第1文書内のターゲットデータキーの位置を指示する複数のデータキーオフセット値を含む。本発明の方法によれば、ステップ310において、当該文書のオフセットシーケンスを表すのに必要なデータを最小にするために各データキーオフセットシーケンスが圧縮される。データキーオフセットシーケンスを圧縮するには種々の方法が使用できるが、本発明のここに述べる好ましい実施例では、図6及び7を参照して以下に詳細に述べるように、特定の方法が使用される。
【0015】
選択された何らかの方法によってデータキーオフセット値セットが圧縮された後に、ステップ312において、その圧縮されたデータがカウント値と共にアッセンブルされ、選択された文書に対するオフセットフィールドが作られる。次いで、文書データセット(上記ステップ302で定めた)の最後の文書が選択されたかどうかの判断がなされ、もしそうでなければ、ステップ316において、次の文書が選択され、文書データセットで識別された各文書に対しオフセットフィールドが与えられるまでステップ306ないし316が繰り返される。その後、ステップ318(図5)において、文書データセットが圧縮されて、図1に示す文書識別子データ104が作られる。ステップ310を参照して述べたデータキーオフセット値の圧縮と同様に、文書データセットの圧縮は、公知の種々の方法で行うことができる。しかしながら、文書データセットを圧縮するためのここに示す好ましい方法は、図8、9、10及び11を参照して以下に説明する。
【0016】
ステップ320において、データキー識別子102、文書識別子データ及びオフセットフィールドを用いて、データキーフィールド100が組み立てられる。ステップ322において、次のターゲットデータキーを選択し、各ターゲットデータキーにデータキーフィールド100が設けられるまで図3、4及び5の方法が繰り返される。
【0017】
上記したように、オフセットフィールド106及び文書識別子データ104は両方とも圧縮され、複数のデータキーフィールド100を記憶するに必要なメモリが減少される。又、上記したように、オフセットフィールド106は、データキーの手前の位置を参照として使用して文書内のデータキーの位置を各々識別する複数のオフセットを備えている。オフセットフィールド106を圧縮するためのここに示す好ましい方法は、図6及び7の判断流れ線図に示されている。
【0018】
一般に、各オフセットデータシーケンス(図4のステップ308)は、図6に示す方法に基づいてシーケンスをエンコードすることにより圧縮される。図6には、可変長さエンコード技術が示されており、先ず、ステップ400において、参照数Nを、
2N >(max−min)/k (1)
であるような最小の整数として定義する。ここで、max(最大)は文書における最後のデータキーオフセット、即ち70番目のワードを識別するオフセットであり、そしてmin(最小)は文書における最初のデータキーオフセット、即ち20番目のワードを識別するオフセットであり、従って、最大−最小は、文書におけるデータキーの範囲を指し、そして更に、kはステップ306(図3)を参照して上記したように文書におけるデータキーの数、即ちオフセットのカウントである。基準数Nが定められた後に、エンコード変数EDが次のように定められる。即ち、
ED=3x(2N−2) (2)
EDは、2つの最上位ビット側のビットの両方を1に等しくセットすることなくNビットを用いて表すことのできる最大数より1大きいものである。例えば、基準数Nが7に等しい場合には、エンコード変数EDは96に等しい。この例では、両方の最上位データビット側のビットをセットすることなく表すことのできる最大数が95であり、即ち、両方の最上位データビット側のビットをセットせずに表すことのできる最大2進数は1011111であって、95に等しい。
【0019】
図6に戻ると、ステップ404において、各オフセットがエンコード変数EDと比較される。オフセット値が変数EDより小さく、上記例では95より小さい場合には、ステップ406において、そのオフセット値はエンコードせずに使用される。しかしながら、オフセットが変数EDに等しいか又はそれより大きい場合には、ステップ408において、そのオフセットの下位のN−2ビットが「11」との組み合わせで使用される。当業者に明らかなように、エンコード変数EDより小さいオフセットだけはエンコードせずに使用されるので、いかなるフィールドの2つの最上位ビット側のビットをセットしても、オフセットがEDより大きいことが指示され、そしてオフセットの最下位側のN−2ビットのみが与えられる。別の言い方をすれば、フィールドの最上位側の2ビットのいずれかがセットされないときには、オフセット値が変数EDより小さく、上記例では96より小さく、そのフィールドはエンコードされない。逆に、フィールドの両方の最上位ビット側のビットがセットされる場合には、オフセット値が変数EDより大きく、フィールドはエンコードされる。
【0020】
上記したように、オフセットが変数EDより大きい場合には、そのオフセットの最下位側のN−2ビットが使用され、「11」と組み合わされて、フィールドがエンコードされたことを指示する。次いで、オフセットの残りの最上位ビット側のビットが、ステップ410において、所定のエンコード方法によりエンコードされる。ステップ412において、インデックス変数jがオフセット値の数と比較されて各オフセットがエンコードされたかどうか判断され、もしそうでなければ、インデックス変数jはステップ414において増加され、そしてオフセットデータシーケンスの各オフセットがエンコードされるまでステップ404ないし414が繰り返される。
【0021】
残りのデータビットをエンコードするここに示す好ましい方法は、「マーカーエンコード方法」と称するもので、ステップ410を参照して述べたが、これが図7に示されている。図7を参照すれば、ステップ500において、多数のインデックス値m、r及びbが各々1にセットされる。その後、ステップ502において、残りのビットの2進表示として、即ちエンコードされるべきオフセットの最上位ビット側のビットとして(上記のステップ410を参照)、Qが定められる。2進表示は非ゼロであることが知られており、即ち1より大きいことが知られているので、ステップ504において、Qから1を減算し、残りのビットに対するメモリオーバーヘッドを更に少なくする。その後に、ステップ505において、第1のエンコードされたビットEQ1がQの最下位ビットに等しくセットされる。例えば、図6のステップ408及び410で最下位側のN−2のビットが選択された後に残っているビットが次のものである場合には、
Q=1010 (3)
ステップ504において、次のようになり、
Q−1=1001 (4)
そしてステップ505において最下位ビット即ちEQ1が1に等しくなる。その後、ステップ506においてインデックス変数b及びrが増加され、そしてステップ508においてインデックス変数rがインデックス変数mと比較される。本発明の方法によれば、残りのビットの数が小さいと仮定する。従って、最初はQの1ビットだけがエンコードされ、即ちN=1である。その後、更にエンコードが必要な場合には、mが増加され、付加的なビットが以下に述べるようにエンコードされる。それ故、mは、エンコードされるべき残りのビット数である。ステップ508でのrとmの比較は、残りの適当な数のビットがエンコードされたかどうか判断することである。
【0022】
上記例では、増加の後に、rは2に等しくなりそしてmは1に等しくなり、従って、rはmより大きくなり、ステップ510が実行され、mは1だけ増加されそしてrは1の値に戻される。次いで、ステップ512において、Qは、最初のビット(1つ又は複数)がエンコードされた後に残っているビットの2進表示に等しくセットされる。上記例において、1001の最下位ビットがエンコードされて、EQ1=1となった後に、残りのビットの2進表示は「100」となる。ステップ514においてQが0に等しい場合には、ステップ520においてこの方法は終了する。しかしながら、上記例のように、Qが0に等しくない場合は、次にエンコードされるビットがステップ516において1に等しくセットされ、ステップ518においてインデックス変数bが1だけ増加される。ステップ514においてQが0に等しくなるまでステップ504ないし518が繰り返され、Qが0になった時点で、次にエンコードされるビットEQbがステップ520において0に等しくセットされる。
【0023】
当業者に明らかなように、ステップ516及び520は、エンコードが完了したかどうかの指示を与えるように作用し、即ち「1」は更にエンコードが行われることを指示し、一方「0」はエンコードが終了したことを指示する。更に、エンコードは一度に1ビットづつ行うことができ、更にエンコードが存在するかどうかを1つおきのビットが指示する。しかしながら、上記したように、ステップ508の判断により、第1ビットがエンコードされた後に指示が与えられる。この指示がその後のエンコード動作を示す場合には、mが増加されて2ビットがエンコードされた後に、指示が与えられる。この指示がそれに続くエンコード動作を示す場合には、mが増加されて、3ビットがエンコードされた後に次の指示が与えられる、等々となる。当業者であれば、エンコード動作を増加する他の方法が容易に明らかであろう。
【0024】
オフセットフィールド106(図1)を圧縮するのに加えて、文書識別子データ104も圧縮される。文書識別子データ104を圧縮するためのここに示す好ましい方法は、図8、9、10及び11の判断流れ線図を参照して説明する。図1、3、4及び5を参照して上記した文書識別子データ104に関してこの方法を説明したが、図8、9、10及び11に示された方法は、データシーケンスに適用でき、特に、データが比較的均一に分布されたデータシーケンスに適用できることが当業者に明らかであろう。
【0025】
図8、9、10及び11を参照し、仕切りエンコード方法に従って文書識別子データをエンコードする方法を説明する。ステップ600において、カウンタj及びスタックが初期化される。カウンタjは、エンコードされる文書識別子データのビットを識別するのに使用され、これらビットは、ビット「a」のビットアレイDIjに記憶される。スタックは、図8、9、10及び11の方法を以下で詳細に述べるように繰り返し実行するように使用される。文書識別子データ又は他のシーケンスが最初に検査され、シーケンス中のエレメント数、即ち文書識別子データによって識別された文書の数K、シーケンス中のエレメントの最小値MIN、及びシーケンス中のエレメントの最大数MAXの記述がなされる。その後に、ステップ602において、変数K、MINDOC及びMAXDOCが定義される。最初に、MINDOC及びMAXDOCが各々MIN及びMAXに等しくされる。その後、MINDOCとMAXDOCとの間の中点が、ステップ604において、Mとして次のように記述される。
M= シーリング((MINDOC+MAXDOC)/2) (5)
【0026】
ステップ606において、上記範囲内の文書数が上記範囲に等しいかどうか、即ち文書が互いに離間されているかどうかを決定する判断がなされ、もしそうであれば、方法はステップ700へと続き、以下に述べるようにスタックが評価される。その後、ステップ608において、その範囲内の文書の数が1に等しいかの判断がなされ、もしそうであれば、文書識別子Kは、ステップ607及び609においてエンコードの次のtビットとして使用され、方法はステップ700へと続く。上記基準のいずれも真でなければ、ステップ610において、Mに等しいか又はそれより大きい文書識別子を有する文書の数、及びMより小さい文書識別子を有する文書の数として各々C+ 及びC- が定義される。C+ 及びC- は、ステップ612において、C+ がC- と「0」だけ異なる(即ち、C+ はC- に等しい)か又は「1」だけ異なる(即ち、C+ はC- より1大きいか1小さい)かを決定するための比較が行われ、もしそうであれば、ステップ614及び616において、エンコードされた識別子ビットが「0」に等しくセットされそしてインデックス変数jが1だけ増加される。しかしながら、相当数の文書が上記範囲においてMより大きいか又は小さい場合には、ステップ618において、エンコードされたデータビットが「1」に等しくセットされる。その後、ステップ620において、インデックス変数jが増加される。次いで、ステップ622において、C+ がC- より大きいかどうかの判断が行われ、もしそうであれば、エンコードされたデータビットはステップ624において「0」に等しくセットされそしてもしそうでなければ、エンコードされたデータビットはステップ626において「1」に等しくセットされる。その後、インデックス変数jはステップ628において再び増加される。次いで、ステップ632が実行され、上位範囲における文書の数と下位範囲における文書の数との差が表示され、エンコードされた差は、ステップ634において、エンコードされた文書識別子データの次のtビットとして使用される。その後、インデックス変数jがインデックス変数tだけ増加される。次いで、ステップ604へ復帰し、別の仕切りが識別される。
【0027】
ステップ610(図9)へ戻ると、ステップ612でC+ がC- と比較されてそれらが0だけ異なるか1だけ異なるかが判断されそしてその比較結果が肯定である場合にステップ614及び616において0のエンコードビットが加えられた後に、その差の性質を特徴付けるために追加のデータビットが与えられる。特に、ステップ640においてC+ がC- より大きいかどうかの判断がなされ、もしそうであれば、ステップ642において、次のエンコードデータビットとして0ビットが与えられ、そしてステップ644においてjが1だけ増加される。ステップ640においてC+ がC- より大きくなければ、ステップ646においてC- がC+ より大きいかどうかの判断がなされる。もしそうであれば、ステップ648において、次のエンコードデータビットに1が加えられ、そしてステップ650においてインデックス変数jが1だけ増加される。C+ がC- に等しく、即ちステップ640及び646の両方の判断が否定であれば、追加のエンコードデータビットは加えられない。当業者に明らかなように、ステップ610ないし628及び640ないし650は、MINDOCないしMAXDOCの範囲内における文書の分布を特徴付けるために設けられたものである。この範囲は値Mによって仕切られ、そしてエンコードデータビットが与えられ、その第1は、その範囲においてMより上にMの下と同数の文書があるかどうかを識別し、そしてその第2は、その範囲においてMの上の方がMの下のよりも多数の文書が与えられるかどうかを識別する。
【0028】
この方法を繰り返し実行できるように、ステップ610ないし628及び640ないし650によって特徴付けられた範囲が半分に分割され、各半分の範囲に対してステップ604ないし636の方法が繰り返される。スタックは、後で動作するためにセーブされたその範囲の部分の状態を思い出すのに使用される。従って、スタックの状態は1だけ増加され、そして思い出すべき範囲の上位部分を定める変数がステップ702においてスタックに記憶される。その後、仕切られた範囲の下位部分に作用する変数がステップ704で定められる。同様に、ある範囲内の文書の数がステップ606においてその範囲に等しいか又はある範囲内の文書の数がステップ608において1に等しいことが決定された後に、ステップ700において、スタックを調べて、上位部分がエンコードすべきものとして残っているかどうか判断する。変数STATEが0に等しい場合には、上位部分は残っておらず、この方法は終了となる。或いは又、変数STATEが非ゼロの場合には、作用すべき範囲がスタックへの最後の入力によって定められ、変数STATEは、ステップ706において、1だけ減少される。
【0029】
以上、本発明の特定の実施例を説明したが、本発明の精神及び範囲内で種々の変更がなされ得ることが当業者に明らかであろう。従って、本発明は、特許請求の範囲のみによって限定されるものとする。
【図面の簡単な説明】
【図1】本発明の方法によって記憶されるテキストインデックスデータベースの全構造を示す図である。
【図2】本発明の方法によって記憶されるテキストインデックスのオフセットフィールドの構造を示す図である。
【図3】テキストインデックスデータを記憶するための本発明の方法を示す判断フローチャートである。
【図4】テキストインデックスデータを記憶するための本発明の方法を示す判断フローチャートである。
【図5】テキストインデックスデータを記憶するための本発明の方法を示す判断フローチャートである。
【図6】図1及び2に示したオフセットフィールドデータを記憶する方法の判断フローチャートである。
【図7】図1及び2に示したオフセットフィールドデータを記憶する方法の判断フローチャートである。
【図8】図1及び2に示した文書識別子データを記憶する方法の判断フローチャートである。
【図9】図1及び2に示した文書識別子データを記憶する方法の判断フローチャートである。
【図10】図1及び2に示した文書識別子データを記憶する方法の判断フローチャートである。
【図11】図1及び2に示した文書識別子データを記憶する方法の判断フローチャートである。
【符号の説明】
100 データキーフィールド
102 データキー識別子
104 文書識別子データ
106 オフセットフィールド
200 オフセットデータシーケンス
Claims (17)
- 複数の文書が記憶されている記憶ボリュームのための内容インデックスを与える形式のインデックスデータを圧縮する方法であって、上記文書の各々は独特の文書識別子を有しそして上記内容インデックスは複数のデータキーに対する上記記憶ボリューム内の発生数と位置とを指示する情報を与えるものである方法において、
(a)ターゲットデータキーが現れる文書の対応セットを指示する文書識別子のセットを含む文書識別子データを与え、上記ターゲットデータキーは、複数のデータキーのうちの特定の1つであり、そして上記文書識別子のセットの中の文書識別子は、最小文書識別子MinDocから最大文書識別子MaxDocまでの範囲内の値を有しており、上記文書識別子データを次のサブ段階に基づいて圧縮し、即ち、
(i)上記文書識別子の範囲を第1及び第2グループに仕切るための値Mを選択し、Mより小さい値を有する文書識別子は第1グループに関連させそしてMより大きい値を有する文書識別子は第2グループに関連させ、
(ii)第1グループに関連した文書識別子の数と第2グループに関連した文書識別子の数との差が1より大きいかどうかを指示する第1の文書識別子データビットを与え、
(iii)第1グループに関連した文書識別子の数が第2グループに関連した文書識別子の数より大きいかどうかを指示する第2の文書識別子データビットを与え、
(iv)第1グループに関連した文書識別子の数と第2グループに関連した文書識別子の数との差を指示するために差のデータキーを与え、
(v) MaxDoc、MinDoc及びMの新たな値を選択して新たな仕切りを定め、そして上記段階a(i) ないし(iv)を繰り返し、そして
(vi)全ての文書識別子がエンコードされるまで上記段階a(i) ないし(v) を繰り返し、そして
(b)複数のデータキーオフセット値セットを与え、各データキーオフセット値セットは、特定の文書内におけるターゲットデータキーの次々の発生間の位置オフセット値を指示するための複数のデータキーオフセット値を含むものであり、各データキーオフセット値セットを次のサブ段階に基づいて圧縮し、即ち、
(i) データキーオフセット値と数Nのデータビットを有するベースデータキーオフセット値長さとを選択し、
(ii)データビットにより表示できる残りの指示値であって、Nより小さい値の所定の定数をrとすれば、N−rのデータビットにより表すことのできる最大数よりも大きい残りの指示値を選択し、
(iii)選択したデータキーオフセット値が上記残りの指示値よりも大きいかどうかを判断し、もしそうであれば、段階b(iv)ないし(vii) を実行し、そしてもしそうでなければ、N個のデータビットを用いてデータキーオフセット値を表しそして段階b(viii)を実行し、
(iv)データキーオフセット値の下位のN−rのデータビットを使用しそして上位のr個のデータビットをセットして残りが存在することを指示し、
(v) 残りの上位データビットから1を減算して次のsビットのエンコードを決定し、ここでsは所定の定数であり、そして次のsビットをエンコードとして使用し、
(vi)データキーオフセット値の全てのデータビットがエンコードされたかどうかを決定し、もしそうでなければ、段階b(vii) を実行し、そしてもしそうであれば、データキーオフセット値が完全にエンコードされたことを指示するマーカーを与えて、段階b(viii)を実行し、
(vii)マーカービットを加えて更に上位データビットが残っていることを指示し、sを所定値tだけ増加し、そして段階b(v) を実行し、そして
(viii)データキーオフセット値セットの中の全てのデータキーオフセット値が段階b (iii) で表され又は段階b (iv) ないし (vii) でエンコードされるまで段階b(iii) ないし(vii) を繰り返す
ことを特徴とする方法。 - ベースデータキーオフセット値長さを選択する上記の段階b(i)は、
更に、N+1のデータビットを有する2進データ値の最上位ビットにより表された値が平均オフセット値より大きくなるようにする最小の整数としてNを選択するサブ段階を備え、
上記平均オフセット値は、記憶媒体の一部分におけるデータキーの総数を記憶媒体のその一部分におけるターゲットデータキーの発生数で除算したものに等しい
ことを特徴とする請求項1に記載の方法。 - 上記残りの指示値は、3N−2に等しくなるよう選択される請求項1に記載の方法。
- 差のデータキーを与える上記段階a(iv)は、
(c)第1グループに関連した文書識別子の数と第2グループに関連した文書識別子の数との差の絶対値をとりそしてその差を2で除算することにより差のデータを与える、
というサブ段階を含む請求項1に記載の方法。 - 差のデータを与える上記段階cは、更に、
(d)差のデータから1を減算しそして差のデータの下位aビットを差のデータキーの第1のエンコードされたビットとして使用し、
(e)差のデータの全てのデータビットがエンコードされたかどうかを決定しそしてもしそうでなければ、段階fを実行し、もしそうであれば、差のデータキーが完了したことを指示するマーカービットを追加し、そして
(f)付加的な上位データビットが残っていることを指示するマーカービットを追加し、aを所定値bだけ増加し、そして上記段階dを繰り返す、
というサブ段階を含む請求項4に記載の方法。 - ベースデータキーオフセット値長さを選択する上記の段階b (i) は、
更に、N+1のデータビットを有する2進データ値の最上位ビットにより表された値が平均オフセット値より大きくなるようにする最小の整数としてNを選択するサブ段階を備え、
上記平均オフセット値は、記憶媒体の一部分におけるデータキーの総数を記憶媒体のその一部分におけるターゲットデータキーの発生数で除算したものに等しい
ことを特徴とする請求項5に記載の方法。 - 複数の文書が記憶されている記憶ボリュームのための圧縮された内容インデックスを与える方法であって、上記文書の各々は独特の文書識別子を有しそして複数のデータキーを含み、上記内容インデックスは、複数のデータキーのターゲットデータキーに対する上記記憶ボリューム内の発生数と位置とを指示する情報を与えるものである方法において、
(a)上記データキーフィールドの目的であるターゲットデータキーを識別するためのデータキー識別子を与え、
(b)ターゲットデータキーが配置された複数のターゲット文書を識別し、識別されたターゲット文書の各々はターゲット文書を識別する独特のターゲット文書識別子を有し、
(c)第1の所定の圧縮機構に基づいて上記複数のターゲット文書識別子を圧縮して、圧縮された上記複数のターゲット文書識別子が圧縮解除される時に上記複数のターゲット文書識別子が回復されるようにし、ここで圧縮は以下の段階を含み、即ち、
(i) 最小ターゲット文書識別子から最大ターゲット文書識別子までの範囲において上記複数のターゲット文書識別子を順序付けし、
(ii) 最小ターゲット文書識別子と最大ターゲット文書識別子との間の中点を選択して、
(iii) 選択した中点で上記範囲を第1グループと第2グループに仕切り、そして
(iv) 上記第1グループと第2グループとの間でターゲット文書がどのように分布しているかを特徴付けるエンコードされた文書識別子データビットを与え、このエンコードされたデータビットは上記範囲においてターゲット文書識別子の各々を識別し、そして
(d)複数のカウント値を与え、各カウント値は、上記文書データセットにおける複数のターゲット文書識別子の各々に関連されていて、その各々のターゲット文書識別子により識別されたターゲット文書においてターゲットデータキーの発生数がいくつであるかを識別するものであり、そして
(e)複数のデータキーオフセット値セットを与え、各データキーオフセット値セットは上記複数のターゲット文書の各々に関連され、そして各データキーオフセット値セットは、データキーオフセット値セットに関連するターゲット文書におけるターゲットデータキーの発生数に数値が等しい複数のデータオフセット値を含み、各データキーオフセット値は、そのデータキーオフセット値セットに関連したターゲット文書におけるターゲットデータキーの位置を識別するものである
という段階を備えたことを特徴とする方法。 - 上記段階cは、
(v)上記第1グループが1つのターゲット文書識別子から成り又は上記第1グループにおいて各段階ごとにターゲット文書識別子を含むかを決定し、
(vi) 上記第1グループが1つのターゲット文書識別子から成るならば、そのとき上記1つのターゲット文書識別子の指示を出力し、
(vii) 上記第1グループが上記第1グループにおいて各段階ごとにターゲット文書識別子を含むならば、そのとき上記第1グループに対するエンコードをやめ、そして
(viii) 上記第1グループが、2以上のターゲット文書識別子を含み、上記第1グループにおける各段階ごとのターゲット文書識別子未満を含むならば、そのとき第1グループをサブグループに仕切り、第1サブグループと第2サブグループとの間でターゲット文書がどのように分布しているかを特徴付けるエンコードされた文書識別子データビットを与え、このエンコードされたデータビットは上記第1グループにおいてターゲット文書識別子の各々を識別する、という段階を更に含む
ことを特徴とする請求項7に記載の方法。 - (m)複数のデータキーオフセット値を圧縮する段階
を更に備えたことを特徴とする請求項7に記載の方法。 - 複数の文書が記憶されている記憶ボリュームのための内容インデックスを与える形式のインデックスデータ用のデータキーフィールドを形成する方法であって、上記文書の各々は独特の文書識別子を有しそして複数のデータキーを含み、上記データキーフィールドは、複数のデータキーのターゲットデータキーに対する上記記憶ボリューム内の発生数と位置とを指示する情報を与えるものである方法において、
(a)上記データキーフィールドの目的であるターゲットデータキーを識別するためのデータキー識別子を与え、
(b)複数の文書識別子を含む文書データセットを定義し、各文書識別子は、ターゲットデータキーが配置された複数のターゲット文書を記述するものであり、
(c)第1の所定の圧縮機構に基づいて上記文書データセットを文書識別子データに圧縮して、圧縮解除時にその文書データセットが回復されるようにし、
(d)複数のカウント値を与え、各カウント値は、上記文書データセットにおける複数の文書識別子の各々に関連されていて、その各々の文書識別子により識別された文書においてターゲットデータキーの発生数がいくつであるかを識別するものであり、そして
(e)複数のデータキーオフセット値セットを与え、各データキーオフセット値セットは上記複数のカウント値の各々に関連され、そして各データキーオフセット値セットは、その各々のカウント値によって識別されたターゲットデータキーの発生数に数値が等しい複数のデータオフセット値を含み、各データキーオフセット値は、その各データキーオフセット値セットに関連したカウント値に関連した文書識別子によって識別された文書におけるターゲットデータキーの位置を識別するものであり、そして
(m)次のサブ段階によって、複数のデータキーオフセット値を圧縮し、即ち、
(i) データビットのベース数Nを選択し、
(ii) データキーオフセット値がエンコードされたことを指示するためにデータビットのベース数Nから最上位ビット側の上位複数ビットの一部分rを選択し、そして残りの最 下位データビット側の下位複数ビットqをベース数として識別して、r+q=Nとし、
(iii) r個の最上位ビット側の上位複数ビットをセットせずにNビットでデータキーオフセット値を表示できるかどうかを決定し、もしそうであれば、データキーオフセット値をNビットで表示し、もしそうでなければ、Nベースビットのr個の最上位ビット側の上位複数ビットをセットし、データキーオフセット値のq個の最下位ビット側の下位複数ビットを表示すると共にデータキーオフセット値の残りの最上位ビット側の上位複数ビットをエンコードする
という段階を備えたことを特徴とする方法。 - データビットのベース数Nを選択する上記段階m (i) は、
エンコードされるべき複数のデータキーオフセット値の平均値を決定しそしてその平均値を表すのに必要なビット数としてNを選択する、というサブ段階を備えた
ことを特徴とする請求項10に記載の方法。 - 複数のデータ値をエンコードするためのコンピュータ実行方法において、
(a)最小データ値と最大データ値を範囲の終了点として選択することにより複数のデータ値の範囲を定め、
(b)上記複数のデータ値の範囲の終了点間の中点を選択して、
(b -2 )上記中点で複数のデータ値の範囲を第1サブ範囲と第2サブ範囲に仕切り、そして
(c)上記第1サブ範囲と第2サブ範囲との間でデータ値がどのように分布しているかを特徴付けるエンコードされたデータを与え、このエンコードされたデータは上記範囲においてデータ値の各々を識別するものである
という段階を備えたことを特徴とする方法。 - (d)上記第1サブ範囲が1つのデータ値から成り又は上記第1サブ範囲において各段階ごとにデータ値を含むかを決定し、
(e)上記第1サブ範囲が1つのデータ値から成るならば、そのとき上記1つのデータ値の指示を出力し、
(f)上記第1サブ範囲が上記第1サブ範囲において各段階ごとにデータ値を含むならば、そのとき上記第1サブ範囲に対するエンコードをやめ、そして
(g)上記第1サブ範囲が、2以上のデータ値を含み、上記第1サブ範囲における各段階ごとのデータ値未満を含むならば、そのとき第1サブ範囲をサブサブ範囲に仕切り、サブサブ範囲の間でデータ値がどのように分布しているかを特徴付けるエンコードされたデータを与え、このエンコードされたデータは上記第1サブ範囲においてターゲット文書識別子の各々を識別する
という段階を更に備えたことを特徴とする請求項12に記載の方法。 - 複数のデータ値をエンコードするためのコンピュータ実行方法において、
(a)データビットのベース数Nを選択し、
(b)上記複数のデータ値の各々がエンコードされたかどうかを指示するためにデータビットのベース数Nから最上位データビット側の上位rビットを選択し、そしてベース数Nの上記データビットの最下位データビット側の下位qビットを識別して、r+q=Nとし、そして
(c)論理状態1に最上位データビット側の上位rビットの全てをセットせずにNビットで上記複数のデータ値の現在のデータ値を表示できるかどうかを決定し、もしそうであれば、上記現在のデータ値をNデータビットで表示し、もしそうでなければ、論理状態1にエンコードされたデータ値の最上位データビット側の上位rビットをセットすることによって上記現在のデータ値をエンコードされたデータ値として表示し、現在のデータ値の最下位データビット側の下位qビットを表示すると共に最下位データビット側の上記下位qビットより上位である上記現在のデータ値のデータビットをエンコードする
という段階を備えたことを特徴とする方法。 - データビットのベース数Nを選択する上記段階aは、
(d)エンコードされるべき複数のデータ値の平均値を決定しそしてその平均値を表すのに必要なビット数としてNを選択する、というサブ段階を備えた
ことを特徴とする請求項14に記載の方法。 - データビットのベース数Nを選択する上記段階aは、
2N >(最大−最小)/k
となるようにNを選択するサブ段階を備え、
ここで、kはデータ値の数を表し、最大は最大データ値を表しそして最小は最小データ値を表す
ことを特徴とする請求項14に記載の方法。 - 論理状態1に最上位データビット側の上位rビットの全てをセットせずにNビットで現在のデータ値を表示できるかどうかを決定する上記段階cは、
上記現在のデータ値が3(2N-r )未満であるかどうかを決定するサブステップを含む
ことを特徴とする請求項14に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/986,754 US5649183A (en) | 1992-12-08 | 1992-12-08 | Method for compressing full text indexes with document identifiers and location offsets |
US07/986754 | 1992-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06243009A JPH06243009A (ja) | 1994-09-02 |
JP3550173B2 true JP3550173B2 (ja) | 2004-08-04 |
Family
ID=25532705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30806093A Expired - Fee Related JP3550173B2 (ja) | 1992-12-08 | 1993-12-08 | 全テキストインデックスを圧縮する方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US5649183A (ja) |
EP (1) | EP0601569B1 (ja) |
JP (1) | JP3550173B2 (ja) |
AT (1) | ATE207635T1 (ja) |
CA (1) | CA2110870A1 (ja) |
DE (1) | DE69330993T2 (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5649183A (en) * | 1992-12-08 | 1997-07-15 | Microsoft Corporation | Method for compressing full text indexes with document identifiers and location offsets |
US5870739A (en) * | 1996-09-20 | 1999-02-09 | Novell, Inc. | Hybrid query apparatus and method |
US6057790A (en) * | 1997-02-28 | 2000-05-02 | Fujitsu Limited | Apparatus and method for data compression/expansion using block-based coding with top flag |
US6029167A (en) * | 1997-07-25 | 2000-02-22 | Claritech Corporation | Method and apparatus for retrieving text using document signatures |
CN1148657C (zh) * | 1997-10-21 | 2004-05-05 | 富士通株式会社 | 文件处理方法和数据处理装置 |
US6094649A (en) * | 1997-12-22 | 2000-07-25 | Partnet, Inc. | Keyword searches of structured databases |
US6055526A (en) * | 1998-04-02 | 2000-04-25 | Sun Microsystems, Inc. | Data indexing technique |
US6473774B1 (en) * | 1998-09-28 | 2002-10-29 | Compaq Computer Corporation | Method and apparatus for record addressing in partitioned files |
AU2166700A (en) * | 1998-12-07 | 2000-06-26 | Bloodhound Software, Inc. | System and method for finding near matches among records in databases |
US6502088B1 (en) | 1999-07-08 | 2002-12-31 | International Business Machines Corporation | Method and system for improved access to non-relational databases |
US6772141B1 (en) | 1999-12-14 | 2004-08-03 | Novell, Inc. | Method and apparatus for organizing and using indexes utilizing a search decision table |
US7233942B2 (en) * | 2000-10-10 | 2007-06-19 | Truelocal Inc. | Method and apparatus for providing geographically authenticated electronic documents |
US7685224B2 (en) * | 2001-01-11 | 2010-03-23 | Truelocal Inc. | Method for providing an attribute bounded network of computers |
US6920477B2 (en) * | 2001-04-06 | 2005-07-19 | President And Fellows Of Harvard College | Distributed, compressed Bloom filter Web cache server |
EP1428139B1 (en) * | 2001-08-14 | 2015-06-03 | Microsoft Technology Licensing, LLC | System and method for extracting content for submission to a search engine |
US20030157470A1 (en) * | 2002-02-11 | 2003-08-21 | Michael Altenhofen | E-learning station and interface |
US20050149507A1 (en) * | 2003-02-05 | 2005-07-07 | Nye Timothy G. | Systems and methods for identifying an internet resource address |
US7613687B2 (en) * | 2003-05-30 | 2009-11-03 | Truelocal Inc. | Systems and methods for enhancing web-based searching |
US7386570B2 (en) * | 2005-03-31 | 2008-06-10 | International Business Machines Corporation | Method, system and program product for providing high performance data lookup |
US7953720B1 (en) | 2005-03-31 | 2011-05-31 | Google Inc. | Selecting the best answer to a fact query from among a set of potential answers |
US7587387B2 (en) | 2005-03-31 | 2009-09-08 | Google Inc. | User interface for facts query engine with snippets from information sources that include query terms and answer terms |
US8239394B1 (en) | 2005-03-31 | 2012-08-07 | Google Inc. | Bloom filters for query simulation |
US8538969B2 (en) * | 2005-06-03 | 2013-09-17 | Adobe Systems Incorporated | Data format for website traffic statistics |
US8027876B2 (en) * | 2005-08-08 | 2011-09-27 | Yoogli, Inc. | Online advertising valuation apparatus and method |
US8429167B2 (en) * | 2005-08-08 | 2013-04-23 | Google Inc. | User-context-based search engine |
US8954426B2 (en) | 2006-02-17 | 2015-02-10 | Google Inc. | Query language |
US7925676B2 (en) | 2006-01-27 | 2011-04-12 | Google Inc. | Data object visualization using maps |
US20070185870A1 (en) | 2006-01-27 | 2007-08-09 | Hogue Andrew W | Data object visualization using graphs |
US8055674B2 (en) * | 2006-02-17 | 2011-11-08 | Google Inc. | Annotation framework |
US8688485B2 (en) * | 2006-07-06 | 2014-04-01 | Google Inc. | Low fare search for ticket changes using married segment indicators |
US8954412B1 (en) | 2006-09-28 | 2015-02-10 | Google Inc. | Corroborating facts in electronic documents |
US8122026B1 (en) | 2006-10-20 | 2012-02-21 | Google Inc. | Finding and disambiguating references to entities on web pages |
US8321485B2 (en) | 2006-11-08 | 2012-11-27 | Hitachi, Ltd. | Device and method for constructing inverted indexes |
US8347202B1 (en) | 2007-03-14 | 2013-01-01 | Google Inc. | Determining geographic locations for place names in a fact repository |
US20080277314A1 (en) * | 2007-05-08 | 2008-11-13 | Halsey Richard B | Olefin production utilizing whole crude oil/condensate feedstock and hydrotreating |
US8239751B1 (en) | 2007-05-16 | 2012-08-07 | Google Inc. | Data from web documents in a spreadsheet |
US8166041B2 (en) * | 2008-06-13 | 2012-04-24 | Microsoft Corporation | Search index format optimizations |
US9087059B2 (en) | 2009-08-07 | 2015-07-21 | Google Inc. | User interface for presenting search results for multiple regions of a visual query |
US9135277B2 (en) | 2009-08-07 | 2015-09-15 | Google Inc. | Architecture for responding to a visual query |
US9092507B2 (en) * | 2013-01-15 | 2015-07-28 | Marklogic Corporation | Apparatus and method for computing n-way co-occurrences of data tuples in scalar indexes |
US9087055B2 (en) | 2013-01-28 | 2015-07-21 | International Business Machines Corporation | Segmenting documents within a full text index |
US10437911B2 (en) * | 2013-06-14 | 2019-10-08 | Business Objects Software Ltd. | Fast bulk z-order for graphic elements |
US10860571B2 (en) * | 2016-11-04 | 2020-12-08 | Sap Se | Storage and pruning for faster access of a document store |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5827240A (ja) * | 1981-08-10 | 1983-02-17 | Nippon Telegr & Teleph Corp <Ntt> | フアイル記憶方式 |
US4606002A (en) * | 1983-05-02 | 1986-08-12 | Wang Laboratories, Inc. | B-tree structured data base using sparse array bit maps to store inverted lists |
JPS607557A (ja) * | 1983-06-27 | 1985-01-16 | Fujitsu Ltd | 文字型デ−タの区分化圧縮法 |
JPS60247732A (ja) * | 1984-05-23 | 1985-12-07 | Nec Corp | デ−タ記憶装置 |
US5062074A (en) * | 1986-12-04 | 1991-10-29 | Tnet, Inc. | Information retrieval system and method |
US5201048A (en) * | 1988-12-01 | 1993-04-06 | Axxess Technologies, Inc. | High speed computer system for search and retrieval of data within text and record oriented files |
JP2969153B2 (ja) * | 1990-06-29 | 1999-11-02 | カシオ計算機株式会社 | レコード検索方法 |
US5321833A (en) * | 1990-08-29 | 1994-06-14 | Gte Laboratories Incorporated | Adaptive ranking system for information retrieval |
US5313604A (en) * | 1990-11-13 | 1994-05-17 | Hewlett-Packard Company | Method for locating compressed data in a computed memory back up device including steps of refining estimater location |
DE69231113T2 (de) * | 1991-04-08 | 2001-03-01 | Koninklijke Philips Electronics N.V., Eindhoven | Speicherverfahren für bibliographische Information über Daten aus einer endlichen Textquelle, und insbesondere Dokumentverbuchungen zur Verwendung in einem Suchsystem für Ganztextdokumente |
US5488725A (en) * | 1991-10-08 | 1996-01-30 | West Publishing Company | System of document representation retrieval by successive iterated probability sampling |
US5375235A (en) * | 1991-11-05 | 1994-12-20 | Northern Telecom Limited | Method of indexing keywords for searching in a database recorded on an information recording medium |
JPH05257774A (ja) * | 1992-03-10 | 1993-10-08 | Fujitsu Ltd | インデックス・レコード番号を圧縮・格納した情報検索装置 |
US5440481A (en) * | 1992-10-28 | 1995-08-08 | The United States Of America As Represented By The Secretary Of The Navy | System and method for database tomography |
US5649183A (en) * | 1992-12-08 | 1997-07-15 | Microsoft Corporation | Method for compressing full text indexes with document identifiers and location offsets |
-
1992
- 1992-12-08 US US07/986,754 patent/US5649183A/en not_active Expired - Lifetime
-
1993
- 1993-12-07 CA CA002110870A patent/CA2110870A1/en not_active Abandoned
- 1993-12-08 AT AT93119811T patent/ATE207635T1/de not_active IP Right Cessation
- 1993-12-08 EP EP93119811A patent/EP0601569B1/en not_active Expired - Lifetime
- 1993-12-08 JP JP30806093A patent/JP3550173B2/ja not_active Expired - Fee Related
- 1993-12-08 DE DE69330993T patent/DE69330993T2/de not_active Expired - Lifetime
-
1997
- 1997-03-28 US US08/829,461 patent/US5832479A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH06243009A (ja) | 1994-09-02 |
US5649183A (en) | 1997-07-15 |
US5832479A (en) | 1998-11-03 |
ATE207635T1 (de) | 2001-11-15 |
CA2110870A1 (en) | 1994-06-09 |
DE69330993D1 (de) | 2001-11-29 |
DE69330993T2 (de) | 2002-04-04 |
EP0601569A1 (en) | 1994-06-15 |
EP0601569B1 (en) | 2001-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3550173B2 (ja) | 全テキストインデックスを圧縮する方法 | |
EP0124097B1 (en) | Method for storing and retrieving data in a data base | |
US4677550A (en) | Method of compacting and searching a data index | |
US8838551B2 (en) | Multi-level database compression | |
JP4261779B2 (ja) | データ圧縮装置および方法 | |
JP3318834B2 (ja) | データファイルシステム及びデータ検索方法 | |
US7523288B2 (en) | Dynamic fragment mapping | |
US4486857A (en) | Display system for the suppression and regeneration of characters in a series of fields in a stored record | |
CN109325032B (zh) | 一种索引数据存储及检索方法、装置及存储介质 | |
JPH06505816A (ja) | 情報検索システム及び方法 | |
JPH06103497B2 (ja) | レコード検索方法及びデータベース・システム | |
JPS6115243A (ja) | メモリ割当て方法 | |
US20070094313A1 (en) | Architecture and method for efficient bulk loading of a PATRICIA trie | |
US7130859B2 (en) | Data structure for search | |
US5740457A (en) | Electronic dictionary, its production method, and index compression and decompression device | |
US5394143A (en) | Run-length compression of index keys | |
JPWO2007032068A1 (ja) | データベース管理プログラム | |
EP1202190A2 (en) | Data processing method, computer readable recording medium, and data processing device | |
JP2993540B2 (ja) | 昇順整数列データの圧縮および復号システム | |
JPH11232283A (ja) | 情報検索方法 | |
CN1412694A (zh) | 资料库系统储存及读取记录的方法 | |
JPH0689215A (ja) | 情報検索用コンピュータシステム及び同システムの記憶装置の操作方法 | |
JP2001134573A (ja) | 類似データ検索方法,類似データ検索装置,および類似データ検索用プログラム記録媒体 | |
JPS62287350A (ja) | インデツクス一括更新方式 | |
JPH06162096A (ja) | レコード検索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040218 |
|
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: 20040326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040423 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090430 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090430 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100430 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110430 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120430 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120430 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |