(58)【調査した分野】(Int.Cl.,DB名)
受信した修正要求に応答して、第2ユーザ識別子に対応する第2インデックスを修正することを更に含み、前記修正要求が前記第2ユーザ識別子を含むことを特徴とする請求項1に記載のデータの検索方法。
前記検索モジュールは、前記第1インデックスを内部メモリに記憶するように配置される第1記憶サブモジュールと、内部メモリにおいて前記第1インデックスに基づいて検索を行うように配置される検索サブモジュールと、を備えることを特徴とする請求項6に記載のデータの検索装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、データの検索方法、装置及び端末を提供しており、関連技術ではサーバがユーザデータを検索するとき、検索効率が低く、検索速度が遅いという問題を解決する。
【課題を解決するための手段】
【0006】
本発明の実施例に係る第1態様によれば、
非リレーショナルデータベースから第1ユーザ識別子に対応する第1シリアライズデータを読み取ることと、
前記第1シリアライズデータをデシリアライズ処理し、第1インデックスを得ることと、
前記第1インデックスに基づいて検索を行うことと、を含むデータの検索方法を提供している。
【0007】
好ましくは、非リレーショナルデータベースから第1ユーザ識別子に対応する第1シリアライズデータを読み取る前、前記方法は、
第1ユーザデータ及び対応する第1ユーザ識別子を取得することと、
前記第1ユーザデータに対して第1インデックスを作成することと、
前記第1インデックスをシリアライズ処理し、第1バイナリ文字列を得ることと、
前記第1バイナリ文字列と前記第1ユーザ識別子を関連付けて前記非リレーショナルデータベースに記憶することと、を更に含み、
前記第1シリアライズデータが前記第1バイナリ文字列を含む。
【0008】
好ましくは、前記第1インデックスに基づいて検索を行うことは、
前記第1インデックスを内部メモリに記憶することと、
内部メモリにおいて前記第1インデックスに基づいて検索を行うことと、を含む。
【0009】
好ましくは、前記方法は、
受信した修正要求に応答して、第2ユーザ識別子に対応する第2インデックスを修正することを更に含み、前記修正要求が前記第2ユーザ識別子を含む。
【0010】
好ましくは、前記受信した修正要求に応答して、第2ユーザ識別子に対応する第2インデックスを修正することは、
非リレーショナルデータベースから前記第2ユーザ識別子に対応する第2シリアライズデータを読み取ることと、
前記第2シリアライズデータをデシリアライズ処理し、第2インデックスを得ることと、
前記修正要求に基づいて前記第2インデックスを修正することと、
修正後の第2インデックスをシリアライズ処理し、修正後の第2シリアライズデータを得ることと、
前記非リレーショナルデータベースに記憶している第2シリアライズデータを修正後の第2シリアライズデータに更新することと、を含む。
【0011】
好ましくは、前記修正要求に基づいて前記第2インデックスを修正することは、
前記第2インデックスを内部メモリに記憶することと、
内部メモリにおいて前記第2インデックスを修正することと、を含む。
【0012】
本発明の実施例に係る第2態様によれば、非リレーショナルデータベースから第1ユーザ識別子に対応する第1シリアライズデータを読み取るように配置される第1読み取りモジュールと、
前記第1シリアライズデータをデシリアライズ処理し、第1インデックスを得るように配置される第1処理モジュールと、
前記第1インデックスに基づいて検索を行うように配置される検索モジュールと、を備えるデータの検索装置を提供している。
【0013】
好ましくは、前記装置は、
第1ユーザデータ及び対応する第1ユーザ識別子を取得するように配置される取得モジュールと、
前記第1ユーザデータに対して第1インデックスを作成するように配置されるインデックス作成モジュールと、
前記第1インデックスをシリアライズ処理し、第1バイナリ文字列を得るように配置される第2処理モジュールと、
前記第1バイナリ文字列と前記第1ユーザ識別子を関連付けて前記非リレーショナルデータベースに記憶するように配置される記憶モジュールと、を更に備え、
前記第1シリアライズデータが前記第1バイナリ文字列を含む。
【0014】
好ましくは、前記検索モジュールは、前記第1インデックスを内部メモリに記憶するように配置される第1記憶サブモジュールと、内部メモリにおいて前記第1インデックスに基づいて検索を行うように配置される検索サブモジュールと、を備える。
【0015】
好ましくは、前記装置は、受信した修正要求に応答して、第2ユーザ識別子に対応する第2インデックスを修正するように配置される修正モジュールを更に備え、
前記修正要求が前記第2ユーザ識別子を含む。
【0016】
好ましくは、前記修正モジュールは、
非リレーショナルデータベースから前記第2ユーザ識別子に対応する第2シリアライズデータを読み取るように配置される読み取りサブモジュールと、
前記第2シリアライズデータをデシリアライズ処理し、第2インデックスを得るように配置される第1処理サブモジュールと、
前記修正要求に基づいて前記第2インデックスを修正するように配置される修正サブモジュールと、
修正後の第2インデックスをシリアライズ処理し、修正後の第2シリアライズデータを得るように配置される第2処理サブモジュールと、
前記非リレーショナルデータベースに記憶している第2シリアライズデータを修正後の第2シリアライズデータに更新するように配置される更新サブモジュールと、を備える。
【0017】
好ましくは、前記修正サブモジュールは、
前記第2インデックスを内部メモリに記憶するように配置される第2記憶サブモジュールと、
内部メモリにおいて前記第2インデックスを修正するように配置される修正サブモジュールと、備える。
【0018】
本発明の実施例に係る第3態様によれば、
非リレーショナルデータベースから第1ユーザ識別子に対応する第1シリアライズデータを読み取り、
前記第1シリアライズデータをデシリアライズ処理し、第1インデックスを得て、
前記第1インデックスに基づいて検索を行うように配置されるプロセッサと、
プロセッサにより実行可能なコマンドを記憶するためのメモリと、を備えることを特徴とするサーバを提供している。
【発明の効果】
【0019】
本発明の実施例に係る技術案は下記の有益な効果を含むことができる。
【0020】
本発明では、サーバは、NoSQLデータベースからユーザ識別子に対応するシリアライズデータを読み取り、シリアライズデータをインデックスにデシリアライズし、インデックスに基づいて検索を行うことができる。検索の範囲はすべてのユーザではなく、ユーザ識別子に対応するデータに対するものであるため、検索範囲を大幅に縮小させ、それにより検索速度及び検索性能を向上させ、ユーザの体験を最適化させる。
【0021】
本発明では、サーバは、各ユーザデータに対してインデックスをそれぞれ作成し、且つそれぞれバイナリ文字列にシリアライズし、その後、ユーザの相違に基づいて、バイナリ文字列とユーザ識別子を対応させてNoSQLデータベースに記憶することができ、NoSQLデータベース自身がよい適時性及び一致性を持つため、検索の適時性及び一致性を確保し、更に、ユーザデータがNoSQLデータベースの異なる行に記憶されているため、ユーザ識別子に対応するデータのみに対して検索を行い、ユーザデータのプライバシーを保護し、物理的にセキュリティを確保する。次に、NoSQLデータベースが自動的に複数の下層のコピーをバックアップするため、更に検索のセキュリティを確保し、且つ、純粋な検索の手段を用いることと比べて、NoSQLデータベース自身の記憶特性により、ユーザの増加に従って、増加する必要があるサーバ数を大幅に低減させる。
【0022】
本発明では、サーバは、第1インデックスを内部メモリに記憶し、内部メモリにおいて第1インデックスに基づいて検索を行うことができる。内部メモリにおいて検索を行うことは、データ量が膨大な磁気ディスクにおいて検索を行うことに比べて、読み取り速度が大幅に向上する。
【0023】
本発明では、サーバは、更に、インデックスを修正し、ユーザ識別子に対応するバイナリ文字列をインデックスにデシリアライズし、インデックスを修正し、且つ修正後のインデックスをバイナリ文字列にシリアライズし、且つNoSQLデータベースに記憶しているバイナリ文字列を更新することができる。それにより、ユーザデータを増加、削除又は修正する必要がある場合、NoSQLデータベースに記憶されているデータを即時に更新し、検索の適時性を確保することができる。
【0024】
本発明では、検索の速度及び性能を向上させるように、ユーザデータの修正が内部メモリにおいて行われてもよい。
【0025】
以上の一般的な説明及び後述する詳細説明は例示的で解釈的なものに過ぎず、本発明を制限するためのものではないと理解できる。
【発明を実施するための形態】
【0028】
ここで例示的な実施例について詳しく説明し、その実施例は図面に示す通りである。下記の説明が図面に関わるとき、別途に表示されない限り、異なる図面における同じ数字は同一又は類似する要素を表示する。以下の例示的な実施例に説明される実施形態は本発明と一致する全ての実施形態を表すわけではない。逆に、それらは特許請求の範囲に詳細に記載された本発明の一部の態様と一致する装置と方法の例に過ぎない。
【0029】
本発明に使用される用語は、特定の実施例を説明するためのものに過ぎず、本発明を制限するためのものではない。本発明および特許請求の範囲で使用される単数形態の「1種」、「前記」および「当該」は、文脈に他の意味を明確に指示しない限り、複数形態を含むことを意味する。さらに、本明細書で使用される用語「および/または」は、1つ又は複数の関連する記載項目のいずれかまたはすべての可能な組み合わせを含む。
【0030】
本発明において、用語である第1、第2、第3などを用いて種々の情報を説明する可能性があるが、これらの情報が上記の用語に限られないと理解すべきである。これらの用語は、同一種類の情報のそれぞれを区別するためのものにすぎない。例えば、本発明の範囲から逸脱しない場合、第1情報が第2情報と呼ばれてもよく、同様に、第2情報は、第1情報と呼ばれてもよい。コンテキストに依存し、例えば、ここで使用される「もし」は、「・・・・・・ときに」または「・・・・・・場合」または「・・・に応じて・・・確定する」と解釈されることができる。
【0031】
図1に示すように、
図1は例示的な実施例に係るデータの検索方法を示すフローチャートであり、該方法は、サーバに適用され、以下のステップを含む。
【0032】
ステップ101では、非リレーショナルデータベースから第1ユーザ識別子と対応する第1シリアライズデータを読み取る。
【0033】
本発明におけるサーバは、例えば、シャオミサーバ等のクラウドサーバであってもよい。本発明における端末は任意のインターネットアクセス機能を持つインテリジェント端末であってもよく、例えば、携帯電話、タブレットPC、パーソナルデジタルアシスタント(Personal Digital Assistant、PDA)等であってもよい。そのうち、端末は無線LANを介してルータにアクセスし、且つルータを介してパブリックネットワークでのサーバへアクセスすることができる。
【0034】
本発明に係る非リレーショナルデータベースは、非リレーショナルの構造化問い合わせ言語(Non−relational Structured Query Language、NoSQL)データベースである。
【0035】
ステップ102では、該第1シリアライズデータをデシリアライズ処理し、第1インデックスを得る。
【0036】
シリアライズ(Serialization)は直列化とも称され、NET実行時環境におけるユーザ定義型の流動化をサポートするためのメカニズムである。シリアライズは1つのオブジェクトをファイル又はデータベースフィールドに保存するものであり、デシリアライズ(Deserialization)は適切な時間でこのファイルを元のオブジェクトに変換して使用するものである。
【0037】
ステップ103では、該第1インデックスに基づいて検索を行う。
【0038】
上記実施例から分かるように、サーバは、NoSQLデータベースからユーザ識別子と対応するシリアライズデータを読み取り、シリアライズデータをインデックスにデシリアライズし、インデックスに基づいて検索を行うことができる。検索の範囲はすべてのユーザではなく、ユーザ識別子と対応するデータに対するものであるため、検索範囲を大幅に縮小させ、それにより検索速度及び検索性能を向上させ、ユーザの体験を最適化させる。
【0039】
図2に示すように、
図2は例示的な実施例に係るデータの検索方法を示すフローチャートであり、該方法は、サーバに適用され、以下のステップを含む。
【0040】
本発明の実施例では、サーバは、予め各ユーザの個人データをバイナリ文字列に処理してNoSQLデータベースに記憶することができる。
【0041】
ステップ201では、第1ユーザデータ及び対応する第1ユーザ識別子を取得する。
【0042】
本発明のステップでは、サーバが第1ユーザによりアップロードされた第1ユーザデータを受信し、又はユーザの許可を得た後、所定期間おきに端末のユーザデータをアクティブに取得することであってもよい。該第1ユーザデータは、第1ユーザのショートメッセージ、コンタクト、メール、チャットメッセージ及びピクチャ等の個人データを含んでもよい。サーバは、第1ユーザデータを受信したとき、第1ユーザ識別子を更に受信し、例えば、シャオミサーバが受信した第1ユーザ識別子は第1ユーザのシャオミアカウント情報であり、また、ユーザ識別子はユーザの携帯電話番号、端末のメディアアクセス制御(Media Access Control、MAC)アドレス等であってもよい。
【0043】
ステップ202では、第1ユーザデータに対して第1インデックスを作成する。
【0044】
本発明のステップでは、サーバは、該第1ユーザデータを初期化し、サーチエンジン、例えばluceneにより、該第1ユーザデータに対して第1インデックスを作成する。つまり、サーバは異なるユーザデータに対してそれぞれインデックスを作成する。
【0045】
該インデックスには複数のファイル、例えば、インバーテッドリスト、用語集等を含んでもよい。
【0046】
ステップ203では、作成された第1インデックスをシリアライズ処理し、第1バイナリ文字列を得る。
【0047】
本発明のステップでは、サーバは、インデックスの基礎となるフォーマット、例えば1つの名称が1つのコンテンツに対応するというフォーマットに基づいて、第1インデックス、つまりインバーテッドリスト、用語集等の各ファイルを第1バイナリ文字列、例えばxml文字列、json文字列、バイナリストリーム等にシリアライズする。通常、該バイナリ文字列が小さく、2M以下であり、例えば数万通のショートメッセージ又は数万枚のピクチャを含むインデックスが挙げられ、このようにして、占有する磁気ディスク記憶空間が小さくなる。そのうち、シリアライズ処理は、関連技術におけるシリアライズ方法、例えばxmlシリアライズ(XmlSerialization)、バイナリシリアライズ(Binary Formatter)、Soapシリアライズ(Soap Formatter)等を採用してもよい。
【0048】
ステップ204では、該第1バイナリ文字列と第1ユーザ識別子を関連付けてNoSQLデータベースに記憶する。
【0049】
本発明のステップでは、サーバは、各ユーザのユーザ識別子とバイナリ文字列を対応させてNoSQLデータベース、例えば、Casssandra、Lucene/Solr、BigTable/ Accumulo/ Hypertable等のデータベースに記憶する。
【0050】
つまり、本発明のステップでは、サーバは異なるユーザのバイナリ文字列をNoSQLの異なる行(Row)に記憶し、各ユーザのバイナリ文字列が物理的に分離しているため、ユーザのプライバシーの保護に有利であり、セキュリティが高くなる。その後、サーバがユーザの検索要求を受信したとき、上記NoSQLデータベースに記憶しているインデックスに基づいて検索を行う。
【0051】
ステップ205では、NoSQLデータベースから第1ユーザ識別子と対応する第1バイナリ文字列を読み取る。
【0052】
本発明の実施例では、サーバは、第1ユーザにより入力された、検索条件を有する検索要求を受信した場合、検索要求から該第1ユーザの第1ユーザ識別子を抽出し、且つ第1ユーザ識別子に基づいてNoSQLデータベースから対応する第1シリアライズデータを検索して読み取り、該シリアライズデータがバイナリ文字列であってもよい。
【0053】
ステップ206では、該第1バイナリ文字列をデシリアライズ処理し、第1インデックスを得る。
【0054】
本発明のステップでは、サーバに対して、ただデシリアライズされたファイルだけは、読み出し可能なファイルであり、後続の検索ステップを実行できるため、サーバが第1バイナリ文字列をデシリアライズして得た第1インデックスは、該第1ユーザの個人データの複数のファイルと対応する。
【0055】
そのうち、NoSQLデータベースがサーバの磁気ディスクに位置するため、サーバは、第1バイナリ文字列を磁気ディスクから内部メモリに読み取って記憶し、その後、内部メモリにおいて該第1バイナリ文字列をデシリアライズ処理して、第1インデックスを得ることができる。
【0056】
ステップ207では、該第1インデックスに基づいて検索を行う。
【0057】
本発明のステップでは、内部メモリにおいて第1インデックスを得た後、検索条件及び第1インデックスに基づいて様々な検索操作を行うことができる。
【0058】
内部メモリの記憶スペースは大きく、単一のユーザのインデックスが占有するスペーサは小さいため、該ユーザのインデックスを内部メモリに記憶し、内部メモリにおいて検索を行う。このよう方式は、データ量が膨大な磁気ディスクにおいて検索を行うことに比べて、読み取り速度が大幅に向上する。且つ、内部メモリに対して読み取り操作のみを行うため、検索が終了した後、直ちに占有する内部メモリスペースを解放する。
【0059】
関連技術では、サーバはすべてのユーザのユーザデータに対してインデックスを生成し、且つすべてのインデックスをサーバディスクに記憶し、データの量が非常に大きく、数十Gに達し、ディスクを開く及びディスクを読み取る速度が非常に遅いため、検索速度が遅すぎ、検索性能が悪く、ユーザのニーズを満たすことができない。本発明の実施例では、各ユーザのユーザデータに対してインデックスをそれぞれ生成し、且つ各インデックスに対応するバイナリ文字列とユーザ識別子を対応させて記憶し、このようにして、あるユーザのデータを検索する場合、ユーザ識別子に基づいて対応するインデックスに対して検索を行わればよく、それにより、検索範囲を大幅に縮小させ、検索速度を向上させる。
【0060】
本発明の実施例では、ユーザが新しいユーザデータをアップロードし、又はユーザデータを修正、削除したとき、サーバはインデックスを修正する必要があり、この場合、本発明の実施例は、下記のステップを更に含んでもよい。
【0061】
ステップ208では、受信したユーザの修正要求に応答して、第2ユーザ識別子に対応する第2インデックスを修正する。
【0062】
本発明のステップでは、サーバは、修正要求における第2ユーザ識別子を取得して、第2ユーザ識別子に基づいて対応する第2バイナリ文字列を読み取り、その後、第2バイナリ文字列を磁気ディスクから内部メモリに読み取り、デシリアライズ処理を行い、該第2ユーザ識別子に対応する第2インデックスを得て、その後、内部メモリにおいて修正要求に基づいて第2インデックスを修正し、最後修正後の第2インデックスをバイナリ文字列にシリアライズして、NoSQLデータベースに記憶し、つまり、NoSQLデータベースに記憶している第2バイナリ文字列を修正後の第2インデックスと対応するバイナリ文字列に更新する。
【0063】
本発明の上記実施例では、それぞれのユーザのインデックスが独立したものであるため、検索範囲は狙いがはっきりしており、検索性能を確保することができる。従って、1台のサーバがどのぐらいのユーザのデータを記憶できるかは、NoSQLの記憶サイズに依存する。例えば、各ユーザのインデックスが2Mであり、サーバの磁気ディスクスペースが100Gであると、1台のサーバは約100G/2M = 5万のユーザをサービスすることができる。関連技術における例えばluceneに基づく純粋な検索の検索方法を採用すれば、5万のユーザのインデックスを100Gの磁気ディスクスペースに保存することができるが、検索範囲はすべてのユーザのデータであるため、検索性能が悪く、検索遅延が大きく、検索性能を確保するために、サーバが記憶するユーザのデータ量を削減する必要があり、従って、5万のユーザのデータを記憶することができず、実際には、1万のユーザのデータのみを記憶できる可能性がある。本発明は、検索の範囲がすべてのユーザに対するものではないため、検索性能が向上し、同一のサーバに対して、本発明の解決手段はより多くのユーザのデータを記憶することができるため、本発明の解決手段に使用する合計サーバの数も関連技術において使用するサーバの数より少ない。
【0064】
図3に示すように、
図3は本発明の例示的な実施例に係るデータの検索アプリケーションシナリオを示す模式図である。
図3に示すシナリオでは、サーバ及びスマートフォンを含む。
【0065】
サーバは、スマートフォンからのユーザの検索要求を受信し、該検索要求には検索条件及び該ユーザのユーザ識別子が備えられ、サーバは、該ユーザ識別子に基づいて、NoSQLデータベースから該ユーザ識別子に対応するバイナリ文字列を読み取り、その後、サーバは、読み取られたバイナリ文字列をデシリアライズ処理し、該ユーザ識別子に対応するインデックスを得て、サーバは該インデックスを内部メモリに読み取り、その後、該インデックス及び検索条件に基づいて検索を行う。
【0066】
図3に示すアプリケーションシナリオでは、データの検索を実現する過程は、
図1及び
図2に対する記述を参照し、ここでは繰り返して説明しない。
【0067】
上記データの検索方法の実施例に対応して、本発明は、データの検索装置及びそれが適用されるサーバの実施例を更に提供する。
【0068】
図4に示すように、
図4は本発明の例示的な実施例に係るデータの検索装置を示すブロック図であり、該装置は、第1読み取りモジュール410、第1処理モジュール420及び検索モジュール430を備えてもよい。
【0069】
そのうち、第1読み取りモジュール410は、NoSQLデータベースから第1ユーザ識別子に対応する第1シリアライズデータを読み取るように配置され、
第1処理モジュール420は、第1読み取りモジュール410により読み取られた第1シリアライズデータをデシリアライズ処理し、第1インデックスを得るように配置され、
検索モジュール430は、第1処理モジュール420により処理された第1インデックスに基づいて検索を行うように配置される。
【0070】
上記実施例では、サーバは、NoSQLデータベースからユーザ識別子に対応するシリアライズデータを読み取り、シリアライズデータをインデックスにデシリアライズし、インデックスに基づいて検索を行うことができる。検索の範囲はすべてのユーザではなく、ユーザ識別子に対応するデータに対するものであるため、検索範囲を大幅に縮小させ、それにより検索速度及び検索性能を向上させ、ユーザの体験を最適化させる。
【0071】
図5に示すように、
図5は本発明の例示的な実施例に係る別のデータの検索装置を示すブロック図であり、該実施例は、
図4に示す実施例に基づくものであり、該装置は、取得モジュール440、インデックス作成モジュール450、第2処理モジュール460及び記憶モジュール470を更に備えてもよい。
【0072】
そのうち、取得モジュール440は、第1ユーザデータ及び対応する第1ユーザ識別子を取得するように配置され、
インデックス作成モジュール450は、取得モジュール440により取得された第1ユーザデータに対してインデックスを作成するように配置され、
第2処理モジュール460は、インデックス作成モジュール450により作成されたインデックスをシリアライズ処理し、バイナリ文字列を得るように配置され、
記憶モジュール470は、第2処理モジュール460により処理されたバイナリ文字列と第1ユーザ識別子を関連付けてNoSQLデータベースに記憶し、該第1シリアライズデータがバイナリ文字列を含むように配置される。
【0073】
上記実施例では、サーバは、各ユーザデータに対してインデックスをそれぞれ作成し、且つ、それぞれバイナリ文字列にシリアライズし、その後、ユーザの相違に基づいて、バイナリ文字列とユーザ識別子を対応させてNoSQLデータベースに記憶し、NoSQLデータベースそのものがよい適時性及び一致性を持つため、検索の適時性及び一致性を確保し、更に、ユーザデータがNoSQLデータベースの異なる行に記憶されているため、ユーザ識別子に対応するデータのみに対して検索を行い、ユーザデータのプライバシーを保護し、物理的にセキュリティを確保する。次に、NoSQLデータベースが自動的に複数の下層のコピーをバックアップするため、更に検索のセキュリティを確保し、且つ、純粋な検索手段を用いることと比べて、NoSQLデータベース自身の記憶特性により、ユーザの増加に従って、増加する必要があるサーバ数を大幅に低減させる。
【0074】
図6に示すように、
図6は本発明の例示的な実施例に係る別のデータの検索装置を示すブロック図であり、該実施例は、
図4に示す実施例に基づくものであり、該検索モジュール430は、第1記憶サブモジュール431及び検索サブモジュール432を更に備えてもよい。
【0075】
そのうち、第1記憶サブモジュール431は、第1インデックスを内部メモリに記憶するように配置され、
検索サブモジュール432は、内部メモリにおいて第1記憶サブモジュール431により記憶された第1インデックスに基づいて検索を行うように配置される。
【0076】
上記実施例では、第1インデックスを内部メモリに記憶し、内部メモリにおいて第1インデックスに基づいて検索を行うことができる。内部メモリにおいて検索を行うことは、データ量が膨大な磁気ディスクにおいて検索を行うことに比べて、読み取り速度が大幅に向上する。
【0077】
図7に示すように、
図7は本発明の例示的な実施例に係る別のデータの検索装置を示すブロック図であり、該実施例は
図4に示す実施例に基づくものであり、該装置は、修正モジュール480を更に備えてもよい。
【0078】
そのうち、修正モジュール480は、受信した修正要求に応答して、第2ユーザ識別子に対応する第2インデックスを修正し、該修正要求が第2ユーザ識別子を含むように配置される。
【0079】
図8に示すように、
図8は本発明の例示的な実施例に係る別のデータの検索装置を示すブロック図あり、該実施例は
図7の実施例に示す実施例に基づくものであり、該修正モジュール480は、読み取りサブモジュール481、第1処理サブモジュール482、修正サブモジュール483、第2処理サブモジュール484及び更新サブモジュール485を備えてもよい。
【0080】
そのうち、読み取りサブモジュール481は、NoSQLデータベースから第2ユーザ識別子に対応する第2シリアライズデータを読み取るように配置され、
第1処理サブモジュール482は、読み取りサブモジュール481により読み取られた第2シリアライズデータをデシリアライズ処理し、第2インデックスを得るように配置され、
修正サブモジュール483は、修正要求に基づいて第1処理サブモジュール482により処理された第2インデックスを修正するように配置され、
第2処理サブモジュール484は、修正サブモジュール483により修正された第2インデックスをシリアライズ処理し、修正した第2シリアライズデータを得るように配置され、
更新サブモジュール485は、NoSQLデータベースに記憶している第2シリアライズデータを、修正後の第2シリアライズデータに更新するように配置される。
【0081】
上記実施例では、サーバは、更に、インデックスを修正し、ユーザ識別子に対応するバイナリ文字列をインデックスにデシリアライズし、インデックスを修正し、且つ修正後のインデックスをバイナリ文字列にシリアライズし、NoSQLデータベースに記憶しているバイナリ文字列を更新することができる。それにより、ユーザデータを増加、削除又は修正する必要がある場合、NoSQLデータベースにおいて記憶されているデータを即時に更新し、検索の適時性を確保することができる。
【0082】
図9に示すように、
図9は本発明の例示的な実施例に係る別のデータの検索装置を示すブロック図であり、該実施例は
図8に示す実施例に基づくものであり、修正サブモジュール483は、第2記憶サブモジュール486及び修正サブモジュール487を更に備えてもよい。
【0083】
そのうち、第2記憶サブモジュール486は、第2インデックスを内部メモリに記憶するように配置され、
修正サブモジュール487は、内部メモリにおいて第2記憶サブモジュール486により記憶された第2インデックスを修正するように配置される。
【0084】
上記実施例では、検索の速度及び性能を向上させるように、ユーザデータの修正が内部メモリにおいて行われてもよい。
【0085】
上記
図4〜
図9に示したデータの検索装置の実施例はサーバに適用される。
【0086】
上記装置におけるそれぞれのユニットの機能及び作用の実現過程は、具体的には上記方法における対応するステップの実現過程を参照し、ここでは繰り返して説明しない。
【0087】
装置の実施例は基本的に方法の実施例に対応するため、関連部分が方法の実施例の部分の説明を参照すればよい。以上説明した装置の実施例は例示的なものに過ぎず、そのうち、分離部材として説明されたユニットが物理的に分離するものであってもよく、または物理的に分離するものではなくてもよく、ユニットとして表示された部材が物理ユニットであってもよく、物理ユニットではなくてもよく、すなわち1つの位置に位置してもよく、または複数のネットワークユニットに分布してもよい。実際の必要に応じてそのうちの一部または全部のモジュールを選択して本発明の解決手段の目的を達成することができる。当業者は、創造的な労力を要さない場合、理解して実施することができる。
【0088】
それに対応して、本発明はサーバを更に提供し、サーバは、プロセッサと、プロセッサにより実行可能なコマンドを記憶するためのメモリと、を備え、上記プロセッサは、非リレーショナルデータベースから第1ユーザ識別子に対応する第1シリアライズデータを読み取り、第1シリアライズデータをデシリアライズ処理し、第1インデックスを得て、第1インデックスに基づいて検索を行うように配置される。
【0089】
図10に示すように、
図10は例示的な実施例に係るデータの検索装置1000を示す構造模式図である。例えば、装置1000はサーバとして提供されてもよい。
図10を参照し、装置1000は、処理部材1022を備え、1つ又は複数のプロセッサ及びメモリ1032を代表とするメモリリソースを更に備え、メモリリソースは処理部材1022により実行されるコマンド、例えばアプリケーションプログラムを記憶するためのものである。メモリ1032に記憶されているアプリケーションプログラムは1つ又は1つ以上の、一連のコマンドに対応する各々のモジュールを備えてもよい。また、処理部材1022は、上記ウェブページのアクセス方法を実行するように、コマンドを実行するように配置される。
【0090】
装置1000は、装置1000の電源管理を実行するように配置される1つの電源部材1026、装置1000をネットワークに接続するように配置される1つの有線又は無線ネットワークインターフェース1050、及び1つの入力出力(I/O)インターフェース1058を更に備える。装置1000はメモリ1032に記憶されているオペレーティングシステム、例えばWindows ServerTM、MacOSXTM、UnixTM、LinuxTM、FreeBSDTM又は類似なものに基づいて操作されてもよい。
【0091】
当業者は、明細書を考慮しここに開示された発明を実践した後、本発明のその他の実施態様を容易に想到できる。本発明は、本発明の如何なる変形、用途又は適応的変化を含むためのものであり、これらの変形、用途又は適応的変化は本発明の一般的な原理に準じ、本発明の開示されていない本技術分野における公知知識又は慣用の技術手段を含む。明細書と実施例は例示的なものに過ぎず、本発明の実際の範囲と精神は特許請求範囲により与えられる。
【0092】
理解すべきことは、本発明は既に上記のように説明され、図面に示された正確な構造に限定されず、その範囲を逸脱しない限りにおいて様々な修正や変更を行うことができる。本発明の範囲は特許請求の範囲のみにより限定される。