説明

検索処理方法及び装置

【課題】順序付けされた複数の検索条件に合致するレコード系列を抽出する際にマッチング回数を削減する。
【解決手段】本方法は、各々特定の項目に対して特定の値が指定されており且つ順序付けがなされた複数の検索条件を含む検索指示に基づき、特定の項目の各項目値にフラグを付与し、フラグ定義データとして格納する工程と、検索対象である複数のレコードを所定のルールに従ってソートする工程と、ソート後の複数のレコードの順番に、フラグ定義データを用いて、処理に係るレコードにおける特定の項目の項目値に対応するフラグを特定する工程と、ソート後の複数のレコードの順番にフラグを特定している過程において、特定されたフラグの出現態様が、検索指示に従ったものであるか判断する工程と、フラグの出現態様が検索指示に従っていると判断された場合には、当該フラグの出現態様に含まれるフラグに係るレコードのデータを出力する工程とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベースに対する検索処理技術に関する。
【背景技術】
【0002】
例えば、日本特許第3581831号公報には、以下のような技術が開示されている。以下、図1に示すようなリレーショナルデータベース(RDB)のデータが存在する場合について具体的に説明する。図1は、売上履歴テーブルの一部を示しており、顧客ID、日時、商品、金額、店舗コードという項目(属性)の各々について、各項目値を含む19のレコードを含むものである。なお、rowidは、説明の都合示している行番号(レコード番号とも呼ぶ)である。
【0003】
図1のようなデータを、上記特許では図2に示すようなデータとして保持する。すなわち、ROOT配列9001と、顧客IDという項目に関するPOS配列9002及びvalueテーブル9003と、日時という項目に関するPOS配列9004及びvalueテーブル9005と、商品名という項目に関するPOS配列9006及びvalueテーブル9007とが含まれる。ROOT配列9001は、各POS配列において参照すべき行番号を保持する配列である。顧客IDについては、valueテーブル9003が顧客IDの項目値(001乃至007)を一意に特定しており、POS配列9002は、各行(すなわちposition)にROOT配列9001において対応する行に格納されたレコード番号のレコードについて参照すべきvalueテーブル9003における行へのポインタを保持している。例えばPOS配列9002の1行目であれば、レコード1についてのデータであって、POS配列9002の保持する「1」は、valueテーブル9003の1行目を参照して、顧客IDが「001」であることが分かる。同様に、日時については、valueテーブル9005が日時の項目値(3/1 10:00乃至3/9 19:00)を一意に特定しており、POS配列9004は、各行(すなわちposition)にROOT配列9001において対応する行に格納されたレコード番号のレコードについて参照すべきvalueテーブル9005における行へのポインタを保持している。商品名についても、valueテーブル9007が商品名の項目値(DVD SOFT乃至冷蔵庫)を一意に特定しており、POS配列9006は、各行(すなわちposition)にROOT配列9001において対応する行に格納されたレコード番号のレコードについて参照すべきvalueテーブル9007における行へのポインタを保持している。
【0004】
すなわち、各項目において、項目値を一意で特定する項目値番号と当該項目値との関係を保持するvalueテーブルと、レコードの順番に項目値番号を指定する情報が格納されている項目値番号指定情報配列とを保持するようなデータ構造である。
【0005】
このようなデータ構造を保持することによって、例えば顧客IDが「001」についてのレコードを抽出する場合には、valueテーブル9003において「001」が保持されている行の行番号(「1」)を特定し、当該行番号を保持するPOS配列9002における行の行番号(1,2,10,14)が抽出すべきレコード番号となる。
【0006】
ここで、図1に示した売上履歴テーブルにおいて、「HDDレコーダ」、「DVDプレーヤー」又は「TV(テレビ)」を購入した後、何らかの「SOFT」を購入し、さらに「DVD−R」又は「CD−RW」を購入した顧客を抽出するような検索を行うことを考える。
【0007】
上記公報には直接このような検索の仕方は開示されていないが、通常であれば以下のような手順を行う必要がある。まず、顧客ID毎且つ日時順にソートを行う。図1のようなRDBでは、データ量が多い場合にはこのようなソートを行うこと自体が困難であるが、図2のようなデータ構造を利用する場合には、データ量が削減されているのでソートを行うことができる。分かりやすくするため、図3に図1の形でソートした結果を示し、図4にレコード番号のみを含むソート結果を示す。図4のソート結果は、SET配列9011として保持され、レコード1、レコード2,レコード10、レコード14、...といった順番にソートされている。このレコード番号をSETIDとも呼ぶ。
【0008】
そして、第1段階として「HDDレコーダ」、「DVDプレーヤー」又は「TV」のいずれかに該当するレコードを抽出する。その場合には、図5に示すように、SET配列9011の上から順番に、商品名についてのPOS配列9006を参照して該当する項目値番号を読み出し、テーブル9007において当該項目値番号の位置の項目値を特定して、上記の第1の条件に合致するか判断する。SET配列9011における1番目のレコード番号は「1」であり、POS配列9006における第1番目の項目値番号である「5」を特定して、テーブル9007における5番目の項目値を読み出すと「TV」であり、上記の第1の条件に合致するため、レコード番号「1」が抽出される。例えば、SET配列9011における3番目のレコード番号は「10」であり、POS配列9006における10番目の項目値番号である「1」を特定して、テーブル9007における1番目の項目値を読み出すと「DVD SOFT」であるから、上記の第1の条件を満たしておらず、レコード番号「10」は抽出されない。このような処理を繰り返す。
【0009】
そうすると、図6の配列9021のようなSETID列を得ることができる。これだけでは、具体的内容が分かりにくいので、抽出された具体的なレコードの内容をテーブル9022に示す。しかし、このデータだけでは第2の条件を満たしているかは不明であるので、再度SET配列9011のデータを参照しなければならない。
【0010】
具体的には、図6の配列9021からレコード番号を得ると、図4のSET配列9011において次の順番のレコード番号を特定する。例えばレコード番号「1」であれば、レコード番号「2」が特定される。そして、商品名についてのPOS配列9006を参照して、特定されたレコード番号の位置における項目値番号を読み出し、テーブル9007において項目値番号の位置の項目値を特定して、上記の第2の条件に合致するか判断する。レコード番号「2」が特定されれば、POS配列9006の2番目の項目値番号である「4」を読み出し、項目値番号「4」の位置の項目値である「HDDレコーダ」を特定して、第2の条件である「SOFT」と比較する。この場合には、合致しないという判断が行われる。同様に、配列9021の2番目のレコード番号「2」であれば、SET配列9011において次のレコード番号は「10」である。レコード番号「10」に従ってPOS配列9006の10番目の項目値番号「1」を読み出し、テーブル9007において項目値番号「1」の位置の項目値である「DVD SOFT」を特定して、第2の条件である「SOFT」と比較する。この場合には、合致するという判断が行われる。
【0011】
上で述べたような処理は図7にまとめられている。図7には、次のレコードについてのSET配列9031と、対応するデータテーブル9032と、商品名という項目についてのPOS配列9006及びvalueテーブル9007とが示されている。次のレコードについてのSET配列9031及びデータテーブル9032において、ハッチングが付された行については、第2の条件を満たしておらず、結果としてレコード番号10、レコード番号9、レコード番号17が抽出される。
【0012】
なお、説明を省略したが、同一顧客が第1乃至第3の条件を順番に満たす必要があるので、一人の顧客について最低でも3レコード必要であって、次のレコードが存在しない場合には処理の対象外となる。例えば次のレコードについてのSET配列9031の最下行には次のレコードが存在しない場合を示しており「−」が記録されている。
【0013】
このように第1の条件を満たすレコード番号を格納した配列9021が抽出されても、次のレコードを抽出するために再度SET配列9011にアクセスする必要があり、次のレコードについてのSET配列9031については、第2の条件に合致するか否かを再度確認する必要がある。
【0014】
さらに、第3の条件を満たしているかを確認するために、再度SET配列9011のデータを参照しなければならない。
【0015】
具体的には、図7に示した次のレコードについてのSET配列9031においてハッチングが付されていないレコード番号「10」、レコード番号「9」及びレコード番号「17」のそれぞれについて、再度SET配列9011において次の順番のレコード番号を特定する。例えば、レコード番号「10」の次のレコードのレコード番号は、図8において次の次のレコードについてのSET配列9041に示すように、レコード番号「14」であり、レコード番号「9」の次のレコードのレコード番号は、同様にレコード番号「18」であり、レコード番号「17」の次のレコードのレコード番号は、存在しない。
【0016】
次に、商品名についてのPOS配列9006を参照して、特定されたレコード番号の位置における項目値番号を読み出し、テーブル9007において項目値番号の位置の項目値を特定して、上記の第3の条件に合致するか判断する。すなわち、POS配列9006においてレコード番号「14」の位置における項目値番号「2」を読み出し、valueテーブル9007において項目値番号「2」の項目値「DVD−R」を特定して、上記の第3の条件と比較して、合致すると判断する。また、POS配列9006においてレコード番号「18」の位置における項目値番号「2」を読み出し、valueテーブル9007において項目値番号「2」の項目値「DVD−R」を特定して、上記の第3の条件と比較して、合致すると判断する。
【0017】
すなわち、顧客ID「1」についてレコード番号「2」、レコード番号「10」及びレコード番号「14」の系列と、顧客ID「4」についてレコード番号「6」、レコード番号「9」及びレコード番号「18」の系列とが抽出されることになる。
【0018】
このように第2の条件を満たすレコード番号を格納した配列(次のレコードのSET配列9031の一部)が抽出されても、次のレコードを抽出するために再度SET配列9011にアクセスする必要があり、次の次のレコードについてのSET配列9041については、第3の条件に合致するか否かを再度確認する必要がある。
【0019】
このように少ないレコード数であればそれほどマッチング回数は増加しないが、1レコードについて何回もマッチングの是非について判断する必要があり、レコード数が膨大になればマッチング回数も膨大となるという問題がある。
【0020】
なお、特開2000−20527号公報には、データベースシステムで、条件検索の検索結果を再利用するための行位置情報の格納方法を、検索のヒット率により切りわけることで領域を最小化し、検索を高速に行うための技術が開示されている。具体的には、検索処理時、データベース管理プログラムが処理中の検索と一致する検索条件を検索結果管理テーブルに発見した場合、対応する検索結果位置情報を参照することで、一致した検索条件についてのデータベースの検索を不要とするものである。しかしながら、上記のような問題を解決することはできない。
【0021】
また、特開2005−251002号公報には、基になるデータベースの構造は従来どおりとし、検索結果ファイルが一旦生成された後も絞り込み検索などのための再検索を可能とするための技術が開示されている。具体的には、所定の検索条件に該当するデータをデータベースから抽出し、その抽出データのデータベース上の格納場所を示すロケータを含む検索結果ファイルを生成する。再検索の際にはロケータによりデータベースを参照して再検索用データを取得し、再検索条件に該当するデータを抽出し、新たな検索結果ファイルとして生成する。この公報でも上記のような問題を解決することはできない。
【特許文献1】日本特許第3581831号公報
【特許文献2】特開2000−20527号公報
【特許文献3】特開2005−251002号公報
【発明の開示】
【発明が解決しようとする課題】
【0022】
このように従来技術では、購買履歴等を抽出する際などに生ずる、順序付けされた複数の検索条件に合致するレコード系列を抽出する処理において、膨大な数に上るレコードについてのマッチング回数を減らして、処理を高速化することはできない。
【0023】
従って、本発明の目的は、順序付けされた複数の検索条件に合致するレコード系列を抽出する際にレコードに対するマッチング回数を削減するための技術を提供することである。
【課題を解決するための手段】
【0024】
本発明に係る検索処理方法は、各々特定の項目に対して特定の値が指定されており且つ順序付けがなされた複数の検索条件を含む検索指示に基づき、特定の項目の各項目値にフラグを付与し、フラグ定義データとして記憶装置に格納するフラグ付与ステップと、データベースに格納されており且つ検索対象である複数のレコードを所定のルール(例えば時系列)に従ってソートするソート・ステップと、ソート後の複数のレコードの順番に、記憶装置に格納されたフラグ定義データを用いて、処理に係るレコードにおける特定の項目の項目値に対応するフラグを特定するフラグ特定ステップと、ソート後の複数のレコードの順番にフラグを特定している過程において、特定されたフラグの出現態様(例えばフラグの出現順番や検出の連続性など)が、検索指示に従ったものであるか判断する判断ステップと、フラグの出現態様が検索指示に従っていると判断された場合には、当該フラグの出現態様に含まれるフラグに係るレコードのデータを出力するステップとを含む。
【0025】
このような処理を実施すれば、従来ではデータベースのレコードと検索条件とがマッチングするか否かを何度も判断するような処理が、データベースのレコード群を検索指示に基づくフラグ系列に変換してフラグの出現態様が検索指示に従ったものであるかを確認する処理に変換され、マッチング処理の回数が削減され処理が効率化される。
【0026】
また、上で述べたフラグ付与ステップが、特定の検索条件に含まれる、特定の項目の特定の値に対応し且つデータベース内のレコードに含まれる特定の項目の項目値を特定するステップと、特定された項目値に、特定の検索条件の順序付けに応じたフラグを付与するステップとを含むようにしてもよい。従来では、検索条件に含まれる項目値とレコードの項目値とを一致しているか否か、部分一致か否かなどを同じレコードについても何度も判断する必要があるが、最初のステップを実施すれば、項目値間の比較の処理の実施回数が最大でも検索条件に含まれる項目値の種類数×データベース内の項目値の種類数に限定され、簡略化される。また、次のステップを実施すれば、フラグが順序付けを表すようになるため、フラグの出現態様を判断しやすくなる。
【0027】
さらに、上で述べた判断ステップが、特定されたフラグに応じて、順序付けに応じて定義される状態間の遷移が発生するか判断するステップと、状態間の遷移が発生した場合には、最終状態まで到達したか判断するステップとを含むようにしてもよい。このように状態遷移を管理することによって、フラグの出現態様が検索指示に従っているかを正確且つ簡易に判断できるようになる。また、状態間の遷移の条件を適切に定義することによって、多様な検索指示に対処できるようになる。
【0028】
なお、所定のルールを、検索指示で指定されたグループ項目毎且つ時系列という条件としてもよい。この場合、上記判断ステップにおいて、グループ項目における同一の項目値内においてフラグの出現態様を判断するようにしてもよい。顧客の購買履歴の検索などは、このような処理を行えばよい。
【0029】
さらに、上記データベースが、各項目において、項目値を一意で特定する項目値番号と当該項目値との関係を保持するテーブルと、レコードの順番に項目値番号を指定する情報が格納されている項目値番号指定情報配列とを保持するようにしてもよい。このようなデータ構造を用いることによって、ソート処理が簡易且つ高速に実施できる。
【0030】
また、上記フラグが、該当する検索条件の前記順序付けに応じたビット位置に1がセットされたビット列であるようにしてもよい。より高速にフラグの出現態様を判断できるようになる。
【0031】
なお、上で述べたフラグ特定ステップを、データベースに格納されており且つ検索対象である複数のレコードに1回のみ実施すれば、マッチング処理の回数が削減できる。
【0032】
本発明にかかる方法をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してディジタル信号にて頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【発明の効果】
【0033】
本発明によれば、順序付けされた複数の検索条件に合致するレコード系列を抽出する際にレコードに対するマッチング回数を削減することができるようになる。
【発明を実施するための最良の形態】
【0034】
図9に本発明の一実施の形態に係るシステム概要図を示す。例えばLAN(Local Area Network)などのネットワーク1には、1又は複数のユーザ端末3と、データベース(DB)を管理するDBサーバ5とが接続されている。ここでは、DBサーバ5は、1台のコンピュータで実施する場合を示すが、複数台のコンピュータによって実施するようにしても良い。また、DBサーバ5は、1種類だけではなく複数種類のデータベースを管理する場合もある。
【0035】
本実施の形態では、レコードのソートを行うことを前提とするので、通常のRDBでは処理速度及び記憶容量の面で実際的ではなく、図2に示したようなデータ構造(以下、FAST構造と呼ぶ)でデータを管理しているものとする。FAST構造で管理されたデータは、FAST構造データ格納部56に格納されているものとする。
【0036】
DBサーバ5は、ネットワーク1を介してユーザ端末3からの検索指示を受信する検索指示受信部51と、検索指示受信部51が受信した検索指示に係るデータを格納する検索指示データ格納部52と、検索指示データ格納部52に格納されているデータを用いてイベント判定処理を行うイベント判定処理部53と、イベント判定処理部53の処理結果を格納するイベント管理テーブル格納部54と、検索指示データ格納部52とイベント管理テーブル格納部54とFAST構造データ格納部56とに格納されたデータを用いて処理を行う検索前処理部55と、検索前処理部55による処理結果であるイベント履歴条件テーブルを格納するイベント履歴条件テーブル格納部57と、検索前処理部55の処理結果であるソート結果のデータを格納するソート結果格納部58と、FAST構造データ格納部56とソート結果格納部58とイベント履歴条件テーブル格納部57とに格納されているデータを用いて検索前処理部55の指示に従って検索処理を行い該当データを抽出する検索処理部59と、検索処理部59による処理結果を格納する検索結果格納部60と、検索結果格納部60に格納されたデータを要求元のユーザ端末3に出力する検索結果出力部61とを含む。なお、検索処理部59は、検索前処理部55による設定に基づき状態遷移の管理を行う状態遷移管理部591を含む。
【0037】
次に、図9に示したシステムの動作を図10乃至図24を用いて説明する。なお、従来技術で説明した具体例をそのまま用いて説明する。すなわち、図2に示したようなデータ構造がFAST構造データ格納部56に格納されており、「HDDレコーダ」、「DVDプレーヤー」又は「TV(テレビ)」を購入した後、何らかの「SOFT」を購入し、さらに「DVD−R」又は「CD−RW」を購入した顧客を抽出するような検索を行うことを考える。なお、FAST構造に係るデータは、図1に示した売上履歴テーブルと同様の内容を保持している。
【0038】
まず、ユーザ端末3のユーザは、ユーザ端末3を操作して、DBサーバ5にアクセスし、検索指示の入力画面を表示装置に表示させる。例えば、図10に示すような画面が表示装置に表示される。図10の画面例では、検索対象のテーブル名、種別並びに開始SETID及びレコード数の表示/指定欄301と、ソートの際にグループ化する項目であるグループ項目、ソートする項目であるソート項目及び検索条件であるイベントを指定するための抽出条件指定欄302と、抽出条件指定欄302において複数のイベントが指定された場合に当該イベント間の順序関係を指定するためのイベント順序条件指定欄303と、検索条件に合致したレコードについて抽出すべき項目を指定するための抽出項目指定欄304とを含む。なお、上で述べた条件のとおり、抽出条件であるイベント1では、商品名が「テレビ」「HDDレコーダ」又は「DVDプレーヤー」であることが条件として指定されている。同様に、イベント2では、商品名が「SOFT」に類似することが条件として指定されており、イベント3では、商品名が「DVD−R」又は「CD−RW」であることが条件として指定されている。イベント順序については、昇順、降順、全組合せ(全順列)、任意指定などを行うことができるようになっており、上で述べた条件では、昇順が選択される。なお、任意指定では、様々な順序条件を指定することができ、E1,(E2,E3)は、E1,E2,E3と、E1,E3,E2という順序条件を指定したことになる。
【0039】
ユーザは、図10のような画面において必要な条件を指定して、OKボタン305をクリックすると、ユーザ端末3は当該指示を受け付け、検索指示としてDBサーバ5に送信する。検索指示には、検索対象のデータ、抽出条件(グループ項目、ソート項目、イベント群)、抽出順序条件及び抽出項目を含む。なお、図10では指定できないが、他の条件を付加するようにしても良い。
【0040】
DBサーバ5の検索指示受信部51は、ユーザ端末3から検索指示を受信し、当該検索指示に係るデータを検索指示データ格納部52に格納する(図11:ステップS1)。そうすると、イベント判定処理部53は、検索指示データ格納部52に格納された検索指示に係るデータを用いてイベント判定処理を実施する(ステップS3)。このイベント判定処理については、図12及び図13を用いて説明する。まず、イベント判定処理部53は、検索指示データ格納部52に格納されているイベントのうち未処理のイベントを特定し(ステップS11)、項目名と項目値のセットを当該未処理のイベントから抽出し、イベント管理テーブルに登録する(ステップS13)。イベント管理テーブル格納部54に格納されるイベント管理テーブルの一例を図13に示す。図13の例では、イベントと、項目名と、項目値とが登録されるようになっている。なお、同一イベントでも、項目名及び項目値の複数の組み合わせが指定される場合もあり、その場合には同一イベントに複数行のデータが登録される。上で述べた具体的な条件の場合には、図13に示したようなデータがイベント管理テーブルに登録される。
【0041】
そして、イベント判定処理部53は、全てのイベントを処理したか判断し(ステップS15)、未処理のイベントが存在する場合にはステップS11に戻る。一方、全てのイベントについて処理した場合には元の処理に戻る。
【0042】
図11の説明に戻って、次に検索処理を実施する(ステップS5)。検索処理については、図14乃至図23を用いて説明する。
【0043】
まず、検索前処理部55は、イベント管理テーブル格納部54に格納されているイベント管理テーブルから各イベントに使用される項目名を特定し、当該項目名毎に、全項目値をFAST構造データ格納部56から取得し、項目名毎にイベント履歴条件テーブルを構成する(図14:ステップS21)。具体的には、図15にイベント履歴条件テーブルの一例を示す。上で述べた条件では、項目は「商品名」であるから、図2のvalueテーブル9007を取得する。図15に示したイベント履歴条件テーブルでは、このvalueテーブル9007に含まれる項目値を各行としており、状態遷移を表すための状態S1乃至S8の列と、イベントフラグ(FLG)の列とが設けられている。なお、イベント履歴条件テーブルは、イベント管理テーブルに格納されているイベントと状態とを対応付けることができるような構成にもなっている。
【0044】
次に、検索前処理部55は、イベント管理テーブル格納部54内のイベント管理テーブル及び検索指示データ格納部52を参照して、各状態についてイベントを対応付けると共に該当する項目値にフラグをセットし、各項目値についてのイベントフラグを生成する(ステップS23)。
【0045】
検索指示データ格納部52には、処理に係る検索指示におけるイベントの順序条件が格納されている。この順序条件に従って、イベントと状態との対応付けを行う。上で述べた条件においては、イベント1(E1)、イベント2(E2)、イベント3(E3)の順番で検索を行うので、状態S1とイベント1、状態S2とイベント2、状態S3とイベント3とが対応付けられ、イベント履歴条件テーブルに登録される。ここまで処理すると、イベント履歴条件テーブルは図16に示すような状態となる。なお、状態S4乃至S8は今回はイベントとの対応付けはないので、ハッチングが付されて、各状態におけるフラグは「0」にセットされている。
【0046】
さらに、各状態について該当する項目値にフラグをセットする。上で述べた条件においては、イベント1(E1)では、「DVDプレーヤー」、「HDDレコーダ」又は「TV」が指定されているので、該当する項目値として「DVDプレーヤー」、「HDDレコーダ」及び「TV」を特定する。さらに、それぞれの行においてイベント1に対応する状態S1の列に「1」をセットし、それ以外については「0」をセットする。
【0047】
なお、検索条件において指定されている項目値と、実際にデータベースに登録されている項目値とは完全一致しない場合もある。本実施の形態では、レコード毎に項目値間の一致/不一致を判断するのではなく、この段階においてvalueテーブル9007に登録されている項目値と検索条件において指定されている項目値との一致/不一致を判断するので、後の処理が簡略化される。
【0048】
同様に、イベント2(E2)では、「SOFT」が指定されているので、該当する項目値として「DVD SOFT」が特定される。このように、完全一致が存在しない場合にはレコード毎に比較する従来技術に比して、後の処理は効率化される。そして、「DVD SOFT」の行においてイベント2に対応する状態S2の列に「1」をセットし、それ以外については「0」をセットする。
【0049】
イベント3(E3)では、「DVD−R」又は「CD−RW」が指定されているので、該当する項目値として「DVD−R」のみが特定される。このように、完全に不一致の項目値を含む検索条件が指定されている場合には、レコード毎の比較は非常に非効率であることが分かる。そして、「DVD−R」の行においてイベント3に対応する状態S3の列に「1」をセットし、それ以外については「0」をセットする。
【0050】
そして、状態S1乃至S8までにセットされたフラグのビットを2進数のビット列として取り扱う。なお、イベントの順序が早いほど下位ビットに「1」がセットされ、遅いほど上位ビットに「1」がセットされる。このように、イベントの順番に応じたイベントフラグが設定される。同じ順番であれば異なる項目値であっても同じイベントフラグが設定される。図17では、このビット列を、10進数の値に直した値をイベントフラグ(FLG)の列に示している。但し、2進数のままでもよい。
【0051】
ここまででイベント履歴条件テーブルが完成するので、このイベント履歴条件テーブルのデータをイベント履歴条件テーブル格納部57に格納する。なお、後に説明するが、valueテーブル9007の代わりとなるテーブルが必要となるので、図18のようなテーブル501を生成して、イベント履歴条件テーブル格納部57に格納しておく。
【0052】
その後、検索前処理部55は、FAST構造データ格納部56を参照して、FAST構造の検索対象データを、検索指示データ格納部52に格納されているグループ項目及びソート項目に応じてソートを実施し、ソート結果をソート結果格納部58に格納する(ステップS25)。この処理自体は従来技術と同様である。ソート結果格納部58に格納されるデータは、図4に示したようなデータである。
【0053】
また、検索前処理部55は、状態遷移の条件を検索指示に従って、状態遷移管理部591に設定する(ステップS27)。以下で詳細に説明するが、状態遷移の条件は、様々に設定できる。例えば、上の例では、イベント1の次にイベント1が発生した場合の取扱いや、イベント1の次にイベント1乃至3のいずれでもないイベントが発生した後にイベント2が発生した場合の取扱いなど、検索者の意図に沿って状態遷移の条件を設定すべき場合もある。ここでは、検索指示に、イベント1の次にイベント1乃至3のいずれでもないイベントが発生した後にイベント2が発生した場合等の取扱いについて指示があれば、状態遷移管理部591に設定する。ステップS27は、デフォルトの設定に従う場合にはスキップされる場合もある。なお、イベント数によって状態数が確定するので、当該状態数の設定は必ず行われる。処理は端子Aを介して図20の処理に移行する。
【0054】
状態遷移管理部591により管理される状態及び状態遷移を図19を用いて説明する。必要な状態は、イベント1乃至3に対応する状態S1乃至S3と、初期状態S0である。なお、状態S3は、最終状態として特定される。イベント数が増加すれば、その分状態は増加し、イベント数が減少すれば、その分状態は減少する。また、状態遷移は、イベント1の検索条件が満たされた場合に発生する初期状態S0から状態S1への状態遷移Aと、イベント2の検索条件が満たされた場合に発生する状態S1から状態S2への状態遷移Bと、イベント3の検索条件が満たされた場合に発生する状態S2から状態S3への状態遷移Dと、最終状態である状態S3への到達が確認された場合に発生する状態S3から初期状態S0への状態遷移Fと、初期状態S0においてイベント1の検索条件が満たされない場合に発生する初期状態S0から初期状態S0への状態遷移Gと、状態S1においてイベント1の検索条件が再度満たされた場合に発生する状態S1から状態S1への状態遷移Cと、状態S2においてイベント2の検索条件が再度満たされた場合に発生する状態S2から状態S2への状態遷移Eと、状態S1においてイベント1又は2の条件が満たされなかった場合に発生する状態S1から状態S0への状態遷移Hと、状態S2においてイベント2又は3の条件が満たされなかった場合に発生する状態S2から状態S0への状態遷移Iとを含む。このように、初期状態から途中の状態を介して最終状態へ至る状態遷移と、最終状態以外の状態においてその状態への遷移が発生した場合に生ずる自己遷移と、最終状態に到達したことが確認された場合に生ずる最終状態から初期状態への状態遷移と、次の状態への状態遷移又は自己遷移とのいずれもが発生しなかった場合における初期状態への状態遷移とが含まれる。
【0055】
なお、自己遷移及び初期状態への状態遷移の条件を検索指示に応じて設定することで、フレキシブルな抽出を行うことができる。例えば、それより後の状態への遷移を発生させる条件が満たされされない限り自己遷移するように設定してもよい。例えば、「HDDレコーダ」、「DVD−SOFT」、「DVD−R」の順番で購入すれば、上で述べた条件を満たすことになるが、「HDDレコーダ」、「冷蔵庫」、「DVD−SOFT」、「DVD−R」の順番で購入すると、上で述べた条件を満たしたことにはならない。但し、「冷蔵庫」のレコードが検出されても初期状態へ遷移することなく自己遷移するようにすれば、後者のような購買履歴でも条件を満たすと判断される。すなわち、大きく購買履歴を捉えて、概ね目的とする購買履歴を行っている顧客を抽出できるようになる。
【0056】
次に、検索処理部59は、ソート結果格納部58に格納されているレコード(図4)から未処理レコードを特定する(図20:ステップS29)。そして、特定された未処理レコードのグループ項目の項目値を特定する(ステップS31)。特定された未処理レコードのレコード番号(SETID)を用いて、FAST構造データ格納部56に格納されている、顧客IDについてのPOS配列9002から対応する位置の項目値番号を読み出し、当該項目値番号に基づきvalueテーブル9003から項目値を取得する。
【0057】
そして、検索処理部59は、ステップS31で特定された未処理レコードのグループ項目の項目値が変化したか判断する(ステップS33)。従前に処理したレコードのグループ項目の項目値を保持しておき、変化したか判断する。これは、検索条件を満たしているかは、グループ項目が同一の項目値である間のレコードについて判断すべきであるからである。なお、従前に処理したレコードが存在しない場合には、変化したと判断される。
【0058】
もし変化したと判断された場合には、状態遷移管理部591に初期状態S0に遷移させる(ステップS35)。ステップS35の後又はグループ項目の項目値が変化していないと判断された場合には、特定された未処理レコードのイベントフラグを特定する(ステップS37)。この処理については、図21を用いて説明する。
【0059】
まず、ソート結果格納部58に格納されたSET配列9011から未処理レコードを特定すると、その未処理レコードのレコード番号を特定し、FAST構造データ格納部56に格納されている、商品名についてのPOS配列9006において、レコード番号の位置の項目値番号を特定し、従前のvalueテーブル9007の代わりに、イベントフラグテーブル501における項目値番号の位置のイベントフラグを特定する。SETIDが「1」であれば、POS配列9006において項目値番号が「5」と特定されるが、valueテーブル9007から「TV」を特定するのではなく、イベントフラグテーブル501からイベントフラグ「1」(2進数で「00000001」)を特定する。
【0060】
図20の説明に戻って、状態遷移管理部591は、特定されたイベントフラグに応じた状態遷移を実施する(ステップS41)。なお、状態遷移に係るレコードのレコード番号(SETID)を保持しておく。保持しておくレコード番号は、初期状態から最終状態への直接の経路上の状態遷移に係るレコードのレコード番号だけでもよい。図19の例では、状態遷移A、状態遷移B及び状態遷移Dを生じさせたレコードのレコード番号である。このように特定の状態遷移の発生の有無を判断する場合もある。
【0061】
どのような状態遷移が発生するかは、現在の状態が何であるか、特定されたイベントフラグが何であるかに依存する。図19に示したような状態及び状態遷移の場合、初期状態S0から状態S1への状態遷移Aは、初期状態S0において、イベントフラグ(2進ビット列)の最下位ビット(第8ビット)が「1」となっているイベントフラグが特定された場合に生ずる。状態S1から状態S2への状態遷移Bは、状態S1において、イベントフラグの第7ビットが「1」となっているイベントフラグが特定された場合に生ずる。状態S2から状態S3への状態遷移Dは、状態S2において、イベントフラグの第6ビットが「1」となっているイベントフラグが特定された場合に生ずる。状態S1における自己遷移である状態遷移Cは、イベントフラグの最下位ビットが「1」となっているイベントフラグが特定された場合に生ずる。状態S2における自己遷移である状態遷移Eは、イベントフラグの第7ビットが「1」となっているイベントフラグが特定された場合に生ずる。状態S3から状態S0への状態遷移Fは、以下で説明する処理において管理されるが、それ以外の状態遷移G、H及びIについては、上で述べた以外のイベントフラグが特定された場合に生ずる。なお、上で述べたように、自己遷移については、別の定義で行うようにしても良い。
【0062】
このように、現在の状態及びイベントフラグの所定のビットを検査するだけで状態遷移が発生するか否かを判断することができる。
【0063】
図20の説明に戻って、状態遷移管理部591は、最終状態に到達したか判断する(ステップS43)。図19の例では、最終状態S3に達したかを判断する。最終状態には到達していないと判断された場合にはステップS49に移行する。一方、最終状態に到達したと判断された場合には、今回の状態遷移に対応するレコード番号を検索結果格納部60内の抽出イベントテーブルに登録する(ステップS45)。抽出イベントテーブルは、例えば図22に示すようなテーブルである。すなわち、抽出番号(No.)と、状態S1への状態遷移を発生させたレコード番号(SETID)、状態S2への状態遷移を発生させたレコード番号、状態S3への状態遷移を発生させたレコード番号が登録されるようになっている。状態遷移管理部591は、その後、初期状態S0への状態遷移を実施させる(ステップS47)。
【0064】
ステップS47の後又はステップS43で最終状態に到達していないと判断された場合、検索対象レコードの最終レコードを処理したか判断する(ステップS49)。未処理のレコードが存在する場合にはステップS29に戻る。一方、最終レコードを処理した場合には、元の処理に戻る。
【0065】
図4のようなソート結果を得た場合におけるステップS29乃至S49の処理の経過を図23にまとめて示す。1番目のレコードのイベントフラグは「1」であり、最下位(第8)ビットが「1」となっているので、初期状態S0から状態S1への状態遷移を発生させる。2番目のレコードのイベントフラグは「1」であり、第8ビットが「1」となっているので、自己遷移で状態S1への状態遷移を発生させる。3番目のレコードのイベントフラグは「2」であり、第7ビットが「1」となっているので、状態S2への状態遷移を発生させる。4番目のレコードのイベントフラグは「4」であり、第6ビットが「1」となっているので、状態S3への状態遷移を発生させる。すなわち、最終状態に到達したので、図4のSET配列9011において1番目、3番目及び4番目のレコード番号が出力される。なお、2番目のレコードは自己遷移を発生させているので、2番目、3番目、4番目のレコード番号を出力するようにしても良い。そして、初期状態S0に遷移する。
【0066】
なお、5番目のレコードを処理する際には、グループ項目である顧客IDが変化するので、初期状態S0に強制的に遷移させる。また、5番目のレコードのイベントフラグは「0」であり、初期状態S0への自己遷移が発生する。6番目のレコードのイベントフラグは「0」であり、初期状態S0への自己遷移が発生する。7番目のレコードのイベントフラグは「1」であり、初期状態S0から状態S1への状態遷移を発生させる。8番目のレコードのイベントフラグは「0」であり、初期状態S0への状態遷移を発生させる。
【0067】
なお、9番目のレコードを処理する際には、グループ項目である顧客IDが変化するので、初期状態S0に強制的に遷移させる。また、9番目のレコードのイベントフラグは「1」であり、初期状態S0から状態S1への状態遷移を発生させる。10番目のレコードのイベントフラグは「1」であり、状態S1への自己遷移が発生する。11番目のレコードのイベントフラグは「4」であり、状態S1から初期状態S0への遷移が発生する。
【0068】
なお、12番目のレコードを処理する際には、グループ項目である顧客IDが発生するので、初期状態S0に強制的に遷移させる。また、12番目のレコードのイベントフラグは「1」であり、初期状態S0から状態S1への状態遷移を発生させる。13番目のレコードのイベントフラグは「2」であり、状態S1から状態S2への状態遷移を発生させる。14番目のレコードのイベントフラグは「4」であり、状態S2から状態S3への状態遷移を発生させる。すなわち、最終状態に到達したので、図4のSET配列9011において12番目、13番目及び14番目のレコードが出力される。そして、初期状態S0に遷移する。
【0069】
なお、15番目のレコードを処理する際には、グループ項目である顧客IDが変化するので、初期状態S0に強制的に遷移させる。また、15番目のレコードのイベントフラグは「1」であり、初期状態S0から状態S1への状態遷移を発生させる。16番目のレコードのイベントフラグは「0」であり、初期状態S0に遷移させる。
【0070】
なお、17番目のレコードを処理する際には、グループ項目である顧客IDが変化するので、初期状態S0に強制的に遷移させる。また、17番目のレコードのイベントフラグは「1」であり、初期状態S0から状態S1への状態遷移を発生させる。18番目のレコードは「2」であり、状態S1から状態S2への状態遷移を発生させる。
【0071】
なお、19番目のレコードを処理する際には、グループ項目である顧客IDが変化するので、初期状態S0に強制的に遷移させる。また、19番目のレコードのイベントフラグは「1」であり、初期状態S0から状態S1への状態遷移を発生させる。但し、これが最終レコードであるから、処理は元の処理に戻る。
【0072】
このように、項目値同士の比較はイベントフラグ設定時にのみ行って、各レコードについての処理についてはイベントフラグを特定し、イベントフラグに応じて発生する状態遷移が定義通り発生するか判断するだけになっている。イベントフラグのチェック処理についても、上で述べたようなイベントフラグを使用する場合には所定のビット位置に「1」が設定されているかを確認するだけであるから、非常に処理が簡単化されている。また、レコードに対する処理は1レコードにつき1回に限定されており、膨大な数のレコードを処理する場合にも、処理負荷を下げることができる。
【0073】
図11の説明に戻って、検索処理部59は、検索結果格納部60内の抽出イベントテーブルを基に、検索指示データ格納部52に格納されている抽出項目の項目値を、FAST構造データ格納部56から抽出し、検索結果格納部60に格納する(ステップS7)。この処理は、図2で説明したように、レコード番号から、抽出すべき項目のPOS配列内の対応する位置の項目値番号を取得し、当該項目値番号に対応する項目値をvalueテーブルから読み出す処理である。顧客ID、日時、商品名、金額、店舗コードを抽出する場合には、図24のようなデータが、検索結果格納部60に格納される。図23の例では2回登録がなされているので、それぞれについて3つのレコードが2セット抽出され、格納されている。
【0074】
そして、検索結果出力部61は、検索結果格納部60に格納されている検索結果を読み出して要求元のユーザ端末3に出力する(ステップS9)。ユーザ端末3は、DBサーバ5から検索結果のデータを受信し、表示装置に表示する。例えば図24に示したようなデータを表示装置に表示すれば、ユーザは、検索指示に合致したデータを把握することができる。
【0075】
以上のような処理を実施することによって、検索処理全体が高速化され、様々な検索指示に対応することができるようになる。
【0076】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、図9に示したDBサーバ5の機能ブロック図は一例であって、必ずしもプログラムモジュール構成に対応しない。
【0077】
また、処理フローについても処理結果が同一になる限りにおいて、並列に実行したり順番を入れ替えたりすることも可能である。例えば、ソート処理については、検索処理の早期の段階で実施しても良いし、ソート処理に時間がかかるので他の処理部などによって並列に実行させるようにしても良い。
【0078】
また、上で述べたイベントフラグの設定方法に限定されるものではなく、他の態様にてイベントフラグを設定するようにしても良い。例えば、状態遷移の発生を適切に把握できるようにするだけであれば、2進数でビットをずらす必要はなく、異なる値にするだけでよい。また、状態遷移の数が多い場合には、8ビットを超えるイベントフラグを用いる場合もある。
【0079】
また、上で述べた具体例では、グループ項目が指定されていたが、必ずしもグループ項目が指定されるわけではない。また、時系列にソートする例を示したが、ソート項目は必ずしも日時だけではなく、他の項目をソート項目に指定しても良い。また、商品名という項目だけを検索項目としているが、複数の検索項目を取り扱うことも可能である。さらに、同一イベント内において同一検索項目についてはOR条件のみ取り扱えるが、異なる検索項目間についてはAND条件なども取り扱える。AND条件を取り扱う場合には、イベントフラグを検索項目毎に別々に特定して、複数のイベントフラグの組み合わせで状態遷移を判断すればよい。例えば、商品名が「TV」で金額が「50000円以上」というイベントが定義された場合には、商品名が「TV」というフラグAと、金額が「50000円以上」というフラグBとの組み合わせが生じた場合に、当該イベントに係る検索条件を満たすと判断すればよい。例えばフラグAとフラグXとの組み合わせが特定されても、同様の状態遷移を行わなければよい。すなわち、状態遷移の定義を適切に行うことによってフレキシブルに対応できる。
【0080】
なお、ユーザ端末3やDBサーバ5は、図25のようなコンピュータ装置であって、メモリ2501(記憶装置)とCPU2503(処理装置)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施の形態における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本発明の実施の形態では、上で述べた処理を実施するためのアプリケーション・プログラムはリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0081】
(付記1)
各々特定の項目に対して特定の値が指定されており且つ順序付けがなされた複数の検索条件を含む検索指示に基づき、前記特定の項目の各項目値にフラグを付与し、フラグ定義データとして記憶装置に格納するフラグ付与ステップと、
データベースに格納されており且つ検索対象である複数のレコードを所定のルールに従ってソートするソート・ステップと、
ソート後の前記複数のレコードの順番に、前記記憶装置に格納された前記フラグ定義データを用いて、処理に係るレコードにおける前記特定の項目の項目値に対応するフラグを特定するフラグ特定ステップと、
ソート後の前記複数のレコードの順番に前記フラグを特定している過程において、特定された前記フラグの出現態様が、前記検索指示に従ったものであるか判断する判断ステップと、
前記フラグの出現態様が前記検索指示に従っていると判断された場合には、当該フラグの出現態様に含まれるフラグに係るレコードのデータを出力するステップと、
を含む、コンピュータにより実行される検索処理方法。
【0082】
(付記2)
前記フラグ付与ステップが、
特定の検索条件に含まれる、前記特定の項目の前記特定の値に対応し且つ前記データベース内のレコードに含まれる前記特定の項目の項目値を特定するステップと、
特定された前記項目値に、前記特定の検索条件の順序付けに応じたフラグを付与するステップと、
を含む付記1記載の検索処理方法。
【0083】
(付記3)
前記判断ステップが、
特定された前記フラグに応じて、前記順序付けに応じて定義される状態間の遷移が発生するか判断するステップと、
前記状態間の遷移が発生した場合には、最終状態まで到達したか判断するステップと、
を含む付記1記載の検索処理方法。
【0084】
(付記4)
前記所定のルールが、前記検索指示で指定されたグループ項目毎且つ時系列という条件であり、
前記判断ステップにおいて、前記グループ項目における同一の項目値内において前記フラグの出現態様を判断する
付記1記載の検索処理方法。
【0085】
(付記5)
前記データベースが、
各項目において、項目値を一意で特定する項目値番号と当該項目値との関係を保持するテーブルと、前記レコードの順番に前記項目値番号を指定する情報が格納されている項目値番号指定情報配列とを保持する
付記1記載の検索処理方法。
【0086】
(付記6)
前記フラグが、該当する前記検索条件の前記順序付けに応じたビット位置に1がセットされたビット列である
付記1記載の検索処理方法。
【0087】
(付記7)
前記フラグ特定ステップが、
前記データベースに格納されており且つ検索対象である前記複数のレコードに1回のみ実施される
付記1記載の検索処理方法。
【0088】
(付記8)
付記1乃至7のいずれか1つ記載の検索処理方法をコンピュータに実行させるためのプログラム。
【0089】
(付記9)
各々特定の項目に対して特定の値が指定されており且つ順序付けがなされた複数の検索条件を含む検索指示に基づき、前記特定の項目の各項目値にフラグを付与し、フラグ定義データとして記憶装置に格納する手段と、
データベースに格納されており且つ検索対象である複数のレコードを所定のルールに従ってソートする手段と、
ソート後の前記複数のレコードの順番に、前記記憶装置に格納された前記フラグ定義データを用いて、処理に係るレコードにおける前記特定の項目の項目値に対応するフラグを特定する手段と、
ソート後の前記複数のレコードの順番に前記フラグを特定している過程において、特定された前記フラグの出現態様が、前記検索指示に従ったものであるか判断する手段と、
前記フラグの出現態様が前記検索指示に従っていると判断された場合には、当該フラグの出現態様に含まれるフラグに係るレコードのデータを出力する手段と、
を有する検索処理装置。
【図面の簡単な説明】
【0090】
【図1】売上履歴テーブルの一例を示す図である。
【図2】従来技術のデータ構造を示す図である。
【図3】ソート後の売上履歴テーブルの一例を示す図である。
【図4】ソート後のSET配列の一例を示す図である。
【図5】従来技術の検索処理を説明するための図である。
【図6】1番目の条件にヒットしたレコード群を示す図である。
【図7】従来技術の検索処理を説明するための図である。
【図8】従来技術の検索処理を説明するための図である。
【図9】本発明の実施の形態に係るシステム概要図である。
【図10】検索指示の入力画面例を示す図である。
【図11】本発明の実施の形態に係るメインの処理フローを示す図である。
【図12】イベント判定処理の処理フローを示す図である。
【図13】イベント管理テーブルの一例を示す図である。
【図14】本発明の実施の形態に係る検索処理の処理フローの第1の部分を示す図である。
【図15】イベント履歴条件テーブルの初期状態を示す図である。
【図16】イベント履歴条件テーブルの次の状態を示す図である。
【図17】イベント履歴条件テーブルの次の次の状態を示す図である。
【図18】イベントフラグテーブルの一例を示す図である。
【図19】状態遷移図の一例を示す図である。
【図20】本発明の実施の形態に係る検索処理の処理フローの第2の部分を示す図である。
【図21】イベントフラグテーブルの利用方法を示す図である。
【図22】抽出イベントテーブルの一例を示す図である。
【図23】本発明の実施の形態に係るイベントフラグと状態遷移の具体例を示す図である。
【図24】出力結果の一例を示す図である。
【図25】コンピュータの機能ブロック図である。
【符号の説明】
【0091】
1 ネットワーク
3 ユーザ端末
5 DBサーバ
51 検索指示受信部
52 検索指示データ格納部
53 イベント判定処理部
54 イベント管理テーブル格納部
55 検索前処理部
56 FAST構造データ格納部
57 イベント履歴条件テーブル格納部
58 ソート結果格納部
59 検索処理部
60 検索結果格納部
61 検索結果出力部
591 状態遷移管理部

【特許請求の範囲】
【請求項1】
各々特定の項目に対して特定の値が指定されており且つ順序付けがなされた複数の検索条件を含む検索指示に基づき、前記特定の項目の各項目値にフラグを付与し、フラグ定義データとして記憶装置に格納するフラグ付与ステップと、
データベースに格納されており且つ検索対象である複数のレコードを所定のルールに従ってソートするソート・ステップと、
ソート後の前記複数のレコードの順番に、前記記憶装置に格納された前記フラグ定義データを用いて、処理に係るレコードにおける前記特定の項目の項目値に対応するフラグを特定するフラグ特定ステップと、
ソート後の前記複数のレコードの順番に前記フラグを特定している過程において、特定された前記フラグの出現態様が、前記検索指示に従ったものであるか判断する判断ステップと、
前記フラグの出現態様が前記検索指示に従っていると判断された場合には、当該フラグの出現態様に含まれるフラグに係るレコードのデータを出力するステップと、
を含む、コンピュータにより実行される検索処理方法。
【請求項2】
前記フラグ付与ステップが、
特定の検索条件に含まれる、前記特定の項目の前記特定の値に対応し且つ前記データベース内のレコードに含まれる前記特定の項目の項目値を特定するステップと、
特定された前記項目値に、前記特定の検索条件の順序付けに応じたフラグを付与するステップと、
を含む請求項1記載の検索処理方法。
【請求項3】
前記判断ステップが、
特定された前記フラグに応じて、前記順序付けに応じて定義される状態間の遷移が発生するか判断するステップと、
前記状態間の遷移が発生した場合には、最終状態まで到達したか判断するステップと、
を含む請求項1記載の検索処理方法。
【請求項4】
請求項1乃至3のいずれか1つ記載の検索処理方法をコンピュータに実行させるためのプログラム。
【請求項5】
各々特定の項目に対して特定の値が指定されており且つ順序付けがなされた複数の検索条件を含む検索指示に基づき、前記特定の項目の各項目値にフラグを付与し、フラグ定義データとして記憶装置に格納する手段と、
データベースに格納されており且つ検索対象である複数のレコードを所定のルールに従ってソートする手段と、
ソート後の前記複数のレコードの順番に、前記記憶装置に格納された前記フラグ定義データを用いて、処理に係るレコードにおける前記特定の項目の項目値に対応するフラグを特定する手段と、
ソート後の前記複数のレコードの順番に前記フラグを特定している過程において、特定された前記フラグの出現態様が、前記検索指示に従ったものであるか判断する手段と、
前記フラグの出現態様が前記検索指示に従っていると判断された場合には、当該フラグの出現態様に含まれるフラグに係るレコードのデータを出力する手段と、
を有する検索処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2007−323546(P2007−323546A)
【公開日】平成19年12月13日(2007.12.13)
【国際特許分類】
【出願番号】特願2006−155552(P2006−155552)
【出願日】平成18年6月5日(2006.6.5)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】