JP2014521176A - インデックス構築方法、検索方法、検索デバイス、および検索システム - Google Patents

インデックス構築方法、検索方法、検索デバイス、および検索システム Download PDF

Info

Publication number
JP2014521176A
JP2014521176A JP2014520505A JP2014520505A JP2014521176A JP 2014521176 A JP2014521176 A JP 2014521176A JP 2014520505 A JP2014520505 A JP 2014520505A JP 2014520505 A JP2014520505 A JP 2014520505A JP 2014521176 A JP2014521176 A JP 2014521176A
Authority
JP
Japan
Prior art keywords
index segment
segment
primary
index
level
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.)
Granted
Application number
JP2014520505A
Other languages
English (en)
Other versions
JP5823037B2 (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Publication of JP2014521176A publication Critical patent/JP2014521176A/ja
Application granted granted Critical
Publication of JP5823037B2 publication Critical patent/JP5823037B2/ja
Active 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices

Abstract

開示されるのは、インデックス構築方法、検索方法、検索デバイス、および検索システムであり、インデックス構築方法は、それぞれのプリセット期間内で取得されたデータに関する一次インデックスセグメントをそれぞれ構築して、それぞれのプリセット期間が終わった後で、構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするステップと、一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するステップと、検索サービスを提供するために、一次インデックスセグメントセット内の一次インデックスセグメントまたは大きなインデックスセグメントセット内の大きなインデックスセグメントを検索デバイスに送信するステップとを含む。本発明は、一次インデックスセグメントを時間に基づいて構築して、構築された一次インデックスセグメントを大きなインデックスセグメントにマージして、検索サービスに一次インデックスセグメントまたは大きなインデックスセグメントを同時に提供し、これにより、検索速度を改善する。

Description

本出願は、その内容全体が参照により組み込まれている「index constructing method, search method, device and system」という表題の、2011年7月21日に出願した、中国特許出願第201110204879.8号からの優先権の利益を主張するものである。
本開示は、検索技術に関し、より詳細には、インデックス構築方法、検索方法、検索デバイス、および検索システムに関する。
ネットワークの需要と増大する情報量とにより、検索技術の適用範囲はますます広がっている。検索を達成するために、データを事前にインデックスに構築し、次いで、事前に構築されたインデックスに従って検索を実行することが必要である。したがって、インデックスを構築する様式が検索速度を決める場合がある。
関連技術において、インデックスを構築する1つの様式は、ファイルサイズに従って、1個の大きなインデックスセグメントと1個の小さなインデックスセグメントとを含む2個のインデックスセグメントを確立して、新しいデータを小さなインデックスセグメント内にリアルタイムでマージ(merge)し、ある時点で、大きなインデックスセグメントと小さなインデックスセグメントとを新しい大きなインデックスセグメントにマージすることである。検索の間、大きなインデックスセグメントと小さなインデックスセグメントとが同時に検索され、次いで、大きなインデックスセグメントと小さなインデックスセグメントの両方の検索の結果がマージされる。
本開示の実装のプロセスにおいて、発明者らは、関連技術は少なくとも以下の不利点を有することを見出した。
関連技術では、検索サービスを提供する前に、新しいデータと小さなインデックスセグメントとをマージし、次いで、小さなインデックスセグメントと大きなインデックスセグメントとをマージすることが必要とされるため、検索速度が影響を受ける。
検索速度を改善するために、本開示の一例は、インデックス構築方法、検索方法、検索デバイス、および検索システムを提供する。この技術的解決策は以下の通りである。
一方で、インデックス構築方法が提供され、この方法は、
それぞれのプリセット期間内で取得されたデータを一次インデックスセグメントにそれぞれ構築して、それぞれのプリセット期間が終わった後で、構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするステップと、
一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するステップと、
検索サービスを提供するために、一次インデックスセグメントセット内の一次インデックスセグメントまたは大きなインデックスセグメントセット内の大きなインデックスセグメントを検索デバイスに送信するステップと
を含む。
インデックス構築デバイスがやはり提供され、
それぞれのプリセット期間内で取得されたデータを一次インデックスセグメントにそれぞれ構築して、それぞれのプリセット期間が終わった後で、構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするように構成された構築モジュールと、
構築モジュールによって取得された一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するように構成された第1のマージモジュールと、
検索サービスを提供するために、構築モジュールによって取得された一次インデックスセグメントセット内の一次インデックスセグメントまたは第1のマージモジュールによって取得された大きなインデックスセグメントセット内の大きなインデックスセグメントを検索デバイスに送信するように構成された送信モジュールと
を含む。
他方で、検索方法がやはり提供され、
それぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得して、取得された第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするステップと、
第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージして、第2のレベルのインデックスセグメントセットを取得するステップと、
第1のレベルのインデックスセグメントセット内の第1のレベルのインデックスセグメントと第2のレベルのインデックスセグメントセット内の第2のレベルのインデックスセグメントとに従って、検索サービスを提供するステップと
を含む。
検索デバイスがやはり提供され、
それぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得して、取得された第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするように構成された取得モジュールと、
取得モジュールによって取得された第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージして、第2のレベルのインデックスセグメントセットを取得するように構成された第2のマージモジュールと、
取得モジュールによって取得された第1のレベルのインデックスセグメントセット内の第1のレベルのインデックスセグメントと第2のマージモジュールによって取得された第2のレベルのインデックスセグメントセット内の第2のレベルのインデックスセグメントとに従って、検索サービスを提供するように構成された検索モジュールと
を含む。
他方で、検索システムがやはり提供され、1個のインデックス構築デバイスと2個以上の検索デバイスとを含み、
インデックス構築デバイスは上記のインデックス構築デバイスであり、
検索デバイスは上記の検索デバイスである。
本開示の実施形態で提供される技術的解決策の有益な効果は、以下を含む。
上述のように、関連技術では、検索サービスを提供する前に、新しいデータと小さなインデックスセグメントとをマージし、次いで、小さなインデックスセグメントと大きなインデックスセグメントとをマージすることが必要とされるため、検索速度が影響を受けるのに対して、本開示の実施形態で提供される技術的解決策を導入した後で、一次インデックスセグメントを時間に基づいて構築して、構築された一次インデックスセグメントを大きなインデックスセグメントにマージするステップと、検索サービスに一次インデックスセグメントまたは大きなインデックスセグメント、すなわち、既に構築された一次インデックスセグメントまたは大きなインデックスセグメントを同時に提供するステップとを使用して、インデックスの構築時に検索サービスを提供することが可能であり、インデックスを構築するための1つのスレッドおよび検索するための1つのスレッドが並行して実行され、それによって、検索速度を改善する。
当業者に対して本開示の上記のおよびその他の特徴ならびに利点をより明瞭にするために、添付の図面を参照して、本開示の例示的な実施例が詳細に説明される。
本開示の第1の実施例によるインデックス構築方法の流れ図である。 本開示の第2の実施例によるインデックス構築方法の流れ図である。 本開示の第2の実施例による、インデックスセグメントをマージするステップの概略図である。 本開示の第2の実施例による、インデックスを構築するプロセスを示す概略図である。 本開示の第3の実施例によるインデックス構築デバイスの第1の概略図である。 本開示の第3の実施例によるインデックス構築デバイスの第2の概略図である。 本開示の第3の実施例によるインデックス構築デバイスの第3の概略図である。 本開示の第3の実施例による送信ジュールの概略図である。 本開示の第4の実施例による検索方法の流れ図である。 本開示の第5の実施例による検索方法の流れ図である。 本開示の第5の実施例による検索するステップの概略図である。 本開示の第6の実施例による検索デバイスの概略図である。 本開示の第6の実施例による取得モジュールの概略図である。 本開示の第7の実施例による検索システムの概略図である。 本開示の第7の実施例による別の検索システムの概略図である。
本開示の目的、技術的解決策、および利点をより明瞭にするために、添付の図面を参照して、本開示の様々な実施例が詳細に説明される。
この実施例はインデックス構築方法を提供する。図1を参照すると、この実施例で提供される方法の流れは、詳細には、以下の通りである。
101:それぞれのプリセット期間内で取得されたデータを一次インデックスセグメントにそれぞれ構築して、それぞれのプリセット期間が終わった後で、構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするステップ、
102:一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するステップ、および
103:検索サービスを提供するために、一次インデックスセグメントセット内の一次インデックスセグメントまたは大きなインデックスセグメントセット内の大きなインデックスセグメントを検索デバイスに送信するステップ。
この実施例で提供される方法を明瞭に例示するために、この実施例で提供される方法は、以下で、第2の実施例の特定の内容を参照してさらに説明される。詳細は、以下の第2の実施例の内容を参照する。
この実施例はインデックス構築方法を提供する。図2を参照すると、この実施例で提供される方法の流れは、詳細には、以下の通りである。
201:それぞれのプリセット期間内で取得されたデータを一次インデックスセグメントにそれぞれ構築するステップ。
このステップでは、この実施例はプリセット期間のサイズを限定しない。説明の便宜上、この実施例は、5分であるプリセット期間のサイズだけを例にとり、その場合、この実施例で提供される方法は、5分ごとに取得されたデータを一次インデックスセグメントにそれぞれ構築する。データをインデックスセグメントに構築することは、既に非常に成熟した既存の技術であるため、取得されたデータを一次インデックスセグメントに構築する様式は、この実施例において、ここで詳細に説明および限定されない。
詳細には、構築された一次インデックスセグメントは、データの複数の独立したインデックス構造を含み、これらの独立したインデックス構造は、転置インデックスと、削除テーブルと、文書基礎情報およびカスタマイズされたその他の情報とを含むが、これらに限定されない。転置インデックス内のインデックステーブル内のそれぞれの項目は、属性値とその属性値を有するそれぞれの記録のアドレスとを含む。これらの記録によって属性値を判断するのではなく、その属性値によってこれらの記録の位置を判断し、これは転置インデックスと呼ばれる。転置インデックスのインデックスオブジェクトは、文書内または文書のセット内の語などである。転置インデックスは、文書内または文書のセット内の語の記憶位置を記憶するために使用され、文書または文書のセットの共通のインデックス機構である。それぞれの文書はその独自の文書idを有し、これにより、異なる文書を区別することができる。文書基礎情報の特定の内容に関して、この実施例では詳細に限定されない。この実施例では、インデックスセグメント内に既に存在する情報を使用して、適切な高速のメモリデータ構造を構築するために、この実施例では、構築された一次インデックスセグメントを初期化する1つの方法が挙げられ、初期化後の一次インデックスセグメントのデータ構造は以下のTable 1(表1)に示される。
Figure 2014521176
Table 1(表1)では、キーワードから転置インデックスへのマッピングテーブルであれ、文書idから文書基礎情報へのマッピングテーブルであれ、それぞれのマッピングテーブルは、ハッシュアレイと衝突リストとから構成され、ハッシュアレイおよび衝突リストは密なアレイ構造を形成する。初期化の間、マッピングテーブルとしてデータを直接的に利用することができる。
202:それぞれのプリセット期間が終わった後で、構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするステップ。
このステップでは、5分であるプリセット期間を依然として例にとると、その場合、5分ごとに、すべての取得されたデータを一次インデックスセグメントに構築することができ、5分に達した後で、一次インデックスセグメントが一次インデックスセグメントセットにマージされる。一次インデックスセグメントセットは、複数の5分内に構築された一次インデックスセグメントを含む。
好ましくは、この実施例で提供される方法は、一次インデックスセグメントセット内の一次インデックスセグメントを対応する大きなインデックスセグメントセットにマージすることになるため、メモリリソースを節約するために、構築された一次インデックスセグメントを一次インデックスセグメントセットにマージした後で、この実施例で提供される方法は、さらに以下を含む。
それぞれのプリセット期間ごとに、そのそれぞれのプリセット期間の前に構築された一次インデックスセグメントを一次インデックスセグメントセットから削除するステップ。
この実施例は、それぞれのプリセット期間内に、削除されることになる一次インデックスセグメントが大きなインデックスセグメントセットに既にマージされていることを確実にできる限り、プリセット期間の特定サイズを限定しない。
203:一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するステップ。
詳細には、図3は、一次インデックスセグメントを構築して、一次インデックスセグメントを一次インデックスセグメントセットにマージして、一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、対応する大きなインデックスセグメントにマージするプロセス全体を示す。
一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージするとき、一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを今度は時間系列に従って複写することができ、複写された一次インデックスセグメントは対応する大きなインデックスセグメントにマージされる。この対応する大きなインデックスセグメントは、大きなインデックスセグメントセット内にあり、かつ空メモリに隣接する大きなインデックスセグメントである。
理解を促すために、この実施例において、このステップのマージ様式は、図4に示されるマージプロセスを参照して詳細に説明される。特定の実現の際に、この実施例で提供される方法は、メモリの連続的なチャンクを事前に割り振り、このメモリは複数の大きなインデックスセグメントと空メモリ領域とを記憶する。マージのために空メモリ領域に隣接する大きなインデックスセグメントを選択するたびに、その空メモリ領域に隣接し、かつその空メモリ領域の上部に位置する1個の大きなインデックスセグメントを選択することができ、その空メモリ領域に隣接し、かつその空メモリ領域の下部に位置する1個の大きなインデックスセグメントを選択することもできる。その空メモリ領域の上部および下部に大きなインデックスセグメントが存在しない場合、一次インデックスセグメントは空メモリに直接的にマージされる。図4aを参照すると、この実施例では、ある例として、空メモリ領域に隣接し、かつその空メモリ領域の上部に位置し、大きなインデックスセグメントセットから選択された1個の大きなインデックスセグメントは、大きなインデックスセグメント4である。マージされる必要がある1個の一次インデックスセグメントは対応する大きなインデックスセグメント4にマージされることになる。一次インデックスセグメントを対応する大きなインデックスセグメント4にマージすることを選択した後で、マージにより1個の新しい大きなインデックスセグメント4が取得される。一次インデックスセグメントの後続のマージの際、図4(b)を参照すると、最後の選択様式に従って、空メモリ領域に隣接し、かつその空メモリ領域の上部に位置する、1個の選択された大きなインデックスセグメントは大きなインデックスセグメント3であり、マージの後で取得された大きなインデックスセグメントセットが図4(b)に示される。
一次インデックスセグメントを対応する大きなインデックスセグメントにマージするとき、図3および上で議論された内容と組み合わせて、一次インデックスセグメントを空メモリに隣接する大きなインデックスセグメントにマージする方法が導入されるため、この実施例で提供されるマージ様式は連続的な空メモリ、すなわち、メモリ内に空隙が存在しないことを確実にでき、それによって、メモリの利用率を改善することがわかる。さらに、この例で提供されるマージ様式では、マージされる必要がある大きなインデックスセグメントと一次インデックスセグメントとの間に交差は存在せず、したがって、マージが完了する前に、この大きなインデックスセグメントおよび一次インデックスセグメントは、依然として、検索サービスを提供し続けることが可能である。
好ましくは、一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得した後で、この実施例で提供される方法は、大きなインデックスセグメントセット内のそれぞれの大きなインデックスセグメントをバックアップするステップをさらに含む。特定のバックアップモードに関して、この実施例はそのモードに何の特定の限定も課さない。実際の適用例では、取得された大きなインデックスセグメントセット内のそれぞれの大きなインデックスセグメントをローカルディスク内にバックアップすることが可能である。
204:検索サービスを提供するために、一次インデックスセグメントセット内の一次インデックスセグメントまたは大きなインデックスセグメントセット内の大きなインデックスセグメントを検索デバイスに送信するステップ。
このステップでは、この実施例で提供される方法でインデックスセグメントを構築するとき、構築されたインデックスセグメントは、共通の転置インデックス、削除テーブル、文書基礎情報およびその他の情報に加えて、seqno(連続番号)値、および完全であるかどうかのIsComplete符号を少なくともさらに含む。seqno値は、構築された異なるインデックスセグメントを区別するように構成される。この実施例は、連続番号値のサイズを限定しない。64ビット整数であるseqno値を例にとると、それぞれの構築された一次インデックスセグメントに関して、それぞれの構築された一次インデックスセグメントのseqno値は、1から始めて漸進的に狭義単調増加する。この例は漸進的に増加する率を限定しない。ある例として、毎回1を加算することによってseqno値を漸進的に増加することができる。新しい一次インデックスセグメントが構築されるたびに、新しいseqno値がその新しい一次インデックスセグメントに割り振られる。大きなインデックスセグメントと一次インデックスセグメントとが新しい大きなインデックスセグメントにマージされるとき、新しい大きなインデックスセグメントのseqno値は、大きなインデックスセグメントのseqno値および一次インデックスセグメントのseqno値のうち、大きい方のseqno値に等しい。IsComplete符号は、1個のインデックスセグメントが完全であるかどうかを指す。この実施例では、1個の一次インデックスセグメントに関して、一次インデックスセグメントが一次インデックスセグメントセットにマージされた後で、この一次インデックスセグメントは完全になり、すなわち、この一次インデックスセグメントは、5分内のすべてのデータを含む。プリセット期間に達しない場合、1個の一次インデックスセグメントは、その後、データを取得し続けることができ、これは、現在構築されている一次インデックスセグメントは5分内のすべてのデータを含まないことを意味し、したがって、この一次インデックスセグメントは完全ではない。それぞれの大きなインデックスセグメントに関して、それぞれの大きなインデックスセグメントは完全な一次インデックスセグメントをマージすることによって取得されるため、それぞれの大きなインデックスセグメントは完全である。好ましく
は、インデックスデータを検査するために、1個のインデックスセグメントは、md5検査値をさらに含むことが可能である。md5検査値は、インデックスセグメントのすべてのバイトのmd5値を指す。
一次セグメント内に含まれる上記の情報と組み合わせて、検索サービスを提供するために、一次インデックスセグメントセット内の一次インデックスセグメントまたは大きなインデックスセグメントセット内の大きなインデックスセグメントを検索デバイスに送信するとき、この実施例で提供される方法は、
連続番号および完全であるかどうかの符号を搬送する、検索デバイスから送信されたインデックスセグメントアプリケーションを受信するステップと、
アプリケーション内で搬送された連続番号および完全であるかどうかの符号に従って、一次インデックスセグメントセットの一次インデックスセグメントまたは大きなインデックスセグメントセットの大きなインデックスセグメントである、対応するインデックスセグメントを検索デバイスに送信するステップと
を特に含む。
検索デバイスがインデックスアプリケーションを送信する理由は、検索デバイス自体の中に既にあるインデックスセグメントを更新するように、新しく構築されたインデックスセグメントを取得するためであり、したがって、検索デバイスから送信されたアプリケーション内で搬送された連続番号値は、検索デバイス内に既にあるインデックスセグメントの連続番号値の最大連続番号値である。初始動、再始動、障害などの理由により、検索デバイスが何のインデックスセグメントも有さない状況では、検索デバイスがインデックスセグメントアプリケーションを送信するとき、アプリケーション内で搬送される連続番号値はヌルに設定される。連続番号値がヌルである状況は、実施例5のステップ1001に示される検索方法を紹介するときに詳細に説明される。
さらに、アプリケーション内で搬送された連続番号および完全であるかどうかの符号に従って、対応するインデックスセグメントを検索デバイスに送信するステップは、
アプリケーション内で搬送された連続番号値がヌルである場合、バックアップされたインデックスセグメントを読み取って、バックアップされたインデックスセグメントを検索デバイスに送信するステップ、
または、アプリケーション内で搬送された連続番号値が非ヌルであり、かつアプリケーションが不完全であるという符号を搬送する場合、アプリケーション内で搬送された連続番号値と同じ連続番号値を有するインデックスセグメントを検索デバイスに送信するステップ、
または、アプリケーション内で搬送された連続番号値が非ヌルであり、かつアプリケーションが完全であるという符号を搬送する場合、アプリケーション内で搬送された連続番号値の次の連続番号値である連続番号値を有するインデックスセグメントを検索デバイスに送信するステップ
を特に含む。
この実施例で提供される方法では、複数の一次インデックスセグメントを時間に基づいて構築するステップと、構築された一次インデックスセグメントを大きなインデックスセグメントにマージするステップと、検索サービスに一次インデックスセグメントまたは大きなインデックスセグメントを同時に提供するステップとにより、検索速度を改善することができる。インデックスセグメントをマージするとき、インデックスセグメントは、好ましくは、空メモリ領域に隣接するインデックスセグメントにマージされ、それによって、メモリの利用率を改善する。さらに、一次インデックスセグメントを構築するとき、適切な高速メモリデータ構造を構築するように、インデックスセグメント内の既存のデータを使用して、インデックスセグメントを初期化することができ、それによって、検索速度をさらに改善することができる。
この実施例は、上記の実施例2のインデックス構築方法を実行するために使用可能なインデックス構築デバイスを提供する。図5を参照すると、インデックス構築デバイスは、
それぞれのプリセット期間内で取得されたデータを一次インデックスセグメントにそれぞれ構築して、それぞれのプリセット期間が終わった後で、構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするように構成された構築モジュール501と、
構築モジュール501によって取得された一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するように構成された第1のマージモジュール502と、
検索サービスを提供するために、構築モジュール501によって取得された一次インデックスセグメントセット内の一次インデックスセグメントまたは第1のマージモジュール502によって取得された大きなインデックスセグメントセット内の大きなインデックスセグメントを検索デバイスに送信するように構成された送信モジュール503と
を含む。
詳細には、第1のマージモジュール502は、構築モジュール501によって取得された一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを今度は時間系列に従って複写して、複写された一次インデックスセグメントを、大きなインデックスセグメントセット内の大きなインデックスセグメントであり、かつ空メモリに隣接する対応する大きなインデックスセグメントにマージするように特に構成される。
好ましくは、図6を参照すると、このデバイスは、
構築モジュール501が構築された一次インデックスセグメントを一次インデックスセグメントセットにマージした後で、それぞれのプリセット期間ごとに、そのそれぞれのプリセット期間の前に構築された一次インデックスセグメントを一次インデックスセグメントセットから削除するように構成された削除モジュール504
をさらに含む。
好ましくは、図7を参照すると、このデバイスは、
第1のマージモジュール502が、構築モジュール501によって取得された一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得した後で、大きなインデックスセグメントセット内のそれぞれの大きなインデックスセグメントをバックアップするように構成されたバックアップモジュール505
をさらに含む。
構築モジュール501によって構築された一次インデックスセグメントおよびマージによって第1のマージモジュール502によって取得された大きなインデックスセグメントのそれぞれは、連続番号値および完全であるかどうかの符号を含み、
したがって、第1のマージモジュール502が構築モジュール501によって取得された一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージするとき、マージされた後の大きなインデックスセグメントの連続番号値は、マージするときの一次インデックスセグメントの連続番号値および大きなインデックスセグメントの連続番号値のうち、大きい方の連続番号値であり、
したがって、図8を参照すると、送信モジュール503は、
連続番号値および完全であるかどうかの符号を搬送する、検索デバイスから送信されたインデックスセグメントアプリケーションを受信するように構成された第1の受信ユニット503aと、
第1の受信ユニット503aによって受信されたアプリケーション内で搬送された連続番号値および完全であるかどうかの符号に従って、一次インデックスセグメントセットの一次インデックスセグメントまたは大きなインデックスセグメントセットの大きなインデックスセグメントである対応するインデックスセグメントを検索デバイスに送信するように構成された第1の送信ユニット503bと
を特に含む。
さらに、第1の送信ユニット503bは、第1の受信ユニット503aによって受信されたアプリケーション内で搬送された連続番号がヌルである場合、バックアップされたインデックスセグメントを読み取って、バックアップされたインデックスセグメントを検索デバイスに送信し、または第1の受信ユニット503aによって受信されたアプリケーション内で搬送された連続番号値が非ヌルであり、かつアプリケーションが不完全であるという符号を搬送する場合、アプリケーション内で搬送された連続番号値と同じ連続番号値を有するインデックスセグメントを検索デバイスに送信し、または第1の受信ユニット503aによって受信されたアプリケーション内で搬送された連続番号値が非ヌルであり、かつアプリケーションが完全であるという符号を搬送する場合、アプリケーション内で搬送された連続番号値の次の連続番号値である連続番号値を有するインデックスセグメントを検索デバイスに送信するように特に構成される。
この実施例で提供されるデバイスでは、複数の一次インデックスセグメントを時間に基づいて構築することと、構築された一次インデックスセグメントを大きなインデックスセグメントにマージすることと、検索サービスに一次インデックスセグメントまたは大きなインデックスセグメントを同時に提供することとにより、検索速度を改善することができる。さらに、インデックスセグメントをマージするとき、インデックスセグメントは、好ましくは、空メモリ領域に隣接するインデックスセグメントにマージされ、それによって、メモリの利用率を改善する。
この実施例は検索方法を提供し、図9を参照すると、この実施例で提供される検索方法流れ図は、詳細には、以下の通りである。
901:それぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得して、取得された第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするステップ、
902:第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、複写された第1のレベルのインデクスセグメントを対応する第2のレベルのインデックスセグメントにマージして、第2のレベルのインデックスセグメントセットを取得するステップ、および
903:第1のレベルのインデックスセグメントセット内の第1のレベルのインデックスセグメントと第2のレベルのインデックスセグメントセット内の第2のレベルのインデックスセグメントとに従って、検索サービスを提供するステップ。
この実施例で提供される方法をより良好に説明するために、この実施例で提供される方法は、以下で、実施例5の特定の内容を参照して詳細に説明される。
この実施例は検索方法を提供し、図10を参照すると、この実施例で提供される検索方法の流れ図は詳細には、以下の通りである。
1001:それぞれのプリセット期間ごとに、連続番号値および完全であるかどうかの符号を搬送するインデックスセグメントアプリケーションをインデックス構築デバイスに送信するステップ。
このステップでは、検索結果の精度を確実にするように、既に存在したインデックスセグメントをリアルタイムで更新するために、インデックス構築デバイスからインデックスセグメントを取得し続けることが必要とされ、したがって、プリセット期間を数秒または数分に設定することができる。この実施例は、プリセット期間のサイズを特に限定しない。
さらに、インデックス構築デバイスから必要とされるインデックスセグメントを取得することが可能であるために、それぞれのプリセット期間ごとに、検索デバイスは、連続番号値および完全であるかどうかの符号を搬送するインデックスセグメントアプリケーションをインデックス構築デバイスに送信する。検索に使用されたインデックスセグメントを更新するように、インデックス構築デバイスによって構築された新しいインデックスセグメントを取得するために、このステップでインデックスセグメントアプリケーションを送信するとき、アプリケーション内で搬送される連続番号値は、検索デバイス内に既に存在したインデックスセグメントの連続番号値のうちの最大連続番号である。
初始動、再始動、障害などの理由で、検索デバイスが何のインデックスセグメントも有さない状況の場合、このステップでインデックスセグメントアプリケーションを送信するとき、アプリケーション内で搬送された連続番号値はヌルであると判断される。判断様式は、以下の2つの異なる状況に従って別個で処理されうる。
第1の状況。(初期展開、クラッシュ、および停電など)様々な理由で検索デバイスが再始動した後で、検索デバイスが何のインデックスセグメントも有さない。
この状況では、検索デバイスがインデックスセグメントアプリケーションをインデックス構築デバイスに送信するとき、アプリケーション内で搬送されるseqno値はヌルに設定される。インデックス構築デバイスがその連続番号値がヌルであるインデックスセグメントアプリケーションを受信した後、インデックス構築デバイスは、ディスクから読み取られたもっとも最近のバックアップデータを送信する。ある例として、インデックス構築デバイスは、1時間に一度、大きなインデックスセグメントをバックアップして、2時間に一度、一次インデックスセグメントセット内の一次インデックスセグメントを削除し、次いで、次にインデックスセグメントを適用するとき、新しいインデックスセグメントは一次インデックスセグメントセット内にある。
第2の状況。作業環境が正常な状況範囲外(out-of-state)である(例えば、ネットワークを30分連続して使用できない)とき、検索デバイスは、長期間にわたってインデックス構築デバイスと通信することができず、検索の間に検索デバイスによって使用されるインデックスセグメントとインデックス構築デバイスによって構築されるインデックスセグメントとの間に大きな違いが存在する。
この状況では、ある例として、インデックス構築デバイスは1時間に一度、大きなインデックスセグメントをバックアップして、2時間に一度、一次インデックスセグメントセット内の一次インデックスセグメントを削除する。このステップでインデックスセグメントアプリケーションをインデックス構築デバイスに送信するとき、アプリケーション内で搬送される連続番号値が、依然として、検索デバイス内に既に存在したインデックスセグメントの連続番号値のうちの最大連続番号値である場合、インデックス構築デバイスがアプリケーション内で搬送された連続番号値を受信した後で、検索デバイスが連続番号値に対応するインデックスセグメントを見出して、その連続番号値に対応するインデックスセグメントの構築の際の時間の空白が2時間以内である(すなわち、2時間以内ネットワークを停止する)と判断した場合、(検索デバイスの第1のレベルのインデックスセグメントセットは2時間の第1のレベルのインデックスセグメントを含むため)通常のプロセスが依然として実行され、その連続番号値に対応するインデックスセグメントの構築の際の時間の空白が2時間を超える(すなわち、2時間を超過してネットワークを停止する)と判断した場合、インデックス構築デバイスは、現在のインデックスセグメントを空にして、第1の状況の処理様式に従って実行するように検索デバイスに通知するように、検索デバイスに対してエラー通知を発行することができる。この例は、インデックス構築デバイスが通知メッセージを検索デバイスに送信する様式を限定しない。この状況の場合、他の処理様式を導入することが可能であり、検索デバイスが障害を送信した後で、検索デバイスがインデックス構築デバイスによって構築されたインデックスセグメントを取得することができることを確実にできる限り、この例は他の処理様式を特に限定しない。
上記の実施例2から、それぞれのインデックスセグメントは連続番号値および完全であるかどうかの符号を含むため、インデックス構築デバイスが連続番号値および完全であるかどうかの符号を搬送するアプリケーションを受信するとき、インデックス構築デバイスはどのインデックスセグメントを送信するかを判断することができることが分かる。インデックス構築デバイスがインデックスセグメントを送信する様式は、上記の実施例2のステップ201の関連する記載を参照し、ここで繰り返されない。
1002:アプリケーション内で搬送された連続番号値および完全であるかどうかの符号に従ってインデックス構築デバイスから送信されたインデックスセグメントを受信して、受信されたインデックスセグメントを第1のレベルのインデックスセグメントと見なして、第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするステップ。
このステップでは、実際の実装において、受信された第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするとき、受信された第1のレベルのインデックスセグメントは、受信された順序に従って第1のレベルのインデックスセグメントセット内に順番に配列可能である。受信された第1のレベルのインデックスセグメントが不完全のインデックスセグメントである場合、この受信された第1のレベルのインデックスセグメントは、第1のレベルのインデックスセグメントセット内の最後のインデックスセグメントとして直接的に配列される。受信された第1のレベルのインデックスセグメントが完全なインデックスセグメントである場合、この受信された第1のレベルのインデックスセグメントは、第1のレベルのインデックスセグメントセット内の最後のインデックスセグメントをカバーする。受信された第1のレベルのインデックスセグメントが完全であるかどうかをどのように判断するかについては、第1のレベルのインデックスセグメント内に含まれた、完全であるかどうかの符号によって得ることができる。
上記のステップ1001および1002は実施例4のステップ901を示すための例である点に留意されたい。実際の適用例では、ステップ901のそれぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得するステップを達成するために、他の様式を導入することが可能である。この実施例は特に様式を限定しない。
1003:第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージして、第2のレベルのインデックスセグメントセットを取得するステップ。
このステップに関して、第1のレベルのインデックスセグメントと第2のレベルのインデックスセグメントとをマージする1つのプロセスを図11に示すことができる。マージ原理は、実施例2のステップ203で、一次インデックスセグメントと大きなインデックスセグメントとをマージする原理と同じであり、すなわち、第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを今度は時間系列に従って複写することができ、複写された第1のレベルのインデックスセグメントは対応する第2のレベルのインデックスセグメントにマージされる。対応する第2のレベルのインデックスセグメントは、第2のレベルのインデックスセグメントセット内にあり、かつ空メモリに隣接する第2のレベルのインデックスセグメントである。マージされた後の第2のレベルのインデックスセグメントの連続番号値は、マージするときの第1のレベルのインデックスセグメントの連続番号値および第2のレベルのインデックスセグメントの連続番号値のうち、大きい方の連続番号値である。
1004:第1のレベルのインデックスセグメントセット内の第1のレベルのインデックスセグメントと第2のレベルのインデックスセグメントセット内の第2のレベルのインデックスセグメントとに従って、検索サービスを提供するステップ。
この実施例で提供される検索方法の場合、実際の適用例では、1つのプリセット期間内に構築された完全な一次インデックスセグメントと大きなインデックスセグメントとをマージする時間はそのプリセット期間未満であり、したがって、インデックスの検索および構築は完全に同期化される。インデックスに構築されるときから検索可能になるときまでのデータの総合遅延を計算するための公式は、
T=Tinsert_to_segment+Tcopy_segment+Treload_segment
である。
式中、Tinsert_to_segmentは、1つのデータをあるインデックスセグメントに構築する消費時間に等しい、データをインデックスセグメントに構築する時間、すなわち、本開示のこの実施例では、データを一次インデックスセグメントに構築する時間に、インデックスセグメントを一次インデックスセグメントにマージする消費時間を加えた時間を指し、1,000万個の独立型のシステムでは、消費時間は秒レベルである。Tcopy_segmentは、1個の一次インデックスセグメントを複写する消費時間を指し、1,000万個の独立型および1000Mのローカルエリアネットワークのシステムでは、消費時間は秒レベルである。Treload_segmentは一次インデックスセグメントを初期化する消費時間を指し、これは、実用統計の結果によれば、ほぼ0秒でありうる。これにより、上記の解析によれば、この実施例で提供される検索方法の総合遅延は秒レベルである。この実施例で提供される検索方法の検索速度は非常に高速であり、関連技術と比較して、相当な改善が存在することが分かる。
この実施例で提供される方法では、インデックス構築デバイスからインデックスセグメントを取得するステップと、インデックス構築デバイスによって送信されて、構築された一次インデックスセグメントまたは大きなインデックスセグメントを受信するステップとにより、検索サービスを提供することが可能であり、検索速度を改善することができる。第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージするとき、第1のレベルのインデックスセグメントは、好ましくは、空メモリ領域に隣接する第2のレベルのインデックスセグメントにマージされ、それによって、メモリの利用率を改善する。さらに、この実施例で提供される検索方法は、検索処理において遭遇する異常状況に対する耐障害性機構も導入し、それによって、検索のリアルタイムの性能を確実にする。
この実施例は検索デバイスを提供し、図12を参照すると、このデバイスは、
それぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得して、取得された第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするように構成された取得モジュール1201と、
取得モジュール1201によって取得された第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージして、第2のレベルのインデックスセグメントセットを取得するように構成された第2のマージモジュール1202と、
取得モジュール1201によって取得された第1のレベルのインデックスセグメントセット内の第1のレベルのインデックスセグメントと前記第2のマージモジュール1202によって取得された第2のレベルのインデックスセグメントセット内の第2のレベルのインデックスセグメントとに従って、検索サービスを提供するように構成された検索モジュール1203と
を含む。
詳細には、第2のマージモジュール1202は、第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを今度は時間系列に従って複写して、複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージするステップを行うように特に構成される。対応する第2のレベルのインデックスセグメントは、第2のレベルのインデックスセグメントセット内にあり、かつ空メモリに隣接する第2のレベルのインデックスセグメントである。
取得モジュール1201によって取得された第1のレベルのインデックスセグメントおよび第2のマージモジュール1202によって取得された第2のレベルのインデックスセグメントのそれぞれは、連続番号値および完全であるかどうかの符号を含む。
したがって、図13を参照すると、取得モジュール1201は、
それぞれのプリセット期間ごとに、連続番号値および完全であるかどうかの符号を搬送するインデックスセグメントアプリケーションをインデックス構築デバイスに送信するように構成された第2の送信ユニット1201aと、
第2の送信ユニット1201aによって送信された連続番号値および完全であるかどうかの符号に従ってインデックス構築デバイスによって送信されたインデックスセグメントを受信して、受信されたインデックスセグメントを第1のレベルのインデックスセグメントと見なして、第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージするように構成された第2の受信ユニット1201bと
を特に含む。
したがって、第2のマージモジュール1202が、取得モジュール1201によって取得された第1のレベルのインデックスセグメントセット内のそれぞれの第1レベルのインデックスセグメントを複写して、複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージするとき、マージされた後の第2のレベルのインデックスセグメントの連続番号値は、マージするときの第1のレベルのインデックスセグメントの連続番号値および第2のレベルのインデックスセグメントの連続番号値のうち、大きい方の連続番号値である。
この実施例で提供されるデバイスでは、インデックス構築デバイスからインデックスセグメントを取得すること、およびインデックス構築デバイスによって送信されて、構築された一次インデックスセグメントまたは大きなインデックスセグメントを受信することにより、検索サービスを提供することが可能であり、検索速度を改善することができる。第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージするとき、第1のレベルのインデックスセグメントは、好ましくは、空メモリ領域に隣接する第2のレベルのインデックスセグメントにマージされ、それによって、メモリの利用率を改善する。さらにこの実施例で提供されるデバイスは、検索処理において遭遇する異常状況に対する耐障害性機構も導入し、それによって、検索のリアルタイムの性能を確実にする。
この実施例は検索システムを提供し、図14を参照すると、このシステムは、インデックス構築デバイス1401と検索デバイス1402とを含む。
インデックス構築デバイス1401は、上記の実施例3で提供されるインデックス構築デバイスであってよい。
検索デバイス1402は、上記の実施例6で提供される検索デバイスであってよい。
実際の適用例では、検索システムは、インデックス構築デバイス1401と検索デバイス1402とを含み、インデックス構築デバイス1401は、取得されたデータをインデックスセグメントに構築して、構築されたインデックスセグメントを検索デバイス1402に送信するか、または検索デバイス1402は、インデックス構築デバイス1401からインデックスセグメントを積極的に取得して、ユーザに検索サービスを提供するように、インデックスセグメントを処理する。一般に、1個のインデックス構築デバイス1401が複数の検索デバイス1402にサービスを提供することが可能である。大規模な検索適用例では、データを複数の部分に切断して、データのそれぞれの部分が1個のインデックス構築デバイス1401および複数の検索デバイス1402に対応することが可能である。この実施例および上記の実施例のそれぞれは、データの1つの部分だけに関して例示され、大規模な検索適用例をサポートすることに関しては、それぞれの複写が異なるデータを記憶する状態で、この実施例で提供されるシステムの複数の複写を複写して、検索するときに、これらのデータを再度マージすることだけが必要とされる。インデックス構築デバイス1401は別個のデバイスであってよく、検索するためのそれぞれのデバイスは1個の検索デバイス1402だけを含み、情報は、ローカルエリアネットワークを介して、インデックス構築デバイス1401を含むデバイスと検索デバイス1402を含むデバイスとの間で送信可能である。したがって、この実施例で提供される検索システムでは、1つまたは複数の検索デバイス1402が存在してよく、その場合、検索システムの構造はやはり図15に示されるようでありうる。
この実施例で提供されるシステムは、検索サービスを提供するように、複数の一次インデックスセグメントを時間に基づいて構築して、構築された一次インデックスセグメントを大きなインデックスセグメントにマージして、一次インデックスセグメントまたは大きなインデックスセグメントを検索デバイスに送信するために、インデックス構築デバイスを使用し、これにより、検索速度を改善することができる。インデックス構築デバイスがインデックスセグメントにマージするとき、インデックスセグメントは、好ましくは、空メモリ領域に隣接するインデックスセグメントにマージされ、それによって、メモリの利用率を改善する。
上記の実施例で提供されたインデックス構築デバイスがインデックスを構築するとき、および上記の実施例で提供された検索デバイスが検索を実行するとき、機能モジュールの上記の分割は、単に例示のためのある例として挙げられ、実際の適用例では、必要に応じて、上記の機能を異なる機能モジュールによって完成するように割り振ること、すなわち、上述の機能のすべてまたは一部を完成するように、デバイスの内部構造を異なる機能モジュールに分割することが可能である点に留意されたい。さらに、上記の実施例で提供されたインデックス構築デバイスおよびインデックス構築方法の例は同じ概念に属し、上記の実施例で提供された検索デバイスならびに検索方法の例は同じ概念に属し、特定の実装プロセスは方法の例を指し、ここで繰り返されない。
本開示のこれらの実施例の上記の通し番号は、その優先順位を示すのではなく、説明のためだけに使用される。
本開示のこれらの実施例のステップのすべてまたは一部は、ハードウェアによって実施可能であるか、または関連するハードウェアに命令するためのプログラムを使用することによって完成可能である。このプログラムは、CD-ROMまたはハードディスクなど、可読記憶媒体内に記憶可能である。
前述の説明は、本開示の単なる好ましい実施例であり、本開示を限定するために使用されない。本開示の趣旨および原理から逸脱せずに行われる任意の修正、均等の置換、または改善は、本開示の範囲に包含されるべきである。
501 構築モジュール
502 第1のマージモジュール
503 送信モジュール
503a 第1の受信ユニット
503b 第1の送信ユニット
504 削除モジュール
505 バックアップモジュール
1201 取得モジュール
1201a 第2の送信ユニット
1201b 第2の受信ユニット
1202 第2のマージモジュール
1203 検索モジュール
1401 インデックス構築デバイス
1402 検索デバイス

Claims (19)

  1. それぞれのプリセット期間内で取得されたデータを一次インデックスセグメントにそれぞれ構築して、それぞれのプリセット期間が終わった後で、前記構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするステップと、
    前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、前記複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するステップと、
    検索サービスを提供するために、前記一次インデックスセグメントセット内の前記一次インデックスセグメントまたは前記大きなインデックスセグメントセット内の前記大きなインデックスセグメントを検索デバイスに送信するステップと
    を含むインデックス構築方法。
  2. 前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、前記複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージする前記ステップが、
    前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを今度は時間系列に従って複写して、前記複写された一次インデックスセグメントを前記対応する大きなインデックスセグメントにマージするステップであって、前記対応する大きなインデックスセグメントが、前記大きなインデックスセグメントセット内にあり、かつ空メモリに隣接する大きなインデックスセグメントである、マージするステップ
    を特に含む、請求項1に記載の方法。
  3. 前記構築された一次インデックスセグメントを対応する大きなインデックスセグメントにマージした後で、前記方法が、
    それぞれのプリセット期間ごとに、前記それぞれのプリセット期間の前に構築された一次インデックスセグメントを前記一次インデックスセグメントセットから削除するステップ
    をさらに含む、請求項1に記載の方法。
  4. 前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、前記複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得する前記ステップの後に、前記方法が、
    前記大きなインデックスセグメントセット内のそれぞれの大きなインデックスセグメントをバックアップするステップ
    をさらに含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記一次インデックスセグメントおよび前記大きなインデックスセグメントのそれぞれが、連続番号値および完全であるかどうかの符号を含み、
    前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、前記複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージするとき、マージされた後の前記大きなインデックスセグメントの連続番号値が、マージするときの、前記一次インデックスセグメントの連続番号値および前記大きなインデックスセグメントの連続番号値のうちの、大きい方の連続番号値であり、
    検索サービスを提供するために、前記一次インデックスセグメントセット内の前記一次インデックスセグメントまたは前記大きなインデックスセグメントセット内の前記大きなインデックスセグメントを検索デバイスに送信する前記ステップが、
    連続番号値および完全であるかどうかの符号を搬送する、前記検索デバイスから送信されたインデックスセグメントアプリケーションを受信するステップと、
    前記アプリケーション内で搬送された前記連続番号値および完全であるかどうかの前記符号に従って、前記一次インデックスセグメントセットの一次インデックスセグメントまたは前記大きなインデックスセグメントセットの大きなインデックスセグメントである対応するインデックスセグメントを前記検索デバイスに送信するステップと
    を特に含む、請求項4に記載の方法。
  6. 前記アプリケーション内で搬送された前記連続番号値および完全であるかどうかの前記符号に従って、対応するインデックスセグメントを前記検索デバイスに送信する前記ステップが、
    前記アプリケーション内で搬送された前記連続番号値がヌルである場合、バックアップされたインデックスセグメントを読み取って、前記バックアップされたインデックスセグメントを前記検索デバイスに送信するステップと、
    前記アプリケーション内で搬送された前記連続番号値が非ヌルであり、かつ前記アプリケーションが不完全であるという符号を搬送する場合、前記アプリケーション内で搬送された前記連続番号値と同じ連続番号値を有するインデックスセグメントを前記検索デバイスに送信するステップと、
    前記アプリケーション内で搬送された前記連続番号値が非ヌルであり、かつ前記アプリケーションが完全であるという符号を搬送する場合、前記アプリケーション内で搬送された前記連続番号値の次の連続番号値である連続番号値を有するインデックスセグメントを前記検索デバイスに送信するステップと
    を特に含む、請求項5に記載の方法。
  7. それぞれのプリセット期間内で取得されたデータを一次インデックスセグメントにそれぞれ構築して、それぞれのプリセット期間が終わった後で、前記構築された一次インデックスセグメントを一次インデックスセグメントセットにマージするように構成された構築モジュールと、
    前記構築モジュールによって取得された前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、前記複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得するように構成された第1のマージモジュールと、
    検索サービスを提供するために、前記構築モジュールによって取得された前記一次インデックスセグメントセット内の前記一次インデックスセグメントまたは前記第1のマージモジュールによって取得された前記大きなインデックスセグメントセット内の前記大きなインデックスセグメントを検索デバイスに送信するように構成された送信モジュールと
    を含むインデックス構築デバイス。
  8. 前記第1のマージモジュールが、マージによって前記構築モジュールによって取得された前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを今度は時間系列に従って複写して、前記複写された一次インデックスセグメントを、前記大きなインデックスセグメントセット内の大きなインデックスセグメントであり、かつ空メモリに隣接する対応する大きなインデックスセグメントにマージするように特に構成される、請求項7に記載のデバイス。
  9. 前記デバイスが、
    前記構築モジュールが前記構築された一次インデックスセグメントを前記一次インデックスセグメントセットにマージした後で、それぞれのプリセット期間ごとに、前記それぞれのプリセット期間の前に構築された一次インデックスセグメントを前記一次インデックスセグメントセットから削除するように構成された削除モジュール
    をさらに含む、請求項7に記載のデバイス。
  10. 前記デバイスが、
    前記第1のマージモジュールが、前記構築モジュールによって取得された前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、前記複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージして、大きなインデックスセグメントセットを取得した後で、前記大きなインデックスセグメントセット内のそれぞれの大きなインデックスセグメントをバックアップするように構成されたバックアップモジュール
    をさらに含む、請求項7から9のいずれか一項に記載のデバイス。
  11. 前記構築モジュールによって構築された前記一次インデックスセグメントおよびマージによって前記第1のマージモジュールによって取得された前記大きなインデックスセグメントのそれぞれが、連続番号値および完全であるかどうかの符号を含み、
    前記第1のマージモジュールが前記構築モジュールによって取得された前記一次インデックスセグメントセット内のそれぞれの一次インデックスセグメントを複写して、前記複写された一次インデックスセグメントを対応する大きなインデックスセグメントにマージするとき、マージされた後の前記大きなインデックスセグメントの連続番号値が、マージするときの前記一次インデックスセグメントの連続番号値および前記大きなインデックスセグメントの連続番号値のうちの、大きい方の連続番号値であり、
    送信モジュールが、
    連続番号値および完全であるかどうかの符号を搬送する、前記検索デバイスから送信されたインデックスセグメントアプリケーションを受信するように構成された第1の受信ユニットと、
    前記第1の受信ユニットによって受信された前記アプリケーション内で搬送された前記連続番号値および完全であるかどうかの前記符号に従って、前記一次インデックスセグメントセットの一次インデックスセグメントまたは前記大きなインデックスセグメントセットの大きなインデックスセグメントである対応するインデックスセグメントを前記検索デバイスに送信するように構成された第1の送信ユニットと
    を特に含む、請求項10に記載のデバイス。
  12. 前記第1の受信ユニットによって受信された前記アプリケーション内で搬送された前記連続番号値がヌルである場合、バックアップされたインデックスセグメントを読み取って、前記バックアップされたインデックスセグメントを前記検索デバイスに送信し、前記第1の受信ユニットによって受信された前記アプリケーション内で搬送された前記連続番号値が非ヌルであり、かつ前記アプリケーションが不完全であるという符号を搬送する場合、前記アプリケーション内で搬送された前記連続番号値と同じ連続番号値を有するインデックスセグメントを前記検索デバイスに送信し、前記第1の受信ユニットによって受信された前記アプリケーション内で搬送された前記連続番号値が非ヌルであり、かつ前記アプリケーションが完全であるという符号を搬送する場合、前記アプリケーション内で搬送された前記連続番号値の次の連続番号値である連続番号値を有するインデックスセグメントを前記検索デバイスに送信するように前記第1の送信ユニットが特に構成される、請求項11に記載のデバイス。
  13. それぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得して、前記取得された第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするステップと、
    前記第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、前記複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージして、第2のレベルのインデックスセグメントセットを取得するステップと、
    前記第1のレベルのインデックスセグメントセット内の前記第1のレベルのインデックスセグメントおよび前記第2のレベルのインデックスセグメントセット内の前記第2のレベルのインデックスセグメントに従って、検索サービスを提供するステップと
    を含む検索方法。
  14. 前記第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、前記複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージする前記ステップが、
    前記第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを今度は時間系列に従って複写して、前記複写された第1のレベルのインデックスセグメントを、前記第2のレベルのインデックスセグメントセット内にあり、かつ空メモリに隣接する第2のレベルのインデックスセグメントである対応する第2のレベルのインデックスセグメントにマージするステップ
    を特に含む、請求項13に記載の方法。
  15. 前記第1のレベルのインデックスセグメントおよび前記第2のレベルのインデックスセグメントのそれぞれが、連続番号値および完全であるかどうかの符号を含み、
    それぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得する前記ステップが、
    それぞれのプリセット期間ごとに、連続番号値および完全であるかどうかの符号を搬送するインデックスセグメントアプリケーションを前記インデックス構築デバイスに送信するステップであって、前記連続番号値が、既に存在したインデックスセグメントの連続番号値のうちの最大連続番号値であるか、またはヌルである、送信するステップと、
    前記連続番号値および完全であるかどうかの前記符号に従って前記インデックス構築デバイスによって送信された前記インデックスセグメントを受信して、前記受信されたインデックスセグメントを第1のレベルのインデックスセグメントと見なすステップと
    を特に含み、
    前記第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、前記複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージするとき、マージされた後の前記第2のレベルのインデックスセグメントの連続番号値が、マージするときの前記第1のレベルのインデックスセグメントの連続番号値および前記第2のレベルのインデックスセグメントの連続番号値のうちの、大きい方の連続番号値である、請求項13または14に記載の方法。
  16. それぞれのプリセット期間ごとに、インデックス構築デバイスから第1のレベルのインデックスセグメントを取得して、前記取得された第1のレベルのインデックスセグメントを第1のレベルのインデックスセグメントセットにマージするように構成された取得モジュールと、
    前記取得モジュールによって取得された前記第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、前記複写された第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージして、第2のレベルのインデックスセグメントセットを取得するように構成された第2のマージモジュールと、
    前記取得モジュールによって取得された前記第1のレベルのインデックスセグメントセット内の前記第1のレベルのインデックスセグメントおよび前記第2のマージモジュールによって取得された前記第2のレベルのインデックスセグメントセット内の前記第2のレベルのインデックスセグメントに従って、検索サービスを提供するように構成された検索モジュールと
    を含む検索デバイス。
  17. 前記第2のマージモジュールが、前記第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを今度は時間系列に従って複写して、前記複写された第1のレベルのインデックスセグメントを、前記第2のレベルのインデックスセグメントセット内にあり、かつ空メモリに隣接する第2のレベルのインデックスセグメントである対応する第2のレベルのインデックスセグメントにマージするように特に構成される、請求項16に記載のデバイス。
  18. 前記取得モジュールによって取得された前記第1のレベルのインデックスセグメントおよび前記第2のマージモジュールによって取得された前記第2のレベルのインデックスセグメントのそれぞれが、連続番号値および完全であるかどうかの符号を含み、
    前記取得モジュールが、
    それぞれのプリセット期間ごとに、連続番号値および完全であるかどうかの符号を搬送するインデックスセグメントアプリケーションを前記インデックス構築デバイスに送信するように構成された第2の送信ユニットと、
    前記第2の送信ユニットによって送信された前記連続番号値および完全であるかどうかの前記符号に従って前記インデックス構築デバイスによって送信された前記インデックスセグメントを受信して、前記受信されたインデックスセグメントを第1のレベルのインデックスセグメントと見なして、前記第1のレベルのインデックスセグメントを対応する第2のレベルのインデックスセグメントにマージするように構成された第2の受信ユニットと
    を特に含み、
    前記第2のマージモジュールが、前記取得モジュールによって取得された前記第1のレベルのインデックスセグメントセット内のそれぞれの第1のレベルのインデックスセグメントを複写して、前記複写された第1のレベルのインデックスセグメントを前記対応する第2のレベルのインデックスセグメントにマージするとき、マージされた後の前記第2のレベルのインデックスセグメントの連続番号値が、マージするときの前記第1のレベルのインデックスセグメントの連続番号値および前記第2のレベルのインデックスセグメントの連続番号値のうちの、大きい方の連続番号値である、請求項16または17に記載のデバイス。
  19. 1個のインデックス構築デバイスおよび2個以上の検索デバイスを含む検索システムであって、
    前記インデックス構築デバイスが、請求項7から12のいずれか一項に記載のインデックス構築デバイスであり、
    前記検索デバイスが、請求項16から18のいずれか一項に記載の検索デバイスである、検索システム。
JP2014520505A 2011-07-21 2012-06-12 インデックス構築方法、検索方法、検索デバイス、および検索システム Active JP5823037B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110204879.8 2011-07-21
CN201110204879.8A CN102890682B (zh) 2011-07-21 2011-07-21 构建索引的方法、检索方法、装置及系统
PCT/CN2012/076767 WO2013010414A1 (zh) 2011-07-21 2012-06-12 构建索引的方法、检索方法、装置及系统

Publications (2)

Publication Number Publication Date
JP2014521176A true JP2014521176A (ja) 2014-08-25
JP5823037B2 JP5823037B2 (ja) 2015-11-25

Family

ID=47534189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014520505A Active JP5823037B2 (ja) 2011-07-21 2012-06-12 インデックス構築方法、検索方法、検索デバイス、および検索システム

Country Status (6)

Country Link
US (1) US8914379B2 (ja)
JP (1) JP5823037B2 (ja)
CN (1) CN102890682B (ja)
AP (1) AP2014007431A0 (ja)
WO (1) WO2013010414A1 (ja)
ZA (1) ZA201400873B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101744017B1 (ko) * 2016-03-11 2017-06-07 주식회사 지앤클라우드 실시간 검색을 위한 데이터 인덱싱 방법 및 장치
JP7410181B2 (ja) 2019-05-23 2024-01-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイブリッド・インデックス作成方法、システム、プログラム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207907B (zh) * 2013-03-28 2016-06-29 新浪网技术(中国)有限公司 一种索引文件合并方法及装置
CN103399915A (zh) * 2013-07-31 2013-11-20 北京华易互动科技有限公司 一种搜索引擎索引文件的优化读取方法
CN106408320A (zh) * 2015-07-31 2017-02-15 北京奇虎科技有限公司 广告索引构建方法和装置、广告检索方法和系统
CN106445953A (zh) * 2015-08-07 2017-02-22 北京奇虎科技有限公司 广告创意信息检索方法和系统
US10303887B2 (en) 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US10937083B2 (en) 2017-07-03 2021-03-02 Medici Ventures, Inc. Decentralized trading system for fair ordering and matching of trades received at multiple network nodes and matched by multiple network nodes within decentralized trading system
CN107609190A (zh) * 2017-10-11 2018-01-19 南京南瑞继保电气有限公司 一种海量电力设备快速检索服务的实现方法
US11194804B2 (en) 2017-12-05 2021-12-07 Walmart Apollo, Llc System and method for an index search engine
CN108418746B (zh) * 2018-02-13 2020-06-12 论客科技(广州)有限公司 一种邮件同步方法、装置与计算机可读存储介质
CN109753447A (zh) * 2019-01-14 2019-05-14 北京星际荣耀空间科技有限公司 一种运载火箭遥测数据实时缓存系统及方法
US11308084B2 (en) 2019-03-13 2022-04-19 International Business Machines Corporation Optimized search service
CN111814003B (zh) * 2019-04-12 2024-04-23 伊姆西Ip控股有限责任公司 用于建立元数据索引的方法、电子设备和计算机程序产品
CN111782659B (zh) * 2020-07-10 2023-10-17 东北大学 数据库索引创建方法、装置、计算机设备和存储介质
CN117688013B (zh) * 2024-02-01 2024-04-30 北方健康医疗大数据科技有限公司 一种基于缓存索引的主索引生成方法、装置、设备及介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852822A (en) * 1996-12-09 1998-12-22 Oracle Corporation Index-only tables with nested group keys
US6631373B1 (en) * 1999-03-02 2003-10-07 Canon Kabushiki Kaisha Segmented document indexing and search
US6675205B2 (en) * 1999-10-14 2004-01-06 Arcessa, Inc. Peer-to-peer automated anonymous asynchronous file sharing
US6516337B1 (en) * 1999-10-14 2003-02-04 Arcessa, Inc. Sending to a central indexing site meta data or signatures from objects on a computer network
US7370035B2 (en) * 2002-09-03 2008-05-06 Idealab Methods and systems for search indexing
CN100458779C (zh) * 2005-11-29 2009-02-04 国际商业机器公司 扩展索引的方法
CN100495400C (zh) * 2006-09-01 2009-06-03 北大方正集团有限公司 一种全文检索系统的索引在线更新方法
US20080071732A1 (en) * 2006-09-18 2008-03-20 Konstantin Koll Master/slave index in computer systems
JP4148529B2 (ja) * 2006-12-28 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースにおける索引の整合性をチェックするためのシステム、方法およびプログラム
US20090193406A1 (en) * 2008-01-29 2009-07-30 James Charles Williams Bulk Search Index Updates
CN101295323B (zh) * 2008-06-30 2011-11-02 腾讯科技(深圳)有限公司 一种用于索引更新的处理方法和系统
CN101414277B (zh) * 2008-11-06 2010-06-09 清华大学 一种基于虚拟机的按需增量恢复容灾系统及方法
EP2380094A1 (en) * 2009-01-16 2011-10-26 Sanjiv Agarwal Dynamic indexing while authoring
CN101989301B (zh) 2010-10-22 2012-05-23 复旦大学 一种支持多数据源的索引维护方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101744017B1 (ko) * 2016-03-11 2017-06-07 주식회사 지앤클라우드 실시간 검색을 위한 데이터 인덱싱 방법 및 장치
JP7410181B2 (ja) 2019-05-23 2024-01-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ハイブリッド・インデックス作成方法、システム、プログラム

Also Published As

Publication number Publication date
CN102890682A (zh) 2013-01-23
US20140156671A1 (en) 2014-06-05
WO2013010414A1 (zh) 2013-01-24
US8914379B2 (en) 2014-12-16
ZA201400873B (en) 2015-10-28
CN102890682B (zh) 2017-08-01
AP2014007431A0 (en) 2014-02-28
JP5823037B2 (ja) 2015-11-25

Similar Documents

Publication Publication Date Title
JP5823037B2 (ja) インデックス構築方法、検索方法、検索デバイス、および検索システム
CN106933503B (zh) 在基于哈希的存储系统中从异步到同步复制的一致转变
CN106484877B (zh) 一种基于hdfs的文件检索系统
US10452271B2 (en) Reconstructing in-memory indices in a distributed data storage system
CN105447075B (zh) 用于动态划分的计算机实现方法
US10248356B2 (en) Using scratch extents to facilitate copying operations in an append-only storage system
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
EP2863310B1 (en) Data processing method and apparatus, and shared storage device
US9772783B2 (en) Constructing an index to facilitate accessing a closed extent in an append-only storage system
US10310904B2 (en) Distributed technique for allocating long-lived jobs among worker processes
US9405643B2 (en) Multi-level lookup architecture to facilitate failure recovery
CN113168404B (zh) 用于在分布式数据库系统中复制数据的系统和方法
JP2015512604A (ja) 暗号ハッシュ・データベース
JP2008513891A (ja) データを検索し記憶するシステム及び方法
US20180165345A1 (en) Data processing device, computer-readable recording medium having recorded therein data processing program and data processing method
US9720607B2 (en) Append-only storage system supporting open and closed extents
CN106844753B (zh) 一种构建网元树组件的方法以及装置
US11461140B2 (en) Systems and methods for controller-worker architecture for searching a storage system
CN104462389A (zh) 基于分级存储的分布式文件系统实现方法
US11782878B2 (en) Systems and methods for searching deduplicated data
JP2020506444A (ja) 期限切れバックアップ処理方法及びバックアップサーバ
US20100058023A1 (en) Efficiently managing modular data storage systems
CN111371583B (zh) 服务器的扩容方法及装置、服务器、存储介质
KR101035857B1 (ko) 데이터 관리 방법 및 그 시스템
OA17269A (en) Index constructing method, search method, device and system.

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150105

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: 20150907

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151006

R150 Certificate of patent or registration of utility model

Ref document number: 5823037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250