JP2007241378A - 検索装置及びそのプログラム - Google Patents
検索装置及びそのプログラム Download PDFInfo
- Publication number
- JP2007241378A JP2007241378A JP2006059207A JP2006059207A JP2007241378A JP 2007241378 A JP2007241378 A JP 2007241378A JP 2006059207 A JP2006059207 A JP 2006059207A JP 2006059207 A JP2006059207 A JP 2006059207A JP 2007241378 A JP2007241378 A JP 2007241378A
- Authority
- JP
- Japan
- Prior art keywords
- original data
- area
- search
- unit
- information
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】膨大なデータリストの中から所望のデータを抽出する検索処理の高速化を実現する。
【解決手段】原データ群を原データ領域に格納し、並びに、各原データの原データ領域における格納場所を示す情報をインデックス領域における当該原データのハッシュ値に対応する場所に格納しておく。検索に際しては、検索キーのハッシュ値を算出し、インデックス領域におけるそのハッシュ値に対応する場所を参照して原データの格納場所を示す情報を抽出する。次いで、原データ領域におけるその情報で示される場所を参照して所要の原データを抽出して、最終的に抽出した原データが検索キーに合致するものであるか否かを判断する。
【選択図】図8
【解決手段】原データ群を原データ領域に格納し、並びに、各原データの原データ領域における格納場所を示す情報をインデックス領域における当該原データのハッシュ値に対応する場所に格納しておく。検索に際しては、検索キーのハッシュ値を算出し、インデックス領域におけるそのハッシュ値に対応する場所を参照して原データの格納場所を示す情報を抽出する。次いで、原データ領域におけるその情報で示される場所を参照して所要の原データを抽出して、最終的に抽出した原データが検索キーに合致するものであるか否かを判断する。
【選択図】図8
Description
本発明は、種々のデータを検索するための検索装置に関する。
データベースに登録しているデータリストの中から所望のデータを抽出する検索処理は日常的に行われる。例えば、URL(Uniform Resource Locator)フィルタリングを実施するプロクシサーバでは、ブラックリスト(アクセスを禁止するべきURL群)またはホワイトリスト(アクセスを許可するべきURL群)を予め保持し、クライアントよりもたらされるリクエストに含まれるアクセス先のURLがリスト中に存在しているかどうか検索した上で、リクエストに係るアクセスを許可するか禁止するかの判断を下す(例えば、下記特許文献を参照)。
特開2000−047927号公報
上記の如きURLフィルタリングにおいて、アクセスを禁止/許可したいURLは日々リストに追加される。天文学的な数のウェブページ等がインターネットで公開されている今、ブラックリストまたはホワイトリストに登録されるURLもまた莫大な数に上り、URLの検索に要する時間も無視できない程度に長くなってきている。
以上に鑑みてなされた本発明は、膨大なデータリストの中から所望のデータを抽出する検索処理の高速化を実現することを所期の目的としている。
本発明では、図1に示すように、与えられる検索キーに合致する原データを予め登録された原データ群の中から抽出するためのものであって、原データ群を格納した原データ領域、及び各原データの原データ領域における格納場所を示す情報を当該原データのハッシュ値に対応する場所に格納したインデックス領域を有する記憶部101と、検索キーを取得する検索キー取得部102と、取得した検索キーのハッシュ値を算出するキーハッシュ算出部103と、前記インデックス領域における前記ハッシュ値に対応する場所を参照して原データの格納場所を示す情報を抽出し、次いで前記原データ領域におけるその情報で示される場所を参照して所要の原データを抽出する検索部104と、抽出した原データが検索キーに合致するものであるか否かを判断する判断部105とを具備する検索装置を構成した。
本検索装置をURLフィルタリングに適用する場合、予め、ブラックリストまたはホワイトリストに登録されるべきURLを原データ領域に格納するとともに、原データ領域におけるこのURLの格納場所を示す情報をインデックス領域に格納しておく。そのとき、同URLからハッシュ値を算出して、インデックス領域におけるハッシュ値に対応する場所に情報を格納する。検索に際しては、検索キーとして与えられたURL、即ちクライアントがアクセスしようとしているURLのハッシュ値を算出し、インデックス領域におけるそのハッシュ値に対応する場所を参照して、そこに格納されているURLの格納場所を示す情報を抽出する。次いで、原データ領域におけるその情報で示される場所を参照して、そこに格納されているURLを抽出する。最後に、抽出したURLと検索キーとして与えられたURLとを照合する。
本検索装置は、インデックス領域のシーク及び原データ領域のシークという二回のシーク処理を通じて、検索キーと照合する原データの絞り込みを行う。このようなものであれば、予め登録している原データのリストの量が膨大であっても、検索処理に要する時間を十分に短縮することができる。
さらに、本検索装置が、図2に示すように、検索キーに合致する原データの存否に関する結果情報を出力する結果出力部106を具備していてもよい。
加えて、前記原データ領域に、各原データとそれぞれの原データに関する属性情報とを組にして格納しているならば、前記検索部104にて、所要の原データとともに当該原データに関する属性情報を抽出し、前記結果出力部106にて、検索キーに合致する原データに関する属性情報をも含めた結果情報を出力するものとすることができる。URLフィルタリングの例でいえば、リストに登録されるべきURLと、そのURLで識別されるウェブページ等の内容の分類(一般的なものか、暴力的なものか、触法行為に関わるものか、等々)を表す属性情報とを組にして原データ領域に格納しておく。そして、検索に際して、検索キーとして与えられたURLがリスト中に存在するかどうか検索を遂行するだけでなく、当該URLに係る属性情報の抽出をも試みる。検索キーとして与えられたURLをリスト中に発見した暁には、同URLで識別されるウェブページ等の内容の分類を示すことが可能である。
既述の通り、本検索装置は、原データがそれぞれ所定の事物を識別する文字列であり、属性情報が原データによって識別される事物に関する情報であり、検索キーが何れかの事物を指定するための文字列であるような用途に好適に供することができる。
前記原データ領域及び前記インデックス領域に格納するべき情報を単一のデータファイルの形で前記記憶部101に記憶させていれば、前記検索部104にて、前記データファイル中のインデックス領域をシークし、次いで同データファイル中の原データ領域をシークして、所要の原データを抽出できる。複数のデータファイルに対してファイル操作及び入出力を行わずに済むことから、検索の一層の効率化、高速化が図られる。
また、前記記憶部101にて前記データファイルを複数記憶し、さらには図3に示すように、前記検索部104が前記記憶部101で記憶している複数のデータファイルのうちの何れを参照して検索処理を実行するかを設定するファイル切替部107を具備する構成としてもよい。これにより、一方のデータファイルの生成または再構築時には他方のデータファイルを参照して検索を行い、他方のデータファイルの生成ないし再構築時には一方のデータファイルを参照して検索を行い得る。つまり、データファイルの生成ないし再構築に伴う検索サービスの停止期間を極小化できる。
本検索装置が検索を実行するにあたっては、事前に検索対象となる原データのリストを記憶部101に記憶させておく必要がある。そのために必須となる装置の機能は、図4に示すように、前記原データ領域及び前記インデックス領域を有する記憶部101、登録されるべき原データを取得する原データ取得部108、取得した原データのハッシュ値を算出する原データハッシュ算出部109、並びに、前記原データを前記原データ領域に書き込み、かつ当該原データの原データ領域における格納場所を示す情報を前記インデックス領域における前記ハッシュ値に対応する場所に書き込む書込部110である。
特に、前記原データ取得部108は、登録されるべき原データとともに当該原データに関する属性情報をも取得するものとし、前記書込部110は、前記原データと前記属性情報とを組にして前記原データ領域に書き込むものとすることが好ましい。前記書込部110は、前記原データ領域及び前記インデックス領域に格納するべき情報を単一のデータファイルの形で書き込むことができる。
本発明によれば、膨大なデータリストの中から所望のデータを抽出する検索処理の高速化を実現できる。
以下、本発明の一実施形態を、図面を参照して説明する。本実施形態の検索装置は、検索キーとしてあるURLが与えられたときに、そのURLで識別されるウェブページ等へのアクセスを禁止するかあるいは許可するかに関する判断を下す役割を担うものである。本実施形態の検索装置は、サーバコンピュータ1を主体として構成される。図5に示すように、サーバコンピュータ1は、LAN(Local Area Network)、WAN(Wide Area Network)等の内部ネットワーク3を介してクライアントコンピュータ2と接続している。クライアントコンピュータ2は、インターネットに代表される外部ネットワーク4を介してウェブサーバ、FTP(File Transfer Protocol)サーバ、アプリケーションサーバ等の外部のコンピュータと通信可能である。
ユーザは、クライアントコンピュータ2を使用して、外部ネットワーク4上に存在するウェブページやファイル、プログラム等のリソースにアクセスする。その際、所要の通信プロトコルに則ったリクエストを外部ネットワーク4に向けて送出することになるが、これに先んじてクライアントコンピュータ2はアクセス先のURLまたはURLを含むリクエストをサーバコンピュータ1に送信する。アクセス先のURLまたはリクエストを受信したサーバコンピュータ1は、そのURLによって識別されるリソースへのアクセスを禁止するべきであるか許可するべきであるかを判断し、併せてアクセス先のリソースが如何なる種類のものであるかを判定する。因みに、サーバコンピュータ1は、プロクシサーバやDNS(Domain Name Server)等であることがある。
サーバコンピュータ1は、例えば、図6に示すように、プロセッサ1a、メインメモリ1b、補助記憶デバイス1c、表示制御デバイス1d、ディスプレイ1e、操作入力デバイス1f、通信インタフェース1g等のハードウェア資源を備え、これらがコントローラ(システムコントローラやI/Oコントローラ)1hにより制御されて連携動作するものである。補助記憶デバイス1cは、ハードディスクドライブ、フラッシュメモリ、光学ディスクドライブ、その他である。表示制御デバイス1dは、プロセッサ1aより受けた描画指示をもとに表示させるべき画像データを生成してディスプレイ1eに向けて送出するビデオチップ(グラフィクスチップ)、画像データ等を一時的に格納しておくビデオメモリ等を要素とする。操作入力デバイス1fは、手指で操作可能な押下ボタン、キーボードや、マウス、トラックパッド、タッチパネル等のポインティングデバイスである。通信インタフェース1gは、ネットワーク3、4を介した情報通信を行うためのデバイスであり、典型的にはNIC(Network Interface Card)や無線LANトランシーバであるが、これら以外にUSB(Universal Serial Bus)、IEEE1394等のインタフェースを採用することもできる。
通常、プロセッサ1aによって実行されるべきプログラムが補助記憶デバイス1cに格納されており、プログラムの実行の際には補助記憶デバイス1cからメインメモリ1bに読み込まれ、プロセッサ1aによって解読される。本実施形態では、既知のOS(Operating System)プログラムやこれに付帯する各種デバイスドライバプログラムが予めインストールされ、他のプログラムによるハードウェア資源の利用を仲介する。その上で、本発明に係る検索装置を構成するために必要となるプログラムがインストールされている。そして、プログラムに従い、上記ハードウェア資源を作動して、図7に示す記憶部101、原データ取得部108、原データハッシュ算出部109、書込部110、検索キー取得部102、キーハッシュ算出部103、検索部104、判断部105、結果出力部106並びにファイル切替部107としての機能を発揮する。
各部の機能を説明する。記憶部101は、メインメモリ1bまたは補助記憶デバイス1cを利用して構成され、原データたるURLのリストを記憶する。URLのリストが、ブラックリストであるか、ホワイトリストであるかは問われない。記憶部101は、原データ領域と、インデックス領域とを包有している。原データ領域は、リストに登録されたURLを格納する領域であり、インデックス領域は、各URLの原データ領域における格納場所を示す情報を格納する領域である。
詳述すると、図8に示しているように、各URLから所定長のハッシュ値を算出し、インデックス領域におけるそのハッシュ値に対応する場所に、URLの格納場所を示す情報を格納するようにしている。ハッシュ値とは、衝突耐性を有する、換言すれば同じハッシュ値を生成する二つの原文を見出すことが困難なハッシュ関数に、原文を代入して算出する擬似乱数である。尤も、相異なる原文から同じハッシュ値が生成される可能性がないわけではない。ハッシュ値がxビット長であるとき、インデックス領域は2x個の記憶領域を備える配列である。各記憶領域には、URLの格納場所を示す情報と、ハッシュ値が同じになるURLの数の情報とを格納する。本実施形態では、ハッシュ値を24ビット長、各記憶領域の大きさを8バイトに設定しており、インデックス領域は全体で128メガバイトとなる。記憶領域は、位置情報に4バイト、URLの重なり数の情報に4バイトを割り当てている。
原データ領域では、リストに登録されるべきURLを、下記の規則に従って格納する。即ち、各URLを格納する個々の記憶領域に、URLの長さ、URL、終端文字、属性情報の長さ、属性情報、終端文字の順に情報を格納する。属性情報とは、URLに関する情報、より具体的にはURLによって識別されるリソースの内容の分類に関する情報である。例えば、そのURLで識別されるウェブページ等の内容が一般的なものか、暴力的なものか、触法行為に関わるものか、等を表すパラメータがこれにあたる。本実施形態では、URLの長さ及び属性情報の長さを、それぞれ終端文字を含めて最長で255バイトまでとしている。終端文字は、00h(16進数表記)の1バイト文字である。URLが“www.abc.com”なる文字列であり、属性情報が“101”なる文字列であるとすると、URLの長さは終端文字を含めて12バイト、属性情報の長さは終端文字を含めて4バイトになる。そして、これらURL及び属性情報を格納する記憶領域の大きさは14バイトということになる。リストに登録されたURLの平均の長さが64バイト、リストに登録されたURLの総数が1677万件のとき、原データ領域は全体で約1.07ギガバイトとなる。
また、特に、記憶部101は、原データ領域及びインデックス領域に格納される情報を、単一のデータファイルとして保持する。以降、このデータファイルをインデックスファイルと呼称する。インデックス領域に格納する位置情報は、このインデックスファイル内の所要のアドレスを指し示すものとすることができる。位置情報を4バイトとしているのは、汎用的な32ビットプロセッサ1aのレジスタ長に合わせていることも理由の一つである。インデックスファイルの大きさが4ギガバイトを超えることはほとんどなく、汎用的な32ビットプロセッサ1aでこれを簡単に取り扱うことができる。無論、プロセッサ1aが64ビットプロセッサであれば位置情報を8バイトとする等、仕様の変更は許される。
原データ取得部108は、リストに登録されるべきURL及びそのURLに関する属性情報を取得する。その取得の態様は一意に限定されない。操作入力デバイス1fを介した手入力を受け付けたり、補助記憶デバイス1cに記憶しているファイルから読み取ったり、ネットワーク3、4を介して接続している他のコンピュータ(クライアントコンピュータ2を含む)から受信したりする態様で、URL及び属性情報を取得することができる。
原データハッシュ算出部109は、取得したURLを所定のハッシュ関数に代入して当該URLのハッシュ値を算出する。
書込部110は、取得したURL及びそのURLに関する属性情報を、記憶部101で保持するインデックスファイルの原データ領域に書き込む。並びに、当該URLの原データ領域における格納場所を示す情報を、インデックス領域における算出したハッシュ値に対応する場所に書き込む。例えば、リストに登録されるURL“www.abc.com”のハッシュ値が237A2Chであるならば、原データ領域において当該URL及び属性情報を格納している記憶領域の場所を示す情報を、インデックス領域における237A2Ch番目の記憶領域に格納する。さらに、同じ記憶領域に、リストに登録されたURLのうちハッシュ値が237A2ChとなるURLの数を格納する。ハッシュ値が同じになる複数のURLが存在している場合には、各URL及びその属性情報を原データ領域における連続した同数の記憶領域に順次格納するものとし、それら記憶領域の先頭を示す情報をインデックス領域における該当の記憶領域に格納する。
検索キー取得部102は、検索キー、即ちクライアントコンピュータ2がアクセスしようとしているURLを取得する。本実施形態では、主に、クライアントコンピュータ2よりもたらされるアクセス先のURLまたはURLを含むリクエストを受信することを想定している。但し、検索キーの取得の態様は一意に限定されない。操作入力デバイス1fを介した手入力を受け付けたり、補助記憶デバイス1cに記憶しているファイルから読み取ったりする態様で、URLを取得することもできる。
キーハッシュ算出部103は、取得したURLを所定のハッシュ関数に代入して当該URLのハッシュ値を算出する。
検索部104は、インデックス領域における算出したハッシュ値に対応する場所を参照して、検索キーと照合するべきURLが格納されている場所を示す情報を抽出する。次いで、原データ領域におけるその情報で示される場所を参照して、所要のURLを抽出する。例えば、検索キーとして与えられたURL“www.abc.com”のハッシュ値が237A2Chであるならば、インデックス領域における237A2Ch番目の記憶領域を参照し、そこに格納されている位置情報及びURLの重なり数の情報を抽出する。そして、原データ領域における、抽出した位置情報によって示される記憶領域を参照して、そこに格納されているURL及び属性情報を抽出する。URLの重なり数が複数である場合には、抽出した位置情報によって指し示される先頭から同数分の記憶領域を順次参照して、その各々に格納されているURL及び属性情報を抽出する。また、URLの重なり数が0である場合には、ハッシュ値が同値となるURLがリストに登録されていないということであるので、即時に検索処理を終了する。
判断部105は、原データ領域より抽出したURLが、検索キーとして与えられたURLに合致するか否かを判断する。ハッシュ値に対するURLの重なり数が複数であり、原データ領域より複数のURLを抽出できる場合には、それぞれのURLを検索キーとして与えられたURLと照合する。
結果出力部106は、検索キーとして与えられたURLに合致するURLが原データ領域に格納しているリスト中に存在していたか否かに関する結果情報を出力する。結果情報には、検索キーに合致したURLに関する属性情報を含めることができる。本実施形態では、主に、結果情報をクライアントコンピュータ2に返信することを想定している。但し、結果情報の出力の態様は一意に限定されない。補助記憶デバイス1cに書き込んで蓄積したり、ハードコピー出力したり、ディスプレイ1eの画面に表示したりする態様で、これを出力することもできる。さらに、結果出力部106の機能は必須ではない。サーバコンピュータ1がプロクシサーバやDNS等であり、サーバコンピュータ1自体でクライアントコンピュータ2による外部ネットワーク4へのアクセスを遮断し得る場合には、結果情報の出力を伴うことなく、判断部105における判断結果に応じてアクセスを禁止/許可するということも考えられる。
しかして、ファイル切替部107は、検索部104が検索に際して参照するインデックスファイルの切替を司る。本実施形態の検索装置は、複数のインデックスファイルを保持し、その何れかのインデックスファイルを参照して検索処理を遂行する。よって、インデックスファイルの生成または再構築時において、一方のインデックスファイルにURLや属性情報、位置情報等を書き込んでこれを更新しつつ、他方のデータファイルを参照して検索を行い得る状態に維持することができる。ファイル切替部107は、記憶部101で記憶している複数のデータファイルのうち何れを参照して検索を行うのかを選択するコマンドを操作入力デバイス1fを介して受け付け、またはネットワーク3、4を介して接続している他のコンピュータ(クライアントコンピュータ2を含む)から受信して、インデックスファイルを切り替える。あるいは、インデックスファイルの生成または再構築時に、更新されない方のインデックスファイルに自動的に切り替えるようにしても構わない。但し、ファイル切替部107の機能は必須ではない。記憶部101で記憶しているデータファイルが唯一の場合には、そもそもインデックスファイルの切替は発生しない。
なお、上述した各部の機能を相互に接続している複数のコンピュータに分担させ、それらコンピュータを協働させることで検索装置として成立させることを妨げない。また、上述した各部の機能の一部または全部をクライアントコンピュータ2に担わせることを妨げない。
本検索装置が実行する処理の手順を述べる。インデックスファイルを生成ないし再構築する際の処理の手順を、図9のフローチャートに示す。検索装置は、リストに登録されるべきURL及びそのURLに関する属性情報を一件づつ取得する(ステップS1)。続いて、取得したURLのハッシュ値を算出し(ステップS2)、インデックス領域におけるハッシュ値に対応する記憶領域を参照してURLの重なり数の情報を抽出する(ステップS3)。URLの重なり数が0である場合には(ステップS4)、原データ領域において未使用の記憶領域を適宜に選択してそこにURL及び属性情報を格納する(ステップS5)。ステップS5では、併せてURLの長さ、属性情報の長さの情報を書き込む。さらに、URL及び属性情報を格納した記憶領域を指し示す位置情報を、インデックス領域の該当の記憶領域に格納する(ステップS6)。URLの重なり数が1以上である場合には、インデックス領域の該当の記憶領域を参照して位置情報を抽出し(ステップS7)、原データ領域におけるその位置情報で示される場所からURLの重なり数分繰り下がった記憶領域にURL及び属性情報を格納する(ステップS8)。ステップS8でも、併せてURLの長さ、属性情報の長さの情報を書き込む。また、何れの場合にも、インデックス領域の該当の記憶領域に格納しているURLの重なり数を1増加させる(ステップS9)。そして、リストに登録されるべき全てのURLについて、上記の処理を繰り返す(ステップS10)。
URLを検索する際の処理の手順を、図10のフローチャートに示す。検索装置は、検索キーとして与えられるURLを取得した後(ステップS11)、このURLのハッシュ値を算出し(ステップS12)、インデックス領域におけるハッシュ値に対応する記憶領域を参照して位置情報及びURLの重なり数の情報を抽出する(ステップS13)。URLの重なり数が0である場合には(ステップS14)、検索キーに合致するURLがリスト中に存在していないことになる。URLの重なり数が1以上である場合には、原データ領域におけるその位置情報で示される場所からURLの重なり数分の記憶領域を順次参照してそこに格納されているURLを一件づつ抽出し、検索キーのURLと照合する(ステップS15)。検索キーに合致するURLが検出されたならば(ステップS16)、そのURLに関連する属性情報を抽出して(ステップS17)、抽出した属性情報を含めた結果情報を出力する(ステップS18)。このときの結果情報は、検索キーに合致するURLがリスト中に存在していた旨を示すものとなる。他方、検索キーに合致するURLが検出されたかった、または元来URLの重なり数が0であったならば、検索キーに合致するURLがリスト中に存在していなかった旨を示す結果情報を出力する。
先に述べたように、外部ネットワーク4へアクセスしようとするクライアントコンピュータ2は、外部ネットワーク4に実際にアクセスする以前に、アクセス先のURLまたはURLを含むリクエストを検索キーとしてサーバコンピュータ1に送信する。これを受信したサーバコンピュータ1は、検索処理を遂行し、結果情報をクライアントコンピュータ2に返信する。結果情報を受信したクライアントコンピュータ2は、その結果情報の内容に応じて、アクセスを実行するか中止するかの判断を下すことができるのである。
本実施形態によれば、与えられる検索キーに合致する原データを予め登録された原データ群の中から抽出するためのものであって、原データ群を格納した原データ領域、及び各原データの原データ領域における格納場所を示す情報を当該原データのハッシュ値に対応する場所に格納したインデックス領域を有する記憶部101と、検索キーを取得する検索キー取得部102と、取得した検索キーのハッシュ値を算出するキーハッシュ算出部103と、前記インデックス領域における前記ハッシュ値に対応する場所を参照して原データの格納場所を示す情報を抽出し、次いで前記原データ領域におけるその情報で示される場所を参照して所要の原データを抽出する検索部104と、抽出した原データが検索キーに合致するものであるか否かを判断する判断部105とを具備する検索装置を構成し、インデックス領域のシーク及び原データ領域のシークという二回のシーク処理を通じて検索キーと照合する原データの絞り込みを行うようにしたため、予め登録している原データのリストの量が膨大であっても、検索処理に要する時間を十分に短縮することができる。
さらに、検索キーに合致する原データの存否に関する結果情報を出力する結果出力部106を具備しており、他のコンピュータで結果情報を利用してアクセスの可否判断やその他種々の処理を実施することが可能となっている。
加えて、前記原データ領域に、各原データとそれぞれの原データに関する属性情報とを組にして格納しているため、前記検索部104にて、所要の原データとともに当該原データに関する属性情報を抽出し、前記結果出力部106にて、検索キーに合致する原データに関する属性情報をも含めた結果情報を出力するものとすることができる。属性情報もまた、他のコンピュータで利用することができる。
本検索装置は、原データがそれぞれ所定の事物を識別する文字列であり、属性情報が原データによって識別される事物に関する情報であり、検索キーが何れかの事物を指定するための文字列であるような用途に好適に供することができる。
前記原データ領域及び前記インデックス領域に格納するべき情報を単一のデータファイル(インデックスファイル)の形で前記記憶部101に記憶させているため、前記検索部104にて、前記データファイル中のインデックス領域をシークし、次いで同データファイル中の原データ領域をシークして、所要の原データを抽出できる。複数のデータファイルに対してファイル操作及び入出力を行わずに済むことから、検索の一層の効率化、高速化が図られる。
また、前記記憶部101にて前記データファイルを複数記憶し、前記検索部104が前記記憶部101で記憶している複数のデータファイルのうちの何れを参照して検索処理を実行するかを設定するファイル切替部107をさらに具備しているため、一方のデータファイルの生成または再構築時には他方のデータファイルを参照して検索を行い、他方のデータファイルの生成ないし再構築時には一方のデータファイルを参照して検索を行い得る。つまり、データファイルの生成ないし再構築に伴う検索サービスの停止期間を極小化できる。
本検索装置が検索を実行するにあたっては、事前に検索対象となる原データのリストを記憶部101に記憶させておく必要がある。そのために、本検索装置は、登録されるべき原データを取得する原データ取得部108、取得した原データのハッシュ値を算出する原データハッシュ算出部109、並びに、前記原データを前記原データ領域に書き込み、かつ当該原データの原データ領域における格納場所を示す情報を前記インデックス領域における前記ハッシュ値に対応する場所に書き込む書込部110を具備している。
特に、前記原データ取得部108は、登録されるべき原データとともに当該原データに関する属性情報をも取得するものとし、前記書込部110は、前記原データと前記属性情報とを組にして前記原データ領域に書き込むものとしている。前記書込部110は、前記原データ領域及び前記インデックス領域に格納するべき情報を単一のデータファイルの形で書き込むことができる。
なお、本発明は以上に詳述した実施形態に限られるものではない。例えば、上記実施形態では、ハッシュ値を24ビット長としており、リストには1677万件程度のURLを登録しておくことができた。それ以上多い件数を登録したければ、ハッシュ値を長くすればよい。ハッシュ値を32ビット長とすれば、リストに43億件程度のURLを登録しておくことが可能となる。このときには、インデックスファイルの大きさが4ギガバイトを超えるので、インデックスファイルを256個に分割して一個あたり4ギガバイト以下の大きさに収めたり、インデックス領域に格納する位置情報を8バイトとしたりする仕様変更を施すことが好ましい。
上記実施形態では、URLの重なり数の情報をインデックス領域に格納していたが、これを原データ領域に格納することを妨げない。
検索対象とするデータは、URLには限られない。氏名、名称やユーザID、クレジットカード番号等、各種データの検索に本発明を適用することができる。また、属性情報も、当該人の年齢、性別、職業、住所、電話番号、電子メールアドレス等、種々に変形可能である。
さらに言えば、検索対象とするデータの形式が文字列であるとも限られない。画像・映像データや音声データ等の検索に本発明を適用することも当然に可能である。
その他、各部の具体的構成や処理の手順等は、本発明の趣旨を逸脱しない範囲で種々変形が可能である。
101…記憶部
102…検索キー取得部
103…キーハッシュ算出部
104…検索部
105…判断部
106…結果出力部
107…ファイル切替部
108…原データ取得部
109…原データハッシュ算出部
110…書込部
102…検索キー取得部
103…キーハッシュ算出部
104…検索部
105…判断部
106…結果出力部
107…ファイル切替部
108…原データ取得部
109…原データハッシュ算出部
110…書込部
Claims (11)
- 与えられる検索キーに合致する原データを予め登録された原データ群の中から抽出するためのものであって、
原データ群を格納した原データ領域、及び各原データの原データ領域における格納場所を示す情報を当該原データのハッシュ値に対応する場所に格納したインデックス領域を有する記憶部と、
検索キーを取得する検索キー取得部と、
取得した検索キーのハッシュ値を算出するキーハッシュ算出部と、
前記インデックス領域における前記ハッシュ値に対応する場所を参照して原データの格納場所を示す情報を抽出し、次いで前記原データ領域におけるその情報で示される場所を参照して所要の原データを抽出する検索部と、
抽出した原データが検索キーに合致するものであるか否かを判断する判断部と
を具備する検索装置。 - 検索キーに合致する原データの存否に関する結果情報を出力する結果出力部をさらに具備し、
前記原データ領域は、各原データとそれぞれの原データに関する属性情報とを組にして格納しており、
前記検索部は、所要の原データとともに当該原データに関する属性情報を抽出し、
前記結果出力部は、検索キーに合致する原データに関する属性情報をも含めた結果情報を出力する請求項1記載の検索装置。 - 原データは、それぞれ所定の事物を識別する文字列であり、
属性情報は、原データによって識別される事物に関する情報であり、
検索キーは、何れかの事物を指定するための文字列である請求項2記載の検索装置。 - 前記記憶部は、前記原データ領域及び前記インデックス領域に格納するべき情報を単一のデータファイルの形で記憶しており、
前記検索部は、前記データファイル中のインデックス領域をシークし、次いで同データファイル中の原データ領域をシークして所要の原データを抽出するものである請求項1、2または3記載の検索装置。 - 前記記憶部にて前記データファイルを複数記憶しており、
さらに、前記検索部が前記記憶部で記憶している複数のデータファイルのうちの何れを参照して検索処理を実行するかを設定するファイル切替部を具備している請求項4記載の検索装置。 - 請求項1、2、3、4または5記載の検索装置を構成するために用いられるものであって、コンピュータを、少なくとも、
検索キーを取得する検索キー取得部、
取得した検索キーのハッシュ値を算出するキーハッシュ算出部、
前記インデックス領域における前記ハッシュ値に対応する場所を参照して原データの格納場所を示す情報を抽出し、次いで前記原データ領域におけるその情報で示される場所を参照して所要の原データを抽出する検索部、並びに、
抽出した原データが検索キーに合致するものであるか否かを判断する判断部
として機能させるプログラム。 - さらに、コンピュータを、検索キーに合致する原データの存否に関する結果情報を出力する結果出力部としても機能させ、
前記原データ領域は、各原データとそれぞれの原データに関する属性情報とを組にして格納しており、
前記検索部は、所要の原データとともに当該原データに関する属性情報を抽出し、
前記結果出力部は、検索キーに合致する原データに関する属性情報をも含めた結果情報を出力する請求項6記載のプログラム。 - 前記記憶部は、原データ領域及びインデックス領域に格納するべき情報を単一のデータファイルの形で記憶しており、
前記検索部は、前記データファイル中のインデックス領域をシークし、次いで同データファイル中の原データ領域をシークして所要の原データを抽出するものである請求項6または7記載のプログラム。 - 請求項1、2、3、4または5記載の検索装置を構成するために用いられるものであって、コンピュータを、少なくとも、
前記原データ領域及び前記インデックス領域を有する記憶部、
登録されるべき原データを取得する原データ取得部、
取得した原データのハッシュ値を算出する原データハッシュ算出部、並びに、
前記原データを前記原データ領域に書き込み、かつ当該原データの原データ領域における格納場所を示す情報を前記インデックス領域における前記ハッシュ値に対応する場所に書き込む書込部
として機能させるプログラム。 - 前記原データ取得部は、登録されるべき原データとともに当該原データに関する属性情報をも取得し、
前記書込部は、前記原データと前記属性情報とを組にして前記原データ領域に書き込む請求項9記載のプログラム。 - 前記書込部は、前記原データ領域及び前記インデックス領域に格納するべき情報を単一のデータファイルの形で書き込むものである請求項9または10記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006059207A JP2007241378A (ja) | 2006-03-06 | 2006-03-06 | 検索装置及びそのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006059207A JP2007241378A (ja) | 2006-03-06 | 2006-03-06 | 検索装置及びそのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007241378A true JP2007241378A (ja) | 2007-09-20 |
Family
ID=38586897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006059207A Pending JP2007241378A (ja) | 2006-03-06 | 2006-03-06 | 検索装置及びそのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007241378A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100964207B1 (ko) | 2009-11-13 | 2010-06-17 | 동국대학교 산학협력단 | 해시 기반 문서의 색인화 및 검색 방법 및 장치 |
JP2011170597A (ja) * | 2010-02-18 | 2011-09-01 | Nippon Telegr & Teleph Corp <Ntt> | データ抽出装置、データ抽出方法、および、データ抽出プログラム |
CN113553455A (zh) * | 2020-04-26 | 2021-10-26 | 阿里巴巴集团控股有限公司 | 数据的处理方法、装置、存储介质和处理器 |
JP2022522214A (ja) * | 2019-03-01 | 2022-04-14 | アイオー タホ エルエルシー | 移動中のデータの処理技術 |
CN114817147A (zh) * | 2022-07-01 | 2022-07-29 | 北京网藤科技有限公司 | 一种通过二级索引进行文件特征值快速检索的方法和系统 |
CN118394714A (zh) * | 2024-06-26 | 2024-07-26 | 湖南交通物流信息服务有限公司 | 一种加密文件索引快速构建与存储方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228348A (ja) * | 1987-03-18 | 1988-09-22 | Nec Corp | フアイル装置 |
JPH02231675A (ja) * | 1989-01-31 | 1990-09-13 | Internatl Business Mach Corp <Ibm> | データを構成、管理又は検索するための方法及び装置 |
JPH0561914A (ja) * | 1991-09-02 | 1993-03-12 | Fuji Xerox Co Ltd | データ管理装置 |
JP2003271670A (ja) * | 2002-03-19 | 2003-09-26 | Mitsubishi Electric Corp | 情報収集装置、情報収集方法及びプログラム |
JP2005135024A (ja) * | 2003-10-28 | 2005-05-26 | Kazunori Ando | 迷惑メール遮断方法及び迷惑メール遮断プログラム |
-
2006
- 2006-03-06 JP JP2006059207A patent/JP2007241378A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63228348A (ja) * | 1987-03-18 | 1988-09-22 | Nec Corp | フアイル装置 |
JPH02231675A (ja) * | 1989-01-31 | 1990-09-13 | Internatl Business Mach Corp <Ibm> | データを構成、管理又は検索するための方法及び装置 |
JPH0561914A (ja) * | 1991-09-02 | 1993-03-12 | Fuji Xerox Co Ltd | データ管理装置 |
JP2003271670A (ja) * | 2002-03-19 | 2003-09-26 | Mitsubishi Electric Corp | 情報収集装置、情報収集方法及びプログラム |
JP2005135024A (ja) * | 2003-10-28 | 2005-05-26 | Kazunori Ando | 迷惑メール遮断方法及び迷惑メール遮断プログラム |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100964207B1 (ko) | 2009-11-13 | 2010-06-17 | 동국대학교 산학협력단 | 해시 기반 문서의 색인화 및 검색 방법 및 장치 |
JP2011170597A (ja) * | 2010-02-18 | 2011-09-01 | Nippon Telegr & Teleph Corp <Ntt> | データ抽出装置、データ抽出方法、および、データ抽出プログラム |
JP2022522214A (ja) * | 2019-03-01 | 2022-04-14 | アイオー タホ エルエルシー | 移動中のデータの処理技術 |
JP7433335B2 (ja) | 2019-03-01 | 2024-02-19 | ヒタチ ヴァンタラ エルエルシー | 移動中のデータの処理技術 |
CN113553455A (zh) * | 2020-04-26 | 2021-10-26 | 阿里巴巴集团控股有限公司 | 数据的处理方法、装置、存储介质和处理器 |
CN114817147A (zh) * | 2022-07-01 | 2022-07-29 | 北京网藤科技有限公司 | 一种通过二级索引进行文件特征值快速检索的方法和系统 |
CN118394714A (zh) * | 2024-06-26 | 2024-07-26 | 湖南交通物流信息服务有限公司 | 一种加密文件索引快速构建与存储方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9929990B2 (en) | Inserting content into an application from an online synchronized content management system | |
KR102059844B1 (ko) | 정보처리장치, 표시방법, 및 기억매체 | |
US9495782B2 (en) | Integrated media browse and insertion | |
US7272792B2 (en) | Kana-to-kanji conversion method, apparatus and storage medium | |
JP2018518733A (ja) | ファイル操作方法及び装置 | |
JPH11195025A (ja) | ドキュメントデータのリンク付け装置、リンク先アドレスの表示/アクセス装置、及びリンク付けされたドキュメントデータの配付装置 | |
CN114416667B (zh) | 快速分享网盘文件的方法、装置、网盘及存储介质 | |
CN104462030B (zh) | 字符转换装置、字符转换方法 | |
JP2007241378A (ja) | 検索装置及びそのプログラム | |
JP5516918B2 (ja) | 画像要素検索 | |
JP2002108671A (ja) | コンピュータ処理システムにおいてカスタマイズした情報を提供する方法とシステム | |
US12086106B2 (en) | Method and apparatus for providing metadata sharing service | |
CN104050207B (zh) | 信息处理装置和文件管理系统 | |
JP7033115B2 (ja) | クリップボードデータに基づく検索処理方法および装置 | |
JP2012159917A (ja) | 文書管理システム、文書管理方法、及びプログラム | |
JP2007122398A (ja) | フラグメントの同一性判定方法およびコンピュータプログラム | |
CN114816646B (zh) | 适用于网盘盘符的快捷操作方法、装置、终端及存储介质 | |
CN105354506A (zh) | 隐藏文件的方法和装置 | |
RU2446460C1 (ru) | Способ и система фильтрации веб-контента | |
JP5880637B2 (ja) | 情報処理装置、その制御方法、及びプログラム、並びに情報処理システム、その制御方法、及びプログラム | |
CN108710661B (zh) | 一种基于内存顺序表实现文本文件的数据管理方法和装置 | |
JP4057997B2 (ja) | スクリプト付き文書処理装置、文書取得装置、スクリプト付き文書処理システム、スクリプト付き文書処理方法およびその方法をコンピュータに実行させるためのプログラム | |
JP6840808B1 (ja) | プログラム及び情報処理装置 | |
JPH09160822A (ja) | アクセス権機能つきハイパーテキスト | |
JPH11110100A (ja) | データ処理システムおよびデータ処理システムを動作させる方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100629 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101026 |