(57)【要約】【課題】  データの一部にワイルドカードの使用が許容されているデータレコードの集合を記憶したファイルから、照合データに対応したデータレコード群を、利用者が利用しやすい順に並べ替える検索方法とそのためのプログラムを提供する。【解決手段】  Ｓ１０２でまずワイルドカードの使用が許容されているデータレコードの集合を記憶したファイルから、照合データに対応したデータレコード群を抽出する。抽出されたデータレコード群は、その内容に無関係の順で出力される。そこでＳ１０４で抽出したデータレコードに対して、照合データと照合対象の部分データに含まれるワイルドカードの数を計数する。Ｓ１０６では、抽出されたデータレコード群を計数したワイルドカードの少ない順に並べ替える。これにより、照合データと一致度の高いデータレコード順に並べ替えられたデータレコード群を得ることができる。【選択図】  図１
2006309453.tif 000002
【特許請求の範囲】
【請求項１】
ワイルドカードの使用が許容されているデータレコードの集合をコンピュータによって読取り可能に記憶しているファイルから、照合データに対応するデータレコードをコンピュータによって検索する方法であり、
コンピュータに照合データを入力する工程と、
コンピュータによって前記ファイルを読み出し、データレコード中の照合対象である部分データと照合データを照合し、ワイルドカード以外のデータが一致するデータレコードを前記集合から抽出する工程と、
コンピュータによってデータレコード毎のワイルドカードに関連した指標値を計数する指標値計数工程と、
コンピュータによって、抽出されたデータレコードを計数された指標値の順に並べ替える並べ替え工程と、
を含むことを特徴とするデータレコードの検索方法。
【請求項２】
照合データが複数のデータ項目に亘っており、抽出結果を並べ替える際のデータ項目毎の優先順位が与えられており、
コンピュータにデータ項目毎の優先順位を入力する工程が付加されており、
前記指標値計数工程では、データ項目別に指標値を計数し、
前記並べ替え工程では、抽出されたデータレコードを優先順位の高いデータ項目についての指標値の順に並べ替えるとともに、指標値が同じデータレコード群については、次の優先順位のデータ項目についての指標値の順に並べ替えることを特徴とする請求項１の検索方法。
【請求項３】
前記指標値計数工程では、前記部分データと照合データの間で一致したデータの量を計数し、
前記並べ替え工程では、指標値の大きい順に並べ替えることを特徴とする請求項１又は２の検索方法。
【請求項４】
前記指標値計数工程では、前記部分データ中に存在するワイルドカードの数を計数し、
前記並べ替え工程では、指標値の小さい順に並べ替えることを特徴とする請求項１又は２の検索方法。
【請求項５】
前記指標値計数工程では、抽出されたデータレコードに対してのみ指標値を計数することを特徴とする請求項１から４のいずれかの検索方法。
【請求項６】
前記指標値計数工程では、ファイルに記憶されているデータレコードに対して一律に指標値を計数することを特徴とする請求項１から４のいずれかの検索方法。
【請求項７】
ワイルドカードの使用が許容されているデータレコードの集合をコンピュータによって読取り可能に記憶しているファイルから、照合データに対応するデータレコードをコンピュータによって検索するためのプログラムであり、コンピュータに下記の処理、即ち、
照合データを入力する処理と、
前記ファイルを読み出し、データレコード中の照合対象である部分データと照合データを照合し、ワイルドカード以外のデータが一致するデータレコードを抽出する処理と、
データレコード毎のワイルドカードに関連した指標値を計数する処理と、
抽出されたデータレコードを計数された指標値の順に並べ替える処理と、
並べ替えられたデータレコード群を出力する処理と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの一部にワイルドカードの使用が許容されているデータレコードの集合を記憶しているファイルから、照合データに対応したデータレコード群を抽出し、利用者が利用しやすい順に並べ替えて出力する検索方法とそのためのプログラムに関する。
【背景技術】
【０００２】
データレコードの集合から照合データに一致又は類似するデータレコード群を検索する技術が知られている。照合データには、データレコードの集合から検索したいデータレコードに共通するデータ内容が設定される。照合データが入力されると、データレコード中の照合対象である部分データと照合データとが照合され、一致又は類似するデータレコードが抽出される。ここで、照合対象となる部分データの所定の桁のデータが任意のデータでよいデータレコードをも含めて検索する場合に「類似する」との表現を用いた。以後本明細書では、「照合データに一致又は類似するデータレコード」を「照合データに対応するデータレコード」と称する。
この「任意のデータでよい」ことを表すデータはワイルドカードと呼ばれる。ワイルドカードが使われていると、部分データ中のワイルドカードが指定されているデータの照合が行われず、ワイルドカード以外のデータによって、データレコードの照合対象である部分データと照合データの照合が行われる。ワイルドカードは照合データの中で用いられることもあれば、データレコードの一部でも用いられることもある。またワイルドカードは複数同時に用いられる場合もある。
照合データはデータレコード全体を照合対象として設定される場合もあり、またデータレコードの所定の位置にある部分データを照合対象として設定される場合もある。特にデータレコードが複数のデータ項目からなる場合は、照合データは複数のデータ項目に亘って設定されることもある。
特許文献１には、データレコード群や照合データにワイルドカードの使用が許容されている場合でも高速に検索できる技術が開示されている。
【０００３】
【特許文献１】特開平８−９５９９９号公報（段落０００８、００１４）
【０００４】
ところでデータレコードの数が膨大となると、照合データに対応するデータレコード、即ち検索の結果抽出されるデータレコードの数が増大する。特にデータレコードの中にワイルドカードの使用が許容されているデータレコードの集合の場合、このことが顕著となる。部分データの一部は照合データに一致するものの、部分データ中の照合データと一致した以外の位置にワイルドカードが使用されているデータレコードが抽出されるからである。部分データ中のワイルドカードの位置は不特定である。従って部分データの中の様々な位置にワイルドカードが混在するデータレコードが多数抽出される。
照合データ内にワイルドカードが使われる場合もある。この場合でも照合データ中のワイルドカードが使われていない部分について、部分データの一部は照合データに一致するものの、部分データ中の照合データと一致した以外の位置にワイルドカードが使用されているデータレコードが抽出される。
照合データ内にワイルドカードが使われる場合であっても、データレコードの中にワイルドカードの使用が許容されているデータレコードの集合から照合データに対応するデータレコードを検索すると、検索の結果抽出されるデータレコードの数が増大する傾向にあることは変わらない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１の技術は、登録データ（データレコード）と照会用データ（照合データ）の双方のワイルドカードの位置をマスクするマスクデータを用意する。このマスクデータを利用することで検索を高速に行うものである。
【０００６】
データレコードにワイルドカードの使用が許容されている場合、特許文献１の技術によると、検索自体は高速にできるものの、検索結果として多数のデータレコードが抽出された場合、その数の多さのため、検索結果の取り扱いが困難となる。特許文献１の技術では、照合データに対応するデータレコードが抽出されるにしても、抽出されたデータレコードの部分データにワイルドカードが一つも含まれていないものや一つ以上含まれているものが混在している。また部分データ中のワイルドカードの位置も不特定である。部分データの中の様々な位置にワイルドカードが混在するデータレコードが無秩序な順で出力されてしまい、検索結果の取り扱いが困難となる。
利用者は、部分データの中にワイルドカードが含まれるデータレコードが抽出された場合であっても、所定の条件にできるだけ合致する順に検索結果を見たいという場合が多い。例えば設定した照合データにできるだけ多く一致するデータレコードの順に確認したいといった場合である。従来の検索方法では、データレコードの内容について無秩序な順で出力された多数の検索結果から所望のデータレコード（群）を見つけることは困難である。このような場合には、検索結果に対して別のデータ項目にさらに新たな照合データを設定して検索を繰り返すなどの対処が必要となる。所望のデータレコードを探し当てる手間が嵩む。
照合データ中にワイルドカードが使用される場合もある。照合データ中のワイルドカードの位置に相当するデータレコード中の部分データは任意でよいデータレコードを検索したい場合である。そのような場合でも、照合データ中のワイルドカードが使用されていない部分では上記と同様の事態が生ずる。即ち照合データ中のワイルドカードが使われていない部分について、部分データの一部は照合データに一致するものの、部分データ中の照合データと一致した以外の位置にワイルドカードが使用されているデータレコードが多数抽出されてしまう。
そこで、ワイルドカードの使用が許容されているデータレコードの集合から抽出された照合データに対応する多くのデータレコードを、利用者が利用しやすい順序で提供する技術が必要とされている。
【課題を解決するための手段】
【０００７】
データレコードの中にワイルドカードの使用を許容すると、データレコードの集合自体のデータ量を低減できる技術的利点がある。
ワイルドカードはデータレコードの構造や個々のデータレコードのデータ内容には依存しない。「ワイルドカードはデータレコードの構造や個々のデータレコードのデータ内容には依存しない」という技術的性質により、データレコードの構造や個々のデータレコードの内容になんら制約を加えずにデータレコードの集合自体のデータ量を低減することができる。
その一方で検索の結果抽出されるデータレコード数が特に増大するのも、データレコードの中にワイルドカードの使用が許容されていることに起因する。「ワイルドカードはデータレコードの構造や個々のデータレコードのデータ内容には依存しない」という技術的性質により、抽出したいデータレコードに対してワイルドカードに関する制約を照合データの中に付加することができない。そのため上記問題が発生する。即ち、照合データに対して、データレコード中の照合の対象となる部分データ内にワイルドカードがランダムに存在するデータレコードが数多く抽出されてしまうという問題が発生する。
【０００８】
そこで本発明では、照合データに対応するデータレコードを単に検索するだけでなく、抽出されたデータレコードの並び順を考慮する。並び順を考慮する際に、検索処理と整合性のよい方法を工夫する必要がある。そうでないと、検索した後に、改めて並び順を変更する処理を改めて行うことと同じ手間となってしまうからである。
本発明では、抽出されたデータレコードに対してワイルドカードに関連した指標値を計数する。そして抽出されたデータレコードを前記指標値の順に並べ替える。
ワイルドカードに関連した指標値はデータレコードの構造や個々のデータの値に依存しないという技術的性質を有する。この技術的性質を利用することにより、照合データやデータレコードのデータ内容に関わらず、データレコードの検索方法または検索プログラムをワイルドカードに関連した指標値の内容によって変更する必要がない。従ってワイルドカードに関連した指標値に基づく並べ替え処理は、データレコードの抽出処理と一体化できる。換言すれば並べ替え処理を検索処理とともに１回の処理として実行することが可能となる。
【０００９】
部分データの中にワイルドカードが含まれるデータレコードが抽出された場合であっても、利用者は何らかの規則性に基づいた順に抽出されたデータレコードを確認したいという要求が多い。そこで利用者が抽出されたデータレコードを確認したい規則性に合ったワイルドカードに関連する指標値を導入する。抽出されたデータレコードはこの指標値の順に並べ替えられる。１回の検索処理でデータレコードが並べ替えられた結果を得ることができる。この検索結果により利用者が所望するデータレコードを見つけやすくさせることが可能となる。
【００１０】
本発明は、データレコードの検索方法に具現化できる。この方法はワイルドカードの使用が許容されているデータレコードの集合をコンピュータによって読取り可能に記憶しているファイルから、照合データに対応するデータレコードをコンピュータによって検索する方法である。この方法は、コンピュータに照合データを入力する工程と、コンピュータによって前記ファイルを読み出し、データレコード中の照合対象である部分データと照合データを照合し、ワイルドカード以外のデータが一致するデータレコードを前記集合から抽出する工程と、コンピュータによってデータレコード毎のワイルドカードに関連した指標値を計数する指標値計数工程と、コンピュータによって、抽出されたデータレコードを計数された指標値の順に並べ替える並べ替え工程を含む。ここでワイルドカードに関連した指標値とは例えば、部分データの中に含まれるワイルドカードの数がある。また他の例としては、部分データの中のワイルドカードの位置に応じた値などでもよい。
【００１１】
本方法によれば、ワイルドカードの使用が許容されているデータレコードの集合から照合データに対応するデータレコードを検索した結果を、ワイルドカードに関連した指標値の順に並べ替えられた順序で得ることができる。抽出されたデータレコードの数が多数であっても利用者は所望のデータレコードを容易に見つけることができる。
【００１２】
本方法は、照合データが複数のデータ項目に亘っており、抽出結果を並べ替える際のデータ項目毎の優先順位が与えられており、コンピュータにデータ項目毎の優先順位を入力する工程が付加されており、前記指標値計数工程では、データ項目別に指標値を計数し、前記並べ替え工程では、抽出されたデータレコードを優先順位の高いデータ項目についての指標値の順に並べ替えるとともに、指標値が同じデータレコード群については、次の優先順位のデータ項目についての指標値の順に並べ替えることが好ましい。
この方法は、複数のデータ項目に対して照合データが設定されていて、利用者が注目するデータ項目に優先順位がある場合に有効である。
【００１３】
本方法では、複数のデータ項目に設定された照合データに対して、抽出されたデータレコードを並べ替える際のデータ項目の優先順位を取得する。
車両の部品を例にすると、部品のデータレコードの中に、その部品の型番、その部品が使用されるエンジンの型式、そのエンジンが搭載される車種などのデータ項目がある場合を考える。このようなデータレコードの集合から、複数のデータ項目に対して照合データを設定する場合がある。ある特定の部品が使われている特定の車種を知りたい場合などである。
この例では部品の型番を優先的に注目して検索したいのか、エンジン型式を優先的に注目して検索したいのか、を取得する。複数のデータ項目の中から優先順位を決定するのは検索者の検索意図による。検索の優先順位は検索の際に利用者が入力するものであってもよいし、予め記憶装置に記憶されているものでもよい。例えば上記の例で部品の型番を優先的に注目して検索すると設定されていると仮定する。
そしてデータレコードの集合から、データレコード中の照合対象である部分データと、照合データを照合してワイルドカード以外のデータが一致するデータレコードを抽出する。次に夫々のデータ項目別に、ワイルドカードに関連した指標値を計数する。上記例では抽出されたデータレコードについて、部品の型番のデータ項目とエンジンの型式のデータ項目に対して夫々ワイルドカードに関連した指標値を計数する。
最後に抽出されたデータレコードを、優先順位の高いデータ項目について計数された指標値の順に並べ替えるとともに、指標値が同じデータレコード群が検出された場合は、そのデータレコード群に対して次の優先順位の項目について、指標値の順に並べ替える。上記例では、抽出されたデータレコードを優先順位の高い部品の型番のデータ項目について、指標値の順に並べ替える。その際に、指標値が同じデータレコードが複数存在した場合には次の処理を行う。即ち、部品の型番のデータ項目について指標値が同じであるデータレコード群に対して、今度は次の優先順位であるエンジンの型式のデータ項目について計数された指標値の順に並べ替える。
【００１４】
上記方法により、抽出されたデータレコードは、並べ替えの優先順位の高いデータ項目においてワイルドカードに関連した指標値の順に並べ替えられる。優先順位の高い項目において指標値が同じデータレコードは、次の優先順位の項目において指標値の順に並べ替えられる。複数のデータ項目に設定された照合データに対して１回の検索で上記並べ替えられたデータレコード群を取得できる。よって利用者は検索の優先順位に従って並べ替えられたデータレコードを上から順に調べていくことで目的のデータレコードを容易に見つけることができる。
【００１５】
前記指標値計数工程では、前記部分データと照合データの間で一致したデータの量を計数し、前記並ベ替え工程では、指標値の大きい順に並べ替えることが好ましい。
また前記指標値計数工程では、前記部分データ中に存在するワイルドカードの数を計数し、前記並べ替え工程では、指標値の小さい順に並べ替えることが好ましい。
ここで、「前記部分データと照合データの間で一致したデータの量を計数」することと、「前記部分データ中に存在するワイルドカードの数を計数」することは表裏一体の関係である。後者がワイルドカードに関連した指標値の一例であるのは明らかであるため、前者もまたワイルドカードに関連した指標値の一例である。
【００１６】
本方法によれば、ワイルドカードの使用が許容されているデータレコードの集合から所定の照合データに対応するデータレコードを検索した結果として、照合データと照合対象の部分データとの間で一致するデータ量の多い順に並べ替えられたデータレコード群を得ることができる。抽出されたデータレコードの数が多数であっても利用者は照合データにできるだけ近いデータレコードを容易に見つけることができる。
【００１７】
上記方法はさらに、複数のデータ項目に対して照合データが設定されている場合であって、複数のデータ項目の間に照合データによりよく一致してほしい優先順位がある場合に有効である。
例えば上述した車両の部品を例にする。利用者は、部品の型番が照合データによりよく一致する部品を優先的に検索したいのか、エンジン型式が照合データによりよく一致するエンジンを優先的に検索したいのか、を取得する。ここでは検索の利用者は部品の型番のデータ項目について、優先的に照合データと一致する部分の多いデータレコードを検索したいとする。
まずデータレコードの集合から、データレコード中の照合対象である部分データと、照合データを照合してワイルドカード以外のデータが一致するデータレコードを抽出する。次に抽出されたデータレコードについて、部品の型番のデータ項目とエンジンの型式のデータ項目に対しての夫々ワイルドカードの数（ワイルドカードに関連した指標値）を計数する。
最後に抽出されたデータレコードを、優先順位の高い部品の型番のデータ項目についてワイルドカードの数の少ない順に並べ替えるとともに、ワイルドカードの数が同じデータレコード群が検出された場合は、そのデータレコード群に対して次の優先順位の項目であるエンジンの型式のデータ項目についてワイルドカードの数の少ない順に並べ替える。
【００１８】
上記方法では、抽出されたデータレコードは、並べ替えの優先順位の高いデータ項目においてその項目のデータが照合データとより良く一致する順に（ワイルドカードの数が少ない順に）並べ替えられる。優先順位の高い項目においてその項目のデータと照合データとの一致度が同じデータレコードは、次の優先順位の項目においてその項目のデータが照合データとより良く一致する順に並べ替えられる。複数のデータ項目に設定された照合データに対して１回の検索で上記並べ替えられたデータレコード群を取得できる。よって利用者は検索の優先順位に従って並べ替えられたデータレコードを上から順に調べていくことで目的のデータレコードを容易に見つけることができる。
抽出されたデータレコードに対して照合データと部分データの間で一致したデータの量を計数しても同様の効果が得られる。
【００１９】
前記指標値計数工程では、抽出されたデータレコードに対してのみ指標値を計数することが好ましい。抽出されたデータレコードに対してのみ指標値を計数することで、抽出されなかったデータレコードに対しては指標値を計数する必要がなくなる。指標値を計数する処理を短時間で済ませることができる。
また前記指標値計数工程では、ファイルに記憶されているデータレコードに対して一律に指標値を計数することも好ましい。検索に先立ってファイルに記憶されているデータレコードに対して一律に指標値を計数しておくことで、検索処理の実行時に指標値を計数する必要がなくなる。
【００２０】
本発明はまた、ワイルドカードの使用が許容されているデータレコードの集合をコンピュータによって読取り可能に記憶しているファイルから、照合データに対応するデータレコードをコンピュータによって検索するためのプログラムとして具現化できる。このプログラムは、コンピュータに次の処理、即ち、照合データを取得する処理と、前記ファイルを読み出し、データレコード中の照合対象である部分データと照合データを照合し、ワイルドカード以外のデータが一致するデータレコードを抽出する処理と、データレコード毎のワイルドカードに関連した指標値を計数する処理と、抽出されたデータレコードを計数された指標値の順に並べ替える処理と、並べ替えられたデータレコード群を出力する処理を実行させる。
本プログラムにより、ワイルドカードの使用が許容されているデータレコードの集合から所定の照合データに対応するデータレコードを検索した結果、多数のデータレコードが抽出された場合に、利用者はワイルドカードに関連する指標値の順に並べ替えたデータレコード群を得ることができる。
【発明の効果】
【００２１】
本願発明によれば、ワイルドカードの使用が許容されているデータレコードの集合を記憶したファイルから、照合データに対応する多くのデータレコードを、利用者が利用しやすい順序で得ることができる。
【発明を実施するための最良の形態】
【００２２】
実施例の主要な特徴を列記する。
（第１形態）  ワイルドカードに関連した指標値は、部分データ内におけるワイルドカードの桁位置に応じて予め設定された所定の値とすることが好ましい。
デーレコードの所定の項目の所定の位置にワイルドカードを用いる場合、夫々の位置でワイルドカードの重要性が異なる場合がある。例えば部品の型番を示すデータ項目の最右桁に記されたワイルドカードは２桁目以上のデータで示される型番の部品と交換可能な部品であることを示す。逆に例えば部品の型番を示すデータ項目の最左桁に記されたワイルドカードは多数の部品メーカで製造可能な部品であることを示す。
本方法では、前述したデータ項目に優先順位を設けることと同様に、ワイルドカードの位置に応じて優先順位を設け、抽出されたデータレコードがワイルドカードの位置に関する優先順位によっても並べ替えることができるようにしたものである。ここでワイルドカードの位置による重要性は、データレコードの構造やデータ内の値そのものに依存するのではなく、単純にワイルドカードが使用されるデータレコード上の位置により決定されるものである。
（形態２）  並べ替え工程は、抽出したデータレコード群を優先順位の高いデータ項目について指標値の順に並べ替え処理を実行している間に、指標値が同じデータレコード群が検出された場合に、そのデータレコード群に対して次の優先順位のデータ項目について指標値の順に並べ替え処理を行うことが好ましい。そして指標値の順に並べ替えられたデータレコード群の上位所定の数のデータレコードを出力することも好ましい。本方法によれば、利用者が指標値の順に所定数だけ抽出したい場合に、並べ替えられた検索結果が所定数に達した時点で処理を終了することができる。検索時間を短縮することができる。
【実施例】
【００２３】
以下、図面を参照して実施例を詳細に説明する。
＜実施例１＞
まず図４から図７を用いてデータレコードの概要と、照合データに対応するデータレコードの処理の概要を説明する。検索処理には並べ替え処理も含まれている。その後、図１と図２を用いて処理の流れを説明する。
本実施例では、車両の各部品についてのデータレコードを検索の対象とする。図４はワイルドカードの使用が許容されているデータレコードの集合の模式図である。このデータレコードの集合を以後、マスタデータと称する。マスタデータはファイルとして記憶装置（不図示）に記憶されている。このマスタデータはコンピュータによって読み取り可能にファイルに記憶されている。図４の最左列は、例えばＡ００１やＡ００２というようにデータレコード番号を示す。各横欄がひとつのデータレコードを示す。データレコードはいくつかのデータ項目に分かれており、図４ではデータ項目Ｘ１、データ項目Ｘ２、データ項目Ｘ３が示してある。データ項目Ｘ１は車種を示すデータ項目である。データ項目Ｘ２はエンジン型式を示すデータ項目である。データ項目Ｘ３は部品の型番を示すデータ項目である。データ項目はこの他にいくつあっても良い。データレコードの数もいくつあっても良い。データ項目Ｘ１は１桁のデータで構成されるデータ項目である。同様にデータ項目Ｘ２は２桁のデータで構成され、データ項目Ｘ３は４桁のデータで構成される。なお、実際のコンピュータ内ではひとつのデータは、２進法で４桁を１バイトとする単位で表現されるが、ここでは説明を簡単にするため、アルファベット又は数字の１文字を１桁のデータと称することとする。
【００２４】
図４の幾つかの欄には記号「？」が記されているがこれがワイルドカードである。ワイルドカードとは、任意のデータでよいことを示す記号である。ここでは１桁のデータが任意のデータで良い場合にひとつの「？」記号を用いている。ワイルドカードを示す記号は「？」に限定されず、予め決められている記号であれば良い。
マスタデータにワイルドカードを用いるのは、車両の部品などその総数が膨大となる場合に、マスタデータ自体のデータ量を低減するためである。例えば同一車種の同一型式のエンジンに複数種類の部品が利用できる場合、全ての部品型番ごとにデータレコードを作成するよりそれらの部品型番を一まとめとしてひとつのデータレコードで示す方がマスタデータのデータ量を低減できる。図４のレコード番号Ａ００１のデータレコードを例にとると、このデータレコードには、データ項目Ｘ１（車種）が「ｂ」、データ項目Ｘ２（エンジン型式）が「ｃ１」、データ項目Ｘ３（部品型番）が「２２３？」と示されている。この場合、車種「ｂ」、エンジン型式「ｃ１」に用いる部品は、型番データの上位３桁が「２２３」であればよく、部品型番データの４桁目は任意の記号をもつ部品が利用できることを示している。
このように部品点数の多い製品についてはデータレコードにワイルドカードの使用を許容することによって、マスタデータのデータ量を削減できるという効果がある。
【００２５】
今、図４のマスタデータから図５に示す照合データに対応するデータレコードを検索（抽出）する。抽出したいデータレコードは、データ項目Ｘ１が「ｂ」に一致し、データ項目Ｘ２が「ｃ１」に一致し、データ項目Ｘ３が「１２３４」に一致するデータレコードである。
ここで図４に見るようにマスタデータにはワイルドカード「？」が含まれている。よって、照合データと、データレコード中の照合対象である部分データ（この場合はデータレコード中のデータ項目Ｘ１、Ｘ２、Ｘ３に相当する部分のデータ）を照合してワイルドカード以外のデータが一致するデータレコードが抽出される。なお、「データレコード中の、照合データとの照合対象である部分データ」を単に「部分データ」と称する。また図５に「優先順位」と示した欄については後述する。
【００２６】
この抽出処理（抽出工程）により図４のマスタデータから図５の照合データに対応するデータレコードを抽出した結果を図６に示す。図４のレコード番号Ａ００１のデータレコードはデータ項目Ｘ３のデータが「２２３？」である。設定された照合データのデータ項目Ｘ３のデータは「１２３４」である。両データを照合すると、ワイルドカード以外のデータが記されているデータのうち、最左桁のデータが異なる。従ってデータレコード番号Ａ００１は抽出されない。図４のデータレコード番号Ａ００２からＡ００７は、照合データと、データレコード中の照合対象であるデータ部分のうち、ワイルドカード以外のデータが一致する。従って図６ではデータレコード番号Ａ００２からＡ００７が抽出されている。
【００２７】
図６の抽出結果をみると、マスタレコード上での並びの順番に従って、照合データに対応するデータレコードが抽出されている（符号１０ａ、１２ａ、１４ａで示した欄については後述するのでここでは無視して説明する）。図６のデーレコードの並びは、マスタレコード上での並びの順番に従っているという以外に規則性がない。即ちデータレコードの内容に関連した並びとなっていない。図６の検索結果を得た者は、設定された照合データ（図５参照）に対して部分データのうちワイルドカード以外のデータが一致するデータレコード群を得ることができるが、図６の検索されたすべてのデータレコードが目的のデータレコードとは限らない場合が多い。通常は、照合データになるべく一致する部分データを有するデータレコードの方が重要である。
【００２８】
そこで本実施例では、以下の点に着目したデータレコードの並べ替えを、データ検索処理の一部として行う。
（１）照合データになるべく一致する部分データとは、ワイルドカードの数が少ない部分データである。
（２）照合データが複数のデータ項目に渡って設定されている場合は、検索する者はいずれかのデータ項目に特に注目していることが多い。
上記（１）の点を考慮し、部分データ内のワイルドカードの数を計数する。そして抽出されたデータレコードをワイルドカードの少ない順に並べ替える処理を行う。なお、後述するように部分データに複数のデータ項目が含まれる場合はデータ項目ごとに部分データ内のワイルドカードの数を計数する。なお、本実施例では、「部分データ内のワイルドカードの数」が「ワイルドカードに関連した指標値」に相当する。
また上記（２）の点を考慮し、照合データが複数のデータ項目について設定されている場合は、優先して並べ替えを行うデータ項目を設定する。図５に戻り、図５の「優先順位」の欄がこれに相当する。図５では、データ項目Ｘ３、データ項目Ｘ１、データ項目Ｘ２の順に優先順位が高く設定されている。
設定された優先順位の高いデータ項目から、ワイルドカードの小さい順に並べ替える処理を行う。この並べ替えの際にワイルドカードの数が同じであるデータレコードが複数存在した場合に、さらに次の並べ替え処理を行う。すなわち、ワイルドカードの数が同じであるデータレコード群に対して、次の優先順位のデータ項目においてワイルドカードの数の少ない順に並べ替える処理を行う。この並べ替え処理の際に再びワイルドカードの数が同じであるデータレコードが複数存在した場合は、次の優先順位のデータ項目について同様の並べ替え処理を行う。
【００２９】
この処理を図６と図７を用いて具体的に説明する。図５の照合データにはデータ項目Ｘ３、Ｘ１、Ｘ２の順に優先順位が設定されている。そこでまずデータ項目Ｘ３についてワイルドカードの少ない順にデータレコードの並べ替えを行う。
図６の符号１４ａで示した欄は、抽出された各データレコードの、データ項目Ｘ３の部分データに含まれるワイルドカードの数を示した欄である。なおマスタデータ中に実際に符号１４ａで示す欄が設けられているとは限らない。符号１４ａの欄を見ると、レコード番号Ａ００６のデータレコードは、データ項目Ｘ３に含まれるワイルドカードの数がゼロである。即ちこのデータレコードはデータ項目Ｘ３については完全に照合データに一致していることがわかる。
このデータ項目Ｘ３について、ワイルドカードの少ない順に並べ替えたものが図７のデータである。図７では、優先順位が１位であるデータ項目Ｘ３については、ワイルドカードの数の少ない順に並べ替えられている。図７に符号１４ｂで示す欄が並べ替え処理後の各データレコードにおけるデータ項目Ｘ３に含まれるワイルドカードの数である。ワイルドカードの数が少ない順に上から並んでいることがわかる。なお、図６の符号１０ａで示した欄はデータ項目Ｘ１の部分データに含まれるワイルドカードの数を示す。同様に符号１２ａで示した欄はデータ項目Ｘ２の部分データに含まれるワイルドカードの数を示す。
【００３０】
図７をみると、レコード番号Ａ００２とＡ００３の部分データはデータ項目Ｘ３についてワイルドカードの数がともに「１」で同じである。そこでレコード番号Ａ００２とＡ００３については、次の優先順位であるデータ項目Ｘ１においてワイルドカードの少ない順に並べ替える。図７の符号１０ｂの欄に示すように、データ項目Ｘ１について、レコード番号Ａ００２の部分データに含まれるワイルドカードの数は「１」である。レコード番号Ａ００３の部分データに含まれるワイルドカードの数は「０」である。従ってワイルドカードの数の少ないレコード番号Ａ００３のデータレコードがワイルドカードの数の多いレコード番号Ａ００２のデータレコードよりも上位に並べ替えられる。
【００３１】
同様にレコード番号Ａ００４、Ａ００５、Ａ００７については、優先順位１のデータ項目Ｘ３についてワイルドカードの数は全て「２」で同じである。この３つのデータレコードは次の優先順位であるデータ項目Ｘ１についてもワイルドカードの数は「１」で同じである。そこで優先順位３位のデータ項目Ｘ２に注目する。データ項目Ｘ２に関してはレコード番号Ａ００７の部分データに含まれるワイルドカードの数は「０」である。その他の２つのデータレコードに含まれるワイルドカードの数はともに「１」である。そこでワイルドカードの数の少ないレコード番号Ａ００７のデータレコードが、レコード番号Ａ００４、Ａ００５よりも上位に並べ替えられる。
【００３２】
こうして最終的に並べ替えられたデータレコードが図７である。図７に符号１０ｂで示す欄にはデータ項目Ｘ１の部分データに含まれるワイルドカードの数を示されている。符号１２ｂで示す欄にはデータ項目Ｘ２の部分データに含まれるワイルドカードの数を示されている。同様に、符号１４ｂで示す欄にはデータ項目Ｘ３の部分データに含まれるワイルドカードの数を示されている。
図７を見ると、図５に示した照合データに対応するデータレコードが、注目するデータ項目順に、照合データと一致する度合いの大きい順（すなわちワイルドカードの少ない順）に並べ替えられていることがわかる。換言すると、この実施例の検索処理により、第１に注目するデータ項目Ｘ３について照合データに一致する度合いが大きい順に並べ替えられている。第１に注目する（優先順位の高い）データ項目Ｘ３について照合データに一致する度合いが同じデータレコードについては第２に注目するデータ項目Ｘ１について照合データに一致する度合いが大きい順に並べ替えられている。第２に注目するデータ項目Ｘ１について照合データに一致する度合いが同じデータレコードについては第３に注目するデータ項目Ｘ２について照合データに一致する度合いが大きい順に並べ替えられている。
【００３３】
このように本実施例では、照合データに一致する度合いが大きい順に、照合データに対応するデータレコードが並べ替えられる。また優先順位の高いデータ項目が優先されて、照合データに一致する度合いが大きい順に、照合データに対応するデータレコードが並べ替えられる。
並べ替え処理を行わない検索結果（図６）では、検索結果はデータレコードの内容に関わらず並べられて出力されている。この検索結果から検索者が注目するデータレコードを探すのは困難である。これに対し、並べ替え処理を行った検索結果（図７）は、照合データと一致度の高い順に並べ替えられている。この検索結果によれば、照合データに一致する度合いが高い順に、さらには注目する（優先順位の高い）データ項目順に照合データに一致する度合いの高い方から上位に位置するように並べ替えられる。この検索結果をみれば、検索者が目的とするデータレコードを見つけ出すことが容易となる。
【００３４】
また本実施例は、照合データが複数のデータ項目（Ｘ１、Ｘ２、Ｘ３）に亘って設定されているが、マスタデータに対する検索処理は１回のみである。１回の検索処理でデータ項目ごとに照合データとの一致度が高い順に並べ替えられたデータレコードの検索結果を得ることができる。またデータ項目ごとに設定された優先順位に沿って並べ替えられたデータレコードの検索結果を得ることができる。検索の利用者が目的のデータレコードを探す時間と手間を顕著に短縮することができる。
【００３５】
次に図１と図２により実施例１の処理の流れについて説明する。図１は実施例１のデータ検索方法のフローチャート図である。図４に模式的に示したワイルドカードの使用が許容されているデータレコードの集合（マスタデータ）を記憶したファイルは予め用意されている。
このファイルに対して以下の処理を実施する。まずステップＳ１００で照合データを取得する（照合データをコンピュータに入力する）。照合データは例えば図５に模式的に示したように、複数のデータ項目に亘って設定されていてもよいし単一のデータ項目についてのみ設定されていてもよい。また照合データはコンピュータのキーボード等から入力されるものであってもよいし、他の装置、例えば部品管理システムからコンピュータ経由で自動的に入力されるものであってもよい。また図５に例示したように、照合データとともに照合データが対象とするデータ項目の並べ替えに対する優先順位を同時に取得してもよい。または優先順位は別途入力されるものであってもよい。本実施例では図５に示すように照合データとともにデータ項目の優先順位も同時に取得する。
【００３６】
次にステップＳ１０２により、取得した照合データに対応するデータレコードをファイルに記憶されたマスタデータから抽出する。ここで抽出された結果は図６に示すようにデータレコードの内容には無関係の順で抽出される。通常はマスタデータ内に並んだデータレコードの順に照合データとの照合が行われるため、抽出されたデータレコードは、マスタデータ内に並んだデータレコードの前後関係が維持されたままとなる。
【００３７】
次にステップＳ１０４により、抽出されたデータレコードの部分データに含まれるワイルドカードの数を計数する。照合データが複数のデータ項目に亘る場合は、データ項目ごとにワイルドカードの数が計数される。次にステップＳ１０６により、抽出されたデータレコードの並べ替え処理が行われる。並べ替え処理については図２により詳述する。
最後にステップＳ１０８により、並べ替えられたデータレコードが出力される。出力先は例えばディスプレイやプリンタである。また、照合データが他の装置、例えば前述した部品管理システムから送信された場合には、並べ替えられたデータレコードは電子データのままその部品管理システムに対して出力されることもある。
なお本実施例１では、抽出されたデータレコードに対して部分データの中に存在するワイルドカードの数が「ワイルドカードに関連した指標値」の一態様に相当する。従ってステップＳ１０４の処理が「指標値計数工程」の一態様に相当する。またステップＳ１００の処理が「照合データをコンピュータに入力する工程」の一態様に、ステップＳ１０２の処理が「コンピュータによって前記ファイルを読み出し、データレコード中の照合対象である部分データと照合データを照合し、ワイルドカード以外のデータが一致するデータレコードを前記集合から抽出する工程」の一態様に相当する。また次に図２に基づいて説明する処理が「並べ替え工程」の一態様に相当する。
【００３８】
次に図２の並べ替え処理のフローチャートに基づいて、並べ替え処理の内容を詳述する。
まずステップＳ２００により、並べ替え処理の対象を特定する。ステップＳ２００では、ワイルドカードの数（ワイルドカードに関連した指標値）を参照するデータ項目の対象（項目対象）を最高優先順位に設定されたデータ項目とする。図５に示す優先順位によると、優先順位が１位のデータ項目Ｘ３が設定される。また並べ替えの対象とするデータレコード群（並替対象）を図１のステップＳ１０２で抽出されたデータレコード全体とする。
次にステップＳ２０２により、並べ替え対象となっているステップＳ１０２で抽出されたデータレコード全体を、現在項目対象に設定されている最高優先順位のデータ項目のワイルドカードの数の小さい（少ない）順に並べ替える。ここでステップＳ２０２では並べ替えている最中に、ワイルドカードの数が同じデータレコード群を検出する処理が同時に行われる。ワイルドカードの数が同じデータレコード群が検出された場合はこれを記憶しておく。
次にステップＳ２０４により、全てのデータ項目について並べ替え処理が終わったか否かを判断する。まだ並べ替え処理が終了していないデータ項目がある場合（ステップＳ２０４：ＮＯ）、処理はステップＳ２０６に移る。
ステップＳ２０６では、ワイルドカードの数を参照するデータ項目対象（項目対象）を、現在設定されている優先順位のデータ項目から、次の優先順位のデータ項目に設定し直す。上記例では、図５に示す優先順位が１位のデータ項目Ｘ３から優先順位が２位のデータ項目Ｘ１に設定し直す。
次にステップＳ２０８により、並べ替えの対象とするデータレコード群（並替対象）を、ステップＳ２０２で並べ替えを行った際に、ワイルドカードの数が同じだったデータレコード群に設定する。前述したようにステップＳ２０２では、ワイルドカードの数が同じデータレコード群があった場合にはこれを記憶している。この記憶されたデータレコード群が次に並べ替えの対象とするデータレコード群に設定される。ここでは複数のデータレコード群が設定される場合もある。例えば図７に示した例ではデータ項目Ｘ３で並べ替えを行うと、レコード番号Ａ００２とＡ００３がワイルドカードの数が「１」で同じである。この２つのデータレコードがステップＳ２０２によりひとつの並べ替え対象となるデータレコード群として記憶される。またレコード番号Ａ００４、Ａ００５およびＡ００７がワイルドカードの数が「２」で同じである。よってこの３つのデータレコードがステップＳ２０２により並べ替え対象となる別のデータレコード群として記憶される。
【００３９】
次にステップＳ２０２に戻って再度並べ替え処理を行う。但しこのとき、並べ替え対象となっているデータレコード群は、ステップＳ２０８で設定されたデータレコード群となる。上記例ではレコード番号Ａ００２とＡ００３からなる第１のデータレコード群と、レコード番号Ａ００４、Ａ００５およびＡ００７からなる第２のデータレコード群が、夫々並べ替え対象となる。またこのときワイルドカードの数を参照するデータ項目対象は、ステップＳ２０６で設定し直されたデータ項目である。上記例ではデータ項目Ｘ１がワイルドカードの数を参照するデータ項目となる。
なお、ステップＳ２０２での並べ替え処理は、対象となるデータレコード群について入れ替えが行われるのみである。すなわち上位の優先順位のデータ項目において、ワイルドカードの数が同じデータレコードの間で入れ替えが行われる。上位の優先順位のデータ項目において並べ替えたワイルドカードの数の少ない順の並びに影響はない。
【００４０】
ステップＳ２０２、Ｓ２０４、Ｓ２０６、Ｓ２０８は、照合データが設定されたデータ項目の全てについて行われる。照合データが設定されたデータ項目の全てについて、並べ替えが終了すると（ステップＳ２０４：ＹＥＳ）、並べ替え処理ルーチンが終了する。並べ替え処理が終了すると、図７に示した結果が得られる。
【００４１】
＜実施例２＞
次に実施例２について説明する。この実施例２は、実施例１の図２に示した並べ替え処理の内容が異なる。具体的には上位の優先順位のデータ項目について並べ替え処理を行っている途中でワイルドカードの数が同じである複数のデータレコード群が検出されたら直ちに次の優先順位のデータ項目について並べ替えを行うものである。その他の処理については図１と同様であるので説明を省略する。
この実施例２では、複数のデータ項目に対して同時並行的に並べ替えを行う。すなわち優先順位が最低であるデータ項目まで考慮して並べ替えが行われた結果が順次出力される。従って抽出するデータレコードの数が予め決められている場合、出力したデータレコード数が決められた数に達した時点で処理を停止できる。抽出されたデータレコード数が多数であって、指標値の順に並べられた上位の予め決められた数のデータレコードのみを抽出したい場合に処理時間を短縮することができる。
【００４２】
図３に実施例２の並べ替え処理のフローチャート図を示す。
ステップＳ２００は図２に示した実施例１のステップＳ２００と同様である。即ち、ワイルドカードの数を参照するデータ項目対象（項目対象）を最高優先順位であるデータ項目に設定する。また並べ替えの対象とするデータレコード群（並替対象）を図１のステップＳ１０２で抽出されたデータレコード全体に設定する。
【００４３】
次にステップＳ３０２により、参照するデータ項目対象についてワイルドカードの数の少ない順にデータレコードを１件ずつリストアップしていく。そしてステップＳ３０４では、ステップＳ３０２で１件ずつリストアップされている途中でワイルドカードの数が同じデータレコードが複数あるか否かをチェックする。より具体的には、ステップＳ３０２で１件ずつデータレコードをリストアップしている最中に、ワイルドカードの数が同じデータレコードが２個以上連続した場合に、その次にワイルドカードの数が増加したデータレコードがリストアップするまで監視する。ワイルドカードの数が増加したデータレコードがリストアップされたときに、ワイルドカードの数が同じデータレコード群が確定する。その時点でステップＳ３０４の判定がＹＥＳとなる。そしてそれまでのステップＳ３０２のリストアップ処理を中断してステップＳ３０６に処理が移る。図３のフローチャート上ではステップＳ３０２の次の処理としてステップＳ３０４があるように描かれているが、実際にはステップＳ３０２とステップＳ３０４は同時平行して処理が実行される。図３は説明を簡単にするために別個の処理として記述した。
【００４４】
ステップＳ３０６ではワイルドカードの数を参照する対象のデータ項目が最低優先順位であるか否かを判断する。ここで最低優先順位でない場合（ステップＳ３０６：ＮＯ）、次の優先順位のデータ項目が存在するのでステップＳ２０６に処理が移る。ステップＳ２０６は図２に示した実施例１のステップＳ２０６と同様である。即ち、ステップＳ２０６ではワイルドカードの数を参照するデータ項目対象（項目対象）を、現在設定されている優先順位のデータ項目から、次の優先順位のデータ項目に設定し直す。
【００４５】
次にステップＳ３１０では、並べ替えの対象とするデータレコード群（並替対象）を、ステップＳ３０４で確定した同じワイルドカードの数を有するデータレコード群に設定する。そしてステップＳ３０２に戻る。
ステップＳ３０２では、ステップＳ３１０で設定されたデータレコード群からステップＳ２０６で設定されたデータ項目対象に含まれるワイルドカードの数の少ない順に１件ずつデータレコードをリストアップし直す。ここでデータレコードをリストアップし直す処理は、設定されたデータレコード群をワイルドカードの少ない順に入れ替える処理となる。このとき前回同様、ステップＳ３０４で、ワイルドカードの数が同じデータレコードがあるか否か監視される。前回同様ワイルドカードの数が同じデータレコード群が確定するとステップＳ３０４の判定がＹＥＳとなる。さらに次の優先順位のデータ項目に対してステップＳ３０６、Ｓ２０６、Ｓ３１０およびＳ３０２の処理が繰り返される。
ステップＳ３０４により、一旦ワイルドカードの数が同じデータレコード群が発見されると、ワイルドカードの数を参照するデータ項目対象が最低優先順位のデータ項目に至るまで繰り返される。このステップＳ３０２、Ｓ３０４、Ｓ３０６、Ｓ２０６、Ｓ３１０の繰返し処理が、上位の優先順位のデータ項目内でワイルドカードの数が同じデータレコード群が発見されるたびに下位の優先順位のデータ項目についてワイルドカードの数の少ない順に並べ替える処理となる。従って、この繰返し処理中にリストアップされたデータレコードは、優先順位が最低のデータ項目までワイルドカードの数の少ない順に並べ替えられた結果が順次出力されることになる。
この繰返し処理の最中にワイルドカードの数を参照するデータ項目対象が最低優先順位のデータ項目となった場合（ステップＳ３０６：ＹＥＳ）、それより下位のデータ項目は存在しないのでステップＳ３１２に処理が移る。また、最低でない優先順位のデータ項目においてワイルドカードの数が同じデータ群が発見されない場合も（ステップＳ３０４：ＮＯ）、それより下位のデータ項目に処理を移す必要がなくなるのでステップＳ３１２に処理が移る。
【００４６】
ステップＳ３１２では予め決められた所定数までリストアップされていれば（ステップＳ３１２：ＹＥＳ）それ以上並べ替え処理を行う必要がなくなるので処理を終了する。またステップＳ３１２で予め決められた所定数までリストアップされていない場合は（ステップＳ３１２：ＮＯ）、ステップＳ３１４に処理が移る。ステップＳ３１４では、図１のステップＳ１０２で抽出されたデータレコードのうち、まだリストアップされていないデータレコードがあるか否かチェックされる。全てのデータレコードがリストアップされた場合（ステップＳ３１４：ＹＥＳ）は、それ以上リストアップするデータレコードがないので処理を終了する。
一方、まだリストアップされていないデータレコードがある場合（ステップＳ３１４：ＮＯ）は、ステップＳ２００に戻る。
【００４７】
ステップＳ２００では再びワイルドカードの数を参照するデータ項目対象（項目対象）を最高優先順位であるデータ項目に設定し直す。また並べ替えの対象とするデータレコード群（並替対象）も図１のステップＳ１０２で抽出されたデータレコード全体に設定し直す。
【００４８】
ここで、本実施例２の並べ替え処理を最初に実行した際に、ステップＳ３０４でワイルドカードの数が同じデータレコードが発見されるまで最高優先順位のデータ項目についてワイルドカードの数の少ない順にデータレコードを１件ずつリストアップしていた。その途中でワイルドカードの数が同じデータレコードが発見たとき、それまでステップＳ３０２において最高優先順位のデータ項目のワイルドカードの数を参照してデータレコードを１件ずつリストアップしていた作業が一旦中断されている。従って、ステップＳ３１４からステップＳ２００に戻り、ステップＳ３０２の処理を再開するときは、前回中断された箇所からリストアップが再開される。
【００４９】
こうして上位所定数までリストアップされるか（ステップＳ３１２：ＹＥＳ）、又は抽出されたデータレコードの最後までリストアップされる（ステップＳ３１４：ＹＥＳ）と処理は終了する。
【００５０】
本実施例２では、ステップＳ３０４により、最上位の優先順位のデータ項目において、一旦ワイルドカードの数が同じデータレコード群が発見されると、そのデータレコード群については、各優先順位のデータ項目ごとに順次ワイルドカードの少ない順にデータレコードが入れ替えられる。その処理が、ステップＳ３０２、Ｓ３０４、Ｓ３０６、Ｓ２０６、Ｓ３１０の繰返し処理で行われる。この繰返し処理中にリストアップされたデータレコードは、優先順位が最低のデータ項目までワイルドカードの数の少ない順に並べ替えられた結果が順次出力されることになる。従って出力したいデータレコードの数が予め所定数に決められている場合、リストアップされたデータレコードの数がその所定数に達した時点で処理を終了することができる。照合データに対応する、抽出された全てのデータレコードの並べ替え処理を行わずに済む。本実施例２では処理時間を短縮することができる。本実施例２は抽出されるデータレコード数が多数となる場合に顕著な効果を奏する。
【００５１】
実施例１および実施例２は、別のデータ項目あるいは別の内容のデータを照合データとして設定しても図１から図３に示した処理と同様の処理で実施できる。またデータレコードの構造が異なるマスタデータに対しても同様の処理で実施できる。
このことは、「ワイルドカード」がデータレコードの構造や照合データの内容に関わらずに普遍的な意味をもつという技術的性質を利用することによって実現可能となる。この技術的性質を利用してデータレコードの構造や照合データの内容に依存しない「ワイルドカードに関連した指標値」を導入する。照合データと対応するデータレコードをこの指標値の順に並べ替える。「ワイルドカードに関連した指標値」もデータレコードの構造や照合データの内容に依存しない。従ってデータレコードの構造や照合データの内容によって並べ替え処理の内容を変更する必要がない。検索処理と並べ替え処理を一体化できる。
これにより、従来の検索方法ではデータレコードの内容に無関係に出力される検索結果のデータレコード群から、改めて別の処理を用意して目的のデータレコードを絞り込む処理を行う手間を省くことができる。利用者は検索処理と並べ替え処理が一体化された１つの処理を１回実行するだけで、目的のデータレコードを見つけやすい順に並べ替えられた結果を得ることができる。
【００５２】
＜実施例３＞
実施例１および実施例２では、抽出されたデータレコードに対して部分データの中に存在するワイルドカードの数を「ワイルドカードに関連した指標値」として計数した。その他にも、抽出されたデータレコードに対して照合データと部分データの間で一致したデータの量を前記指標値として計数しても実施例１又は実施例２と同様の処理を行うことができる。
さらにワイルドカードに関連した指標値を、以下のように設定することもできる。即ち、ワイルドカードの桁位置に応じて設定された所定の値を部分データごとに計数した値を指標値として用いる。そして指標値の小さい順にデータレコードを並べ替える。ワイルドカードを設定した桁位置にはそれぞれ独自の意味がある。従って重要な位置にワイルドカードがある場合には、その他の位置にワイルドカードがある場合よりも上位に並べ替えられることが好ましい。このことを具体的に説明するため、夫々のデータ項目に対してワイルドカードの数を示してある図６をマスタデータと仮定する。データ項目Ｘ３は４桁のデータからなる。ここで最左桁から順にワイルドカードの重要性が高いとする。この場合、最左桁にワイルドカードがある場合は計数する値を０．２とする。同様に左から２桁目にワイルドカードがある場合は計数する値を０．４とする。左から３桁目にワイルドカードがある場合は計数する値を０．６とする。左から４桁目にワイルドカードがある場合は計数する値を０．８とする。この場合レコード番号がＡ００２のデータ項目Ｘ３のワイルドカードの計数値は０．８となる。一方レコード番号がＡ００３のデータ項目Ｘ３のワイルドカードの計数値は０．２となる。この計数値によって、計数値の小さい順にデータレコードを並べると、レコード番号Ａ００３のデータレコードがレコード番号Ａ００２のデータレコードより上位に並べ替えられる。即ち注目するデータ項目Ｘ３についてワイルドカードの数が同じ「１」であってもワイルドカードの位置によって並べ替えの順序を決めることができる。
このようにワイルドカードの位置に応じた所定の値を計数することで、ワイルドカードの数の少ない順よりもさらに細かく並べ替えの順序を規定することができる。検索者が目的とするデータレコードの検索がより容易となる。
ワイルドカードの位置に応じた所定の値は、データレコードの最右桁又は最左桁から数えて指定すればよく、データレコードの構造や各データ項目におけるデータの内容に依存せずに決定することができる。従って本実施例による指標値もワイルドカードに関連した指標値として定義することができる。
【００５３】
＜実施例４＞
実施例１および実施例２では、データレコードの、部分データ（データレコード中の、照合データと照合するデータの部分）内のワイルドカードの数を指標値とした。そして照合データに対応するデータレコードを抽出した後に、指標値を計数した。ワイルドカードの数を指標値とする場合には、データレコードの全部のあるいは一部のデータ項目についてワイルドカードの数の計数（即ち指標値の計数）を予め行ってマスタデータに記憶しておくことも好ましい。例えば図６に符号１０ａで示した、データ項目Ｘ１についてそのデータ項目内に含まれるワイルドカードの数を予めマスタデータに記憶しておく。データ項目Ｘ２、Ｘ３についても同様に符号１２ａ、１４ａで示すように予めマスタデータに記憶しておく。これにより検索時にワイルドカードの計数処理を行う必要がないので検索時間を短縮することができる。
ワイルドカードの数は照合データの内容に関わらずに一定であり、予め計数しておくことができる。従って本実施例４は、特にワイルドカードの数を指標値として用いる場合に顕著な効果を奏する。ワイルドカードの数の少ない順に並べ替える処理は頻繁に利用される可能性が高いからである。
ワイルドカードの数以外にも、「ワイルドカードに関連した指標値」を予め計数して記憶することも好ましい。
【００５４】
また、ワイルドカードの数を指標値として計数する場合には、次のように構成することも好ましい。検索するときに照合データの中にワイルドカードを含ませることがある。その場合にはデータレコード中の照合対象である部分データのうち、照合データに使用されたワイルドカードの位置に対応する位置に存在するワイルドカードは計数対象から外す。照合データにワイルドカードを使用する場合は、そのワイルドカードの位置に相当する、データレコード中の部分データは任意でよいことを積極的に示している場合である。そのような場合には、照合データのワイルドカードの位置に相当する、データレコード中のデータがワイルドカードであるか特定のデータであるかによって並べ替えの順序を変える必要はない。これにより並べ替え処理を短縮することが可能となる。
【００５５】
なお以上説明した実施例の各処理はコンピュータのプログラムとして実施されてもよいし、電気・電子回路により実行可能な形態で構成されてもよい。
【００５６】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００５７】
【図１】実施例１の検索処理のフローチャート図である。
【図２】実施例１の並べ替え処理のフローチャート図である。
【図３】実施例２の並べ替え処理のフローチャート図である。
【図４】ワイルドカードの使用が許容されているデータレコードの集合（マスタデータ）の一例を模式的に示す図である。
【図５】照合データの一例を示す図である。
【図６】マスタデータから照合データに対応するデータを検索した結果を示す図である。
【図７】並べ替え処理を実施した後の検索結果を示す図である。
【図１】
2006309453.tif 000003
【図２】
2006309453.tif 000004
【図３】
2006309453.tif 000005
【図４】
2006309453.tif 000006
【図５】
2006309453.tif 000007
【図６】
2006309453.tif 000008
【図７】
2006309453.tif 000009