JP2015201069A - 多段分散検索方法およびシステム - Google Patents

多段分散検索方法およびシステム Download PDF

Info

Publication number
JP2015201069A
JP2015201069A JP2014080014A JP2014080014A JP2015201069A JP 2015201069 A JP2015201069 A JP 2015201069A JP 2014080014 A JP2014080014 A JP 2014080014A JP 2014080014 A JP2014080014 A JP 2014080014A JP 2015201069 A JP2015201069 A JP 2015201069A
Authority
JP
Japan
Prior art keywords
search
server
list
servers
retrieval
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
JP2014080014A
Other languages
English (en)
Inventor
小宮理実
Masami Komiya
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 Solutions Ltd
Original Assignee
Hitachi Solutions 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 Solutions Ltd filed Critical Hitachi Solutions Ltd
Priority to JP2014080014A priority Critical patent/JP2015201069A/ja
Publication of JP2015201069A publication Critical patent/JP2015201069A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】検索サーバでの検索結果のマージ処理の負荷を低減し、分散検索における拡張性を高める検索方法を提供する。【解決手段】検索用サーバが、検索用サーバリストにある検索用サーバ数から検索の多重度mを計算する。計算した多重度mに基づき、検索用サーバリストをなるべく均等にm分割し、それぞれの代表ノードに対して検索クエリと、分割した検索用サーバリストを渡す。分割したサーバリストを渡された検索用サーバが、リスト内の検索用サーバ数が最大マージノード数Mより多い場合、再度検索用サーバリストの分割と転送を実行する。サーバリスト内のサーバ数が最大マージノード数以下の場合に、インデクス格納サーバに対して検索処理を実行し、取得した検索結果に対してマージ処理を実行する。マージ処理を行った検索用サーバに対して、呼び出し元の検索用サーバが存在する場合、呼び出し元のサーバでマージ処理を行う。【選択図】図8

Description

本発明は、多数のファイルサーバ内に保存されたファイルデータを効率良く解析するための技術に関するものであり、特に、検索システムにおいて効率的に分散検索を実行できる多段分散検索方法及びシステムに関するものである。
近年、コンピュータ性能の高速化、記憶媒体装置の大容量化に伴い、膨大な数の非定型文書が作られるようになっている。このような文書の増加を受けて、文書を保存するサーバの数も比例して増えていく傾向にある。そのため、複数のサーバにわたって格納されている膨大な数の文書の中から、必要とする文書を高速かつ的確に探し出す検索システムの必要性が高まっている。
このように検索対象となるサーバが複数ある場合に、検索を効率的に行うための手法として、分散検索という手法が存在する。分散検索では、検索を行う対象を分割して別々に検索を行い、その後にそれぞれの検索結果をマージする手法がとられている。
分散検索においては、処理速度向上のためにさまざまな方法が考えられている。例えば、検索を行う対象を検索時にかかるコスト情報から選定する方法が存在する(下記先行技術文献参照)。
特開2004−171595号公報
通常の検索と同様に、分散検索においても検索対象となる文書が増加することで処理性能が低下してしまう。この現象に対して、検索対象の分割方法や検索機能自体の性能向上により分散検索の効率を向上させることができる。
しかしながら、分散検索において検索性能を向上しても、検索結果のマージ処理で膨大な量のデータのマージを行う必要があり、マージによる負荷の集中がボトルネックとなり分散検索の処理ノードの拡張性が低くなってしまうという問題がある。
本発明の目的は、検索サーバでの検索結果のマージ処理を段階的かつ並列的に行うことで、マージ時の負荷を低減することができる多段分散検索方法およびシステムを提供することである。
上記目的を達成するために本発明に係る多段分散検索方法は、検索用サーバが検索エンジン管理データベースに登録してある検索用サーバのリストを問い合わせるステップと、取得した検索用サーバリストにある検索用サーバ数から検索の多重度mを計算するステップと、計算した多重度mに基づき、検索用サーバリストを分割後のサーバリストに含まれるサーバ数の差が小さくなるようにm分割し、それぞれの代表ノードに対して検索クエリと、分割した検索用サーバリストを渡すステップと、分割したサーバリストを渡された検索用サーバが、リスト内の検索用サーバ数が最大マージノード数Mより多い場合、再度検索用サーバリストの分割と転送を実行するステップと、サーバリスト内のサーバ数が最大マージノード数以下の場合に、インデクス格納サーバに対して検索処理を実行するステップと、取得した検索結果に対してマージ処理を実行するステップと、マージ処理を行った検索用サーバに対して、呼び出し元の検索用サーバが存在する場合、呼び出し元のサーバでマージ処理を行うステップを備え、
前記検索の多重度mを計算するステップは、サーチノード数をN(N≧1)、1ノードあたりの最大マージノード数をM(M≧1)として、
Figure 2015201069
を満たす最小の自然数を分割の深さdとし、Nのd乗根の小数点を切り上げた値をmとして決定することを特徴とする。
また、本発明に係る多段分散検索システムは、検索用サーバが検索エンジン管理データベースに登録してある検索用サーバのリストを取得する問い合わせ手段と、取得した検索用サーバリストにある検索用サーバ数から検索の多重度mを算出する計算手段と、計算した多重度mに基づき、検索用サーバリストをなるべく均等にm分割し、それぞれの代表ノードに対して検索クエリと、分割した検索用サーバリストを渡す通信手段と、分割したサーバリストを渡された検索用サーバが、リスト内の検索用サーバ数が最大マージノード数Mより多い場合、再度検索用サーバリストの分割と転送を実行する通信手段と、サーバリスト内のサーバ数が最大マージノード数以下の場合に、インデクス格納サーバに対して検索処理を実行する検索手段と、取得した検索結果に対してマージ処理を実行する手段と、マージ処理を行った検索用サーバに対して、呼び出し元の検索用サーバが存在する場合、呼び出し元のサーバでマージ処理を行うマージ手段とを備え、
前記検索の多重度mを算出する計算手段が、サーチノード数をN(N≧1)、1ノードあたりの最大マージノード数をM(M≧1)として、
Figure 2015201069
を満たす最小の自然数を分割の深さdとし、Nのd乗根の小数点を切り上げた値をmとして決定することを特徴とする。
以上のように本発明の多段分散検索方法によれば、、分割した検索対象に対して複数のサーバで平行に検索・マージ処理を行い、その結果に対してさらに複数のサーバで平行に検索・マージ処理を行うことを繰り返し、1回のマージあたりの負荷を減らし、マージを同時実行して処理性能を高めることで、マージ時の負荷を低減し、分散検索における拡張性を高めることができる。
本発明の一実施の形態を示すシステム構成図である。 検索用サーバリストのデータ構成図である。 検索命令に対してインデクス格納サーバが返す検索結果のデータ構成図である。 本発明のフローチャートである。 検索用サーバリストの分割処理の説明図である。 検索結果のマージ処理の説明図である。 検索結果のマージ処理の説明図である。 本発明の一実施の形態例を示す模式図である。
以下、本発明を実施する場合の実施形態について、図面に基づき詳細に説明する。
図1は、本発明に係る一実施の形態におけるシステム構成図である。
図1に示した多段分散検索システムは、検索エンジン管理データベース1、検索用サーバ群2、インデクス格納サーバ群3を、LAN(Local Area Network)4等の有線又は無線の通信回線により互いに通信可能に接続したシステムである。
図1においては、サーバ等はLAN4によって互いに通信可能に接続されているが、接続方法はLANに限定されるものではなく、例えばWAN(Wide Area Network)やインターネットによって接続されていてもよい。
また、図1においては、サーバ等が同一LANセグメント上で接続されているが、この構成は一例に過ぎず、どのような構成になっていてもよい。さらに、図1においては、検索エンジン管理データベース1、検索用サーバ群2、およびインデクス格納サーバ群3はそれぞれ1台ずつ存在しているが、それぞれ2台以上存在しても構わない。また、検索エンジン管理データベース1、検索用サーバ群2、およびインデクス格納サーバ群3はそれぞれ異なる装置である必要はなく、例えば、検索エンジン管理データベース1、検索用サーバ群2、およびインデクス格納サーバ群3の機能を1台の装置によって実現することも可能である。
以上のような構成により、検索エンジン管理データベース1は検索用サーバ群2がインデクス格納サーバ群3を検索する際に使用する検索用サーバの一覧を提供する。
検索エンジン管理データベース1はキーバリュー型のデータベースであり、PC等の装置に搭載されている。検索エンジン管理データベース1を搭載した装置は記憶装置11と通信可能に接続されている。
記憶装置11は磁気ディスク等の装置であり、検索エンジン管理データベース1に内蔵され又は外部接続される。記憶装置11と、検索エンジン管理データベース1の主記憶装置等は、検索エンジン管理データベース1の記憶手段として機能する。記憶装置11には、検索用サーバリスト12が記憶されている。検索用サーバリスト12には、検索用サーバ群2を構成する検索用サーバの一覧が記憶されている。
検索用サーバ群2は、検索用サーバの集合体であり、すべての検索用サーバが相互に接続され、各サーバが多段分散検索実行手段21を実行できる。
多段分散検索実行手段21は検索エンジン管理データベース1から取得した検索用サーバリスト12を使用して、検索用サーバ群2内のサーバに記憶装置31に内蔵されているインデクス情報32を検索させる。
記憶装置31は磁気ディスク等の装置であり、インデクス格納サーバ群3に内蔵され又は外部接続される。記憶装置31と、インデクス格納サーバ郡3の主記憶装置等は、インデクス格納サーバ郡3の記憶手段として機能する。記憶装置31には、インデクス情報32が記憶されている。インデクス情報32には、検索に使用するインデクス情報が記憶されている。
図2は、検索エンジン管理データベース1が管理する検索用サーバリスト12のデータ構成図である。検索用サーバリスト12には、1つ以上の検索用サーバ情報200が格納されている。
具体的には検索用サーバ情報200には検索用サーバを一意に識別するためのキーが設定される。例えばキー値201が「0x0122」である検索用サーバの検索用サーバ情報202は、アドレス203が「192.10.24.XXX」、ポート番号204が「2056」のサーバただ1つに特定される。
図3は、検索用サーバ群2からの検索命令に対してインデクス格納サーバ群3が返す検索結果のデータ構成図である。このとき、インデクス格納サーバ群3は、0個以上のレコードを持ったインデクス情報検索結果300を返す。
インデクス情報検索結果300は、検索結果の順位301と、検索結果の順位301を決定する検索結果のスコア302、インデクス対象オブジェクトURI303、オブジェクト内の検索単語をハイライトする文字列304で構成されている。検索結果の順位301は、検索結果のスコア302の高い順に1位から順に順位をつける。
例えば、検索結果のスコア302が高い順に「54.2」、「36.6」、「9.8」となっていた場合は、検索結果の順位301は順に1,2,3となる。検索結果のスコア302は、ユーザが入力した検索キーワードとオブジェクト内の検索単語をハイライトする文字列304の関連が大きいほど高いスコアとなる。
図4は、多段分散検索システムの手順を示したフローチャートである。
最初のステップでは、検索用サーバが検索エンジン管理データベース1に登録してある検索用サーバのリストを問い合わせる(S401)。
その後、取得した検索用サーバリストにある検索用サーバ数から検索の多重度mを計算する(S402)。多重度mを決定する計算式は、サーチノード数をN(N≧1)、1ノードあたりの最大マージノード数をM(M≧1)として、このとき
Figure 2015201069
を満たす最小の自然数を分割の深さd、Nのd乗根の小数点を切り上げた値を多重度mとする。上記の式に従うことで、多重度を最大マージノード数以下の数値で最大にし、かつ深さを最小にすることができる。
計算した多重度mに基づき、検索用サーバリストを分割後のサーバリストに含まれるサーバ数の差が小さくなるようにm分割し、それぞれの代表ノードに対して検索クエリと、分割した検索用サーバリストを渡す(S403)。
具体的に、分割後のサーバリストに含まれるサーバ数の差が小さくなるようにというのは、例えば10個のサーバを4等分する際に3,3,2,2に分割することである。
このように分割することで、最大マージノード数を満たしつつ深さを最小にし、リストを割り当てるサーバ数を多くすることができる。
分割したサーバリストを渡された検索用サーバは、リスト内の検索用サーバ数が最大マージノード数Mより多い場合、S403のステップを再度実行する(S404)。
サーバリスト内のサーバ数が最大マージノード数以下の場合は、サーバリスト内の検索用サーバに対応したインデクス格納サーバに対して検索処理を実行する(S405)。
検索用サーバは取得した検索結果に対してマージ処理を実行する(S406)。
マージ処理を行った検索用サーバに対して、呼び出し元の検索用サーバが存在する場合、呼び出し元の検索用サーバでマージ処理を行う(S407)。S407を、呼び出し元の検索用サーバがなくなるまで繰り返すことで、多段分散検索が完了する。
図8に、m多重の分散検索を深さdまで繰り返すことを模式的に示している。
具体的に、検索用サーバ数Nを「10」、1ノードあたりの最大マージノード数Mを「3」としたときの検索処理の様子を説明する。このとき、多重度mは「3」、分割の深さdは「3」となる。
まず、検索命令を受け取ったサーバ「172.19.28.1」は検索エンジン管理データベースから図5の検索用サーバリスト501を取得する。このとき、検索用サーバリスト501には検索用サーバが172.19.28.[1−10]の10台あり、最大マージノード数より大きいため多重度に従い3分割する。
分割の結果、172.19.28.[1−4]のリストを172.19.28.1のサーバに、172.19.28.[5−7]のリストを172.19.28.5に、172.19.28.[8−10]のリストを172.19.28.8に割り当てる。このとき、検索用サーバリスト503、504に存在する検索用サーバ数は3となり、最大マージノード数以下のため検索用サーバリストの分割を終了する。
検索用サーバリスト502には検索用サーバが4つ存在するため再度分割を行う。
再分割の結果、172.19.28.[1−2]の検索用サーバリスト505を172.19.28.1のサーバに、172.19.28.3の検索用サーバリスト506を172.19.28.3に、172.19.28.4の検索用サーバリスト507を172.19.28.4に割り当てる。
各サーバリストに存在する検索用サーバ数が最大マージノード数以下となったため、ここで分割を終了する。
分割が終了した検索用サーバは、割り当てられた検索用サーバリスト内のサーバが対応するインデクス格納サーバに対して検索を実行する。172.19.28.1のサーバは、172.19.28.[1−2]のリスト(505)が割り当てられているため、172.19.28.1と172.19.28.2を検索し、検索結果である601と602をマージして603の検索結果を得る。
検索用サーバリスト505の分割元である検索用サーバリスト502は、505、506、507の3つの検索用サーバリストに分割されているので、それぞれの検索用サーバリストの検索結果である図6の603,604,605をマージして606の検索結果を得る。
このように上位へのマージを繰り返し、最終的にサーバ172.19.28.1は検索用サーバリスト502,503,504に対応した検索結果である図7の701,702,703をマージして検索結果704を得る。検索結果704に対応する検索用サーバリスト501に分割元となる検索用サーバリストは存在しないため、ここで多段分散検索は終了となる。
1 検索エンジン管理データベース
2 検索用サーバ群
3 インデクス格納サーバ群
4 ネットワーク
200 検索用サーバ情報
300 インデクス情報検索結果

Claims (2)

  1. 検索用サーバが検索エンジン管理データベースに登録してある検索用サーバのリストを問い合わせるステップと、取得した検索用サーバリストにある検索用サーバ数から検索の多重度mを計算するステップと、計算した多重度mに基づき、検索用サーバリストを分割後のサーバリストに含まれるサーバ数の差が小さくなるようにm分割し、それぞれの代表ノードに対して検索クエリと、分割した検索用サーバリストを渡すステップと、分割したサーバリストを渡された検索用サーバが、リスト内の検索用サーバ数が最大マージノード数Mより多い場合、再度検索用サーバリストの分割と転送を実行するステップと、サーバリスト内のサーバ数が最大マージノード数以下の場合に、インデクス格納サーバに対して検索処理を実行するステップと、取得した検索結果に対してマージ処理を実行するステップと、マージ処理を行った検索用サーバに対して、呼び出し元の検索用サーバが存在する場合、呼び出し元のサーバでマージ処理を行うステップを備え、
    前記検索の多重度mを計算するステップは、サーチノード数をN(N≧1)、1ノードあたりの最大マージノード数をM(M≧1)として、
    Figure 2015201069
    を満たす最小の自然数を分割の深さdとし、Nのd乗根の小数点を切り上げた値をmとして決定することを特徴とする多段分散検索方法。
  2. 検索用サーバが検索エンジン管理データベースに登録してある検索用サーバのリストを取得する問い合わせ手段と、取得した検索用サーバリストにある検索用サーバ数から検索の多重度mを算出する計算手段と、計算した多重度mに基づき、検索用サーバリストをなるべく均等にm分割し、それぞれの代表ノードに対して検索クエリと、分割した検索用サーバリストを渡す通信手段と、分割したサーバリストを渡された検索用サーバが、リスト内の検索用サーバ数が最大マージノード数Mより多い場合、再度検索用サーバリストの分割と転送を実行する通信手段と、サーバリスト内のサーバ数が最大マージノード数以下の場合に、インデクス格納サーバに対して検索処理を実行する検索手段と、取得した検索結果に対してマージ処理を実行する手段と、マージ処理を行った検索用サーバに対して、呼び出し元の検索用サーバが存在する場合、呼び出し元のサーバでマージ処理を行うマージ手段とを備え、
    前記検索の多重度mを算出する計算手段が、サーチノード数をN(N≧1)、1ノードあたりの最大マージノード数をM(M≧1)として、
    Figure 2015201069
    を満たす最小の自然数を分割の深さdとし、Nのd乗根の小数点を切り上げた値をmとして決定することを特徴とする多段分散検索システム。
JP2014080014A 2014-04-09 2014-04-09 多段分散検索方法およびシステム Pending JP2015201069A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014080014A JP2015201069A (ja) 2014-04-09 2014-04-09 多段分散検索方法およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014080014A JP2015201069A (ja) 2014-04-09 2014-04-09 多段分散検索方法およびシステム

Publications (1)

Publication Number Publication Date
JP2015201069A true JP2015201069A (ja) 2015-11-12

Family

ID=54552271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014080014A Pending JP2015201069A (ja) 2014-04-09 2014-04-09 多段分散検索方法およびシステム

Country Status (1)

Country Link
JP (1) JP2015201069A (ja)

Similar Documents

Publication Publication Date Title
US11423082B2 (en) Methods and apparatus for subgraph matching in big data analysis
US11423085B2 (en) Graph database super vertex partitioning
US9032000B2 (en) System and method for geolocation of social media posts
US9519687B2 (en) Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
CN110134714B (zh) 适用于大数据迭代计算的分布式计算框架缓存索引方法
JP5759915B2 (ja) ファイルリスト生成方法及びシステム並びにプログラム、ファイルリスト生成装置
CN107704202B (zh) 一种数据快速读写的方法和装置
JP2013156881A (ja) ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム
US11599591B2 (en) System and method for updating a search index
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
US20110179013A1 (en) Search Log Online Analytic Processing
US20140279883A1 (en) Method and a system for distributed processing of a dataset
US10698955B1 (en) Weighted abstract path graph database partitioning
US20160125095A1 (en) Lightweight temporal graph management engine
CN114840487A (zh) 分布式文件系统的元数据管理方法和装置
US11361195B2 (en) Incremental update of a neighbor graph via an orthogonal transform based indexing
WO2018212929A1 (en) System and method for enabling related searches for live events in data streams
CN111522918A (zh) 数据汇聚方法、装置、电子设备及计算机可读存储介质
CN106844553A (zh) 基于样本数据的数据探测和扩充方法及装置
US9817853B1 (en) Dynamic tier-maps for large online databases
CN111666278A (zh) 数据存储、检索方法、电子设备及存储介质
US10235432B1 (en) Document retrieval using multiple sort orders
JP2015201069A (ja) 多段分散検索方法およびシステム
CN110968649B (zh) 用于管理数据集的方法、设备和计算机程序产品
WO2021012211A1 (zh) 一种为数据建立索引的方法以及装置