JP2007011438A - 絞り込み検索用インデクス構造及び情報検索装置 - Google Patents

絞り込み検索用インデクス構造及び情報検索装置 Download PDF

Info

Publication number
JP2007011438A
JP2007011438A JP2005187803A JP2005187803A JP2007011438A JP 2007011438 A JP2007011438 A JP 2007011438A JP 2005187803 A JP2005187803 A JP 2005187803A JP 2005187803 A JP2005187803 A JP 2005187803A JP 2007011438 A JP2007011438 A JP 2007011438A
Authority
JP
Japan
Prior art keywords
character
index
search
data
characters
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
JP2005187803A
Other languages
English (en)
Inventor
Masanori Irie
正憲 入江
Minoru Otawara
実 大田原
Noriyuki Yamazaki
典之 山崎
Hisanori Kajiyama
尚紀 梶山
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 Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co 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 Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2005187803A priority Critical patent/JP2007011438A/ja
Publication of JP2007011438A publication Critical patent/JP2007011438A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】
キーワードの先頭から検索する文字を入力するごとに候補文字を絞り込む絞り込み検索を高速に実行できるようにする手段とインデクス構造を提案することを目的とする。
【解決手段】
人名や住所などのキーワード文字列を格納するデータに対して、そのキーワードの文字単位に、該当するデータ件数と、その文字に続く次候補文字情報を持つようにインデクスを構成する。このインデクスを使用して、1文字入力される毎に、それまで入力された文字を先頭から持つデータのデータ件数と、次に検索候補となる文字を次候補文字情報として格納する文字の種類に応じた長さのビットマップを返却することにより抽出し、最終的に絞り込まれた目的とするキーワードデータを抽出する。
【選択図】 図10

Description

本発明は、情報検索装置において、キーワードの先頭から検索する文字を入力するごとに候補文字を絞り込む検索(以下、「絞り込み検索」と呼ぶ)を実現する技術に関するものである。
絞込み検索は、ユーザが目的の名称の情報を検索するための検索方式として、ナビゲーションシステムや、電子辞書や、歌手名を検索する端末装置などで用いられている。
その中の1つのナビゲーションシステムでは、近年、車両や道路交通網が発達するに伴い、GPS(Global Positioning System)を利用して現在位置を取得し、目的地までの経路を誘導してくれるシステムが普及してきている。このようなナビゲーションシステムには、目的地への誘導を補助する機能として、「住所」、「電話番号」、あるいは「名称」といった様々なキーワードから目的地を探し出す検索機能がある。このうち「名称」から検索する機能では、ユーザが名称の先頭から文字を入力するごとに、入力された文字に前方一致するデータの該当件数を表示し、入力されている文字に続く候補文字となる文字だけを入力可能にすることで目的地を絞り込む絞込み検索が利用されている。
図12は、このような検索システムの概要を表すブロック構成図である。この検索システムは、検索結果を表示するデータ表示部1201、キーワードとなる文字を入力するデータ入力部1202、データを検索するデータ処理部1203、及び、検索対象のデータが格納されている記憶装置1204を備える。このような構成の検索システムでは、データ入力部1202から入力されたキーワードとなる文字をもとにデータ処理部1203が記憶装置1204からデータを読み出し、表示部1201に検索結果を表示する。
下記特許文献1には、絞り込み検索を使用して入力を簡単化するナビゲーション装置が開示されている。この絞込み検索の方法は、文字が入力される毎に入力文字と検索対象データとの名称の前方一致比較を行い、一致した場合に、一致データリストへの登録と該当件数の加算により該当件数を求めるものである。
また、現在公知のインデクス構造を採用しているDBMS(Data Base Management System)で絞り込み検索を実装することも可能である。この場合には、SQL(Structured Query Language)と呼ばれる言語を使用してデータを操作する。SQLで使用する表名を「名称」、検索する列名を「キーワード」とする。ここでは、例えば、'あさ'をキーワードに、従来技術で絞り込み検索を実装する場合、まず、該当件数を求めるためのSQLとして、
SELECT COUNT(*) FROM 名称 WHERE キーワード LIKE'あさ%'
を実行し、該当件数を求める。次に、次候補文字を検索するために、次のSQL、
SELECT * FROM 名称 WHERE キーワード LIKE'あさ%'
を実行し、すべての検索結果から、どの文字が次候補文字として存在しているかを求め直す必要がある。このように、DBMSでも2つのSQLを実行することにより絞り込み検索を実現できる。
特開2003−294475
上記特許文献1に記載の技術では、一致データリストへの登録と該当件数を求めるので、入力文字に前方一致した一致データリストのデータ数が多い場合には、データ数分の前方一致比較処理を実施することになり、性能上の問題があった。
上記DBMSでSQLを用いて絞り込み検索を実装した場合、検索の度に2つのSQLを実行するため、同じインデクスに2度アクセスしなければならない。また、該当する全てのインデクスにアクセスしなければならないため、該当する件数が多い場合には検索に時間がかかるという問題が発生する。
このように、公知のインデクス構造で絞り込み検索を実装する場合においても、該当件数を求める処理と次候補文字を求めるために該当するキーワードを含んでいる全てのインデクスにアクセスしなければならないため、検索性能上の問題があった。
本発明の目的は、より高速に絞り込み検索を行う手段、及びそれを実現するためのインデクス構造を提案することにある。
上記目的を達成するために、請求項1に係る発明は、所定のキーワード文字列を有するデータに対して、キーワードの先頭から検索する文字を1文字づつ入力し、目的とするデータを絞り込みながら検索する絞り込み検索用のインデクス構造であって、検索対象として登録するデータのキーワード文字列を文字毎に分解し、それらの各文字毎のインデクスキーを、ルートから順に下位方向にチェインで繋げ、各文字のインデクスキーに対応して、先頭からそのインデクスキーの文字までの文字列に前方一致するデータ件数と、その次に続くことが可能な文字である次候補文字情報とを備えるようにしたことを特徴とする。
請求項2に係る発明は、請求項1に記載の絞り込み検索用のインデクス構造において、登録するデータのキーワード文字列をインデクスキーとして登録するとき、ある文字以降は1つのキーワード文字列の並びしか可能性がないときには、文字毎のインデクスキーとする代わりに、複数文字のインデクスキーとすることを特徴とする。
請求項3に係る発明は、請求項1または2に記載の絞り込み検索用のインデクス構造において、前記次候補文字情報は、インデクスキーになる可能性のある文字の種類数分のビットからなるビット情報で表現されていることを特徴とする。
請求項4に係る発明は、請求項1から3の何れか1つに記載の絞り込み検索用のインデクス構造を利用した情報検索装置において、検索を行うユーザアプリケーションから1文字ずつ入力された文字に対して、前記インデクスキーをルートから順に辿り、そこまでに入力された文字を先頭から持つデータのデータ件数と、次に検索候補となる次候補文字情報を返却するユーザアプリケーションインターフェースを備えたことを特徴とする。
請求項5に係る発明は、請求項4に記載の情報検索装置において、検索する文字が1文字ずつ入力されていった途中でユーザから検索実行指示があったとき、ルートから辿っていってその時点で行き着いているインデクスキーからさらに下位にインデクスキーを辿り、最終的に絞り込まれた目的とするデータを抽出することを特徴とする。
本発明によれば、1文字入力される毎にインデクスを順に参照するだけで、そこまでに入力されたキーワードに前方一致するデータの該当件数と、そのキーワードに続く可能性のある文字を示す次候補文字情報を得られるため、絞り込み検索の検索性能を向上させることができる。また、DBMSで絞り込み検索を実装する場合に、検索性能を向上させることができる。さらに、次候補文字情報をアプリケーションに返すインターフェースを提供できる。
以下、本発明を適用した情報検索装置の一実施の形態について、図面を参照して具体的に説明する。
図1は、本発明の一実施形態を示すブロック構成図である。この情報検索装置は、検索画面部101、検索するデータが格納されている地図関連データ群102、地図関連データに対するインデクスが格納されているインデクスデータ群103、及び、検索処理を行なう検索処理部106を備えている。
検索画面部101は、ナビゲーションシステムの画面に相当しており、検索する文字を入力するための入力部104と、検索した結果を表示する表示部105とを備えている。検索処理部106は、DBMSなどの検索機能をもったソフトウェア及びそれを動作させるハードウェアに相当しており、入力部104から入力された情報をもとにインデクスデータ群102や地図関連データ群103への検索処理を行い、検索結果を105に返却する処理を行なうものである。
図2は、地図関連データ群102に格納される地図関連データの例を示す。地図関連データは施設ごとに登録される。なお、地図データも同様にして格納されているがここでは省略する。1つの施設を示す地図関連データは、施設名201、施設読み202、住所203、電話番号204、及び位置情報205から構成される。このうち、施設読みにインデクスが付与しており、施設読みからデータを絞り込み、住所、電話番号、位置等を特定するようになっている。なお、ここでは施設読みにインデクスを付与する例で説明するが、他の情報をインデクスとしても良い。
ここで、例えば「あさひきねんびょういん」を検索した場合、施設名の検索結果として「朝日記念病院」が表示されることになる。また、施設読みからデータを特定しているため、「旭記念病院」など読みが同じ別の施設がある場合、検索結果には両方が表示される。
図3は、インデクスデータ群103に格納されるインデクスデータを概念的に示したものである。なお、インデクスデータの実際の構造については後に詳述する。図3において、インデクスデータは、概念的に見ると、キーワード301、キーワードを含む該当件数302、及びキーワードに続く候補文字303から構成される。1行目のインデクスデータは、入力するキーワードが「あ」である場合、施設読み202の先頭が「あ」であるようなデータの該当件数が「10万件」であり、その「あ」に続く候補文字が「あ、く、さ、し、…」であることを示している。従って、施設読み202が先頭から「ああ…」や「あく…」の施設はあるが、「あい…」や「あう…」の施設はないことが分る。2行目以降のインデクスデータも同様である。例えば、4行目のインデクスデータは、入力するキーワードが「あさひき」である場合、施設読み202が先頭から「あさひき…」であるようなデータの該当件数が「20件」で、それに続く候補文字が「ね、り」であることを示している。これにより、地図関連データ中には「あさひきね…」や「あさひきり…」という施設読みのデータが格納されていることが分る。なお、この例では濁点も1文字とみなしているため、例えば「びょういん」は候補文字「ひ」の下に続く文字列とされる。もちろん、「び」のように濁点も含めて1文字とみなすようなデータ構成であってもよい。
図4は、概念的に図3のように表されるインデクスデータを、実際のデータとしてどのように構成するかを示したインデクス構成図である。インデクスデータは、検索時に検索対象となるインデクスキー401、先頭文字からインデクスキーまでのキーワードを含む該当件数402、及びインデクスキーに続く次候補文字ビットマップ403から構成されている。例えば、「あさひ」に対してインデクスを付与する場合、インデクスキー401が「あ」のデータ、その「あ」から下位にチェーンされるインデクスキー401が「さ」のデータ、及び、その「さ」から下位にチェーンされるインデクスキー401が「ひ」のデータというように、3つのインデクスキーのデータに分け、それぞれの文字ごとに該当件数と次候補文字ビットマップを保持する。
なお、先頭文字の「あ」は最上位ノードであるルートとチェーンされており、検索の際にはルートから1文字ずつチェーンをたどっていくようにしている。また、該当件数が1件になった時点で、それ以降の文字については文字毎に分けてインデクスキーを持つ必要がないので、インデクスキー401をそれ以降そのキーワードの最後の文字までの文字列とし、該当件数402は1件とし、次候補文字ビットマップ403にはそのキーワードの地図関連データ群102上の位置を格納する。例えば、キーワードの先頭から「あさひきねん」であるようなデータは5件あるが、「あさひきねんひ」であるデータは1件しかなく、それは「あさひきねんびょういん」であるので、インデクスキー401が「ん」の下位に、インデクスキー401が「びょういん」であるインデクスデータをチェインしている。インデクスキー401が「びょういん」のデータの該当件数402は1件であり、次候補ビットマップ403には「あさひきねんびょういん」の地図関連データ群102上の位置(図4では単に0で埋めているが、実際には位置情報が入る)を格納している。該当件数が1件になった時点でそれ以降の文字を1つのインデクスキーとして管理することで、文字ごとにインデクスキーを保持する場合に比べてインデクス容量を削減することができる。
該当件数402は、先頭文字からインデクスキーまでのキーワードを含む該当件数を表している。図4では、「あ」、「さ」、「ひ」の該当件数はそれぞれ100000、10000、500になっているが、これは施設読み202が「あ」から始まるデータが10万件、「あさ」から始まるデータが1万件、「あさひ」から始まるデータが500件あることをそれぞれ表している。インデクスキーを文字ごとに管理しているため、キーワード「あさひ」に対してインデクスを付与する場合は、「あ」、「さ」、「ひ」それぞれに該当件数を加算する。
次候補文字ビットマップ403は、インデクスキーの文字の次にどの文字が候補文字として存在しているかを表している。次候補文字ビットマップ403は、バイト単位の配列で構成される。どの文字が候補文字として存在するかは、配列の中で次候補文字が存在する部分のビットを「1」にすることで管理している。1バイトは8ビットであるため、1バイトで8文字を管理でき、管理する文字の種類によって配列の長さを決定する。
図5は、次候補文字ビットマップの各ビットと文字との対応関係の例を示す。図5(a)はアルファベットの大文字のみを管理する場合の対応関係である。501は図4で説明した次候補文字ビットマップ403の先頭からのビット列を示し、502はそれらの各ビットに対応するアルファベットの大文字を示す。この例では文字AとJのビットが1であり、他のビットは0である。従って、次候補文字としてAとJがあることが分る。この例はアルファベットの大文字のみを管理する例であるので、次候補文字ビットマップ501は26個の文字を管理できれば良い。1バイトで8文字管理できるため、次候補文字ビットマップ501は4バイトの配列で構成される。
図5(b)は、「あいうえお…」の50音と数字を利用する場合の対応関係である。図4で説明した次候補文字ビットマップ403の先頭からの各ビットに、「あいうえお…」の50音と数字を対応させている。図3や図4及びこれ以降の説明では、図5(b)の対応関係の次候補文字ビットマップを利用する。従って、例えば図3から「あさひき」に続く候補文字は「ね、り」であるから、図4のように、インデクスキー「き」の次候補文字ビットマップは「ね」、「り」の部分だけのビットが「1」となっている。このように、管理する文字が多い場合は、それに応じてビットマップの配列を大きくすることで対応することができる。すなわち、管理する文字の数に応じてビットマップの配列の長さを決定する。
図6を用いてインデクスデータを更新する方法を説明する。例えば、図4の状態からインデクスデータに「あさひきこう」を追加したいとする。この場合、図4から「あ」、「さ」、「ひ」、「き」までの文字は、既にインデクスキー601が存在しているため、「あ」、「さ」、「ひ」、「き」の該当件数602にそれぞれ1加算する。また、「あ」、「さ」、「ひ」までは新たに追加すべき候補文字はないため、これらのインデクスキーの次候補ビットマップは更新する必要がない。次に、「き」に続く候補文字に「こ」は存在していなかったので、まずインデクスキー「き」の次候補ビットマップ603上の「こ」のビットを「1」に更新する。次に、新たにインデクスキーを追加するが、「こう」以降は該当件数が1であるため、「こう」は1つのインデクスキーとして、「き」の下位にチェインするように、追加する。「こう」の該当件数602は1件であり、次候補ビットマップ603には地図関連データ群102上の施設読み202が「あさひきこう」であるデータの位置が格納される。このようにしてインデクスを更新する。
図7を用いて、本実施形態の絞り込み検索を実装した情報検索装置の操作方法を説明する。図7は、表示部105に表示される検索画面の例を示す。検索画面は、入力した文字を表示する検索文字欄701、それらの検索文字を含む該当件数を表示する該当件数欄702、検索を実行しその検索結果の一覧の表示を指示する検索ボタン703、入力する文字を選択する文字入力部704、及び、検索結果の一覧を表示する検索結果一覧表示領域705から構成される。検索を行う前の状態では、検索文字欄701は空白、該当件数欄702は0、検索結果一覧表示領域705も空白になっている。
ユーザが文字入力部704で検索する文字を入力すると、検索文字欄701には、入力された文字が順に表示され、該当件数欄702には、検索文字欄701に表示されている検索文字を含む該当件数が表示される。その際、文字入力部704は、次候補文字が存在する文字部分のみ選択可能である。検索文字の入力を進め、該当件数が絞り込まれたら、ユーザは検索ボタン703を選択する。これにより、地図関連データ群102の検索が実行され、検索結果一覧表示領域705に、該当件数欄702に表示されている該当件数分の検索結果一覧が表示される。
例えば、図7のように「あさひきねん」を検索する場合、まず「あ」と入力すると、図3から「あ」に続く該当件数が10万件、次候補文字が「あ、く、さ、し、た、ぬ、み、ら、わ」であることから、該当件数欄702には該当件数「10万」が表示され、文字入力部704は「あ、く、さ、し、た、ぬ、み、ら、わ」のみが入力可能となる。これを繰り返し「あさひきねん」まで入力すると、該当件数欄702には「5」が表示され、文字入力部704は「か、こ、た、ひ、ふ」のみが入力可能となる。次に、検索ボタン703により検索を実行すると、検索結果一覧表示領域705には、「あさひきねん」を含む該当件数の5件分の検索結果一覧として、「朝日記念病院」、「朝日記念会館」、「朝日記念体育館」、「朝日記念文化会館」、及び「朝日記念公園」が表示される。
以下、以上のように構成された情報検索装置の動作を説明する。
図8は、本情報検索装置における動作の概要を示すフローチャートである。本フローチャートは、ユーザの動作と本装置の動作の両方の流れを示したものである。まず、ユーザは文字入力部704で検索する文字を入力する(ステップ801)。本装置は、入力された文字を元にインデクスデータ群102から該当件数と次に続く次候補文字を検索し、該当件数を該当件数欄702に表示し、文字入力部704がその次候補文字のみ入力可能になるように制御する(ステップ802)。次に、ユーザは該当件数欄702の結果から該当件数が絞りこまれたか判断する(ステップ803)。該当件数が未だ多いと判断した場合、ユーザは再び文字入力部704で検索する文字を追加し再検索する。該当件数が十分絞り込まれた場合、ユーザは検索ボタン703を選択する。本装置は、その検索実行の指示に応じて、地図関連データ群102にアクセスし、検索結果一覧を検索結果一覧表示領域705に表示する(ステップ804)。
図9は、図8の流れを実現する情報検索装置の処理の概要を示すフローチャートである。ユーザの所定の操作で検索の開始が指示されると、本装置は、まず初期状態の検索画面(図7)を表示するとともに、インデクスデータ群103を検索し(ステップ901)、該当件数と次候補文字ビットマップを取得する(ステップ902)。検索の開始が指示された時点では、1文字も入力されていないので、ステップ901,902は、ルートインデクスを参照して該当件数と次候補文字ビットマップを取得する処理となる。該当件数は該当件数欄702に表示する。なお、このときの該当件数は全データ数となり大きすぎるので、該当件数が所定数以上の場合のみ該当件数欄702に表示することとしてもよい。また取得した次候補文字ビットマップに基づいて、文字入力部704でその次候補文字のみが入力可能になるように制御する。
次に、ユーザによる指示操作を判別する(ステップ903)。検索文字の追加があった場合は、そこまでに検索されているインデクスキーの下位に、当該入力した文字のインデクスキーが存在するかを判定する(ステップ904)。存在しなかった場合は、検索終了(検索終了とする代わりにステップ903に戻って再びユーザの指示操作を待っても良い)となる。存在していた場合、その下位インデクスにアクセスし(ステップ905)、ステップ901に戻る。ステップ903でユーザが検索文字を1文字削除(バックスペース)した場合は、現在までに検索されているインデクスの上位インデクスにアクセスし(ステップ906)、ステップ901に戻る。
ステップ903で検索ボタン703が押下された場合は、地図関連データ群102にアクセスし(ステップ907)、該当するデータを取得し、検索結果一覧表示領域705に表示する(ステップ908)。なお、ステップ907の処理では、そこまでに検索されているインデクスの該当件数1件である場合は、そのインデクスの次候補文字ビットマップの欄から該当データの地図関連データ群102上の位置を取得し、該当データを取得する。また、そこまでに検索されているインデクスの該当件数が複数件である場合は、そのインデクスから下位にインデクスをたどり、該当件数1件のインデクスまで取得し、そのインデクスが指す該当データを全て取得する。
図10を用いて、実際の検索処理の流れを説明する。図10は、「あさひきねんびょういん」に対するインデクス構成図であり、インデクスキーのルート1001、「あ」に対するインデクスキー1002、「さ」に対するインデクスキー1003、…、「ん」に対するインデクスキー1004、及び「びょういん」に対するインデクスキー1005から構成される。インデクスキー1005の次候補文字ビットマップ欄の位置情報に基づいて、地図関連データ群1006内の「あさひきねんびょういん」のデータ(図2)を取得できる。
ルート1001は、インデクスの一番上位のキーである。このルートキー1001も、該当件数と次候補文字ビットマップを保持している。検索開始時は、まずこのルートインデクス1001から、該当件数と次候補文字を求める。ルート1001とインデクスキー1002、インデクスキー1002とインデクスキー1003のように、上位と下位のインデクスはそれぞれチェーンで繋がっており、検索時は上位と下位、双方向へのアクセスが可能となっている。また、「びょういん」のインデクスキー1005は、これ以降のキーが存在しないため、次候補文字ビットマップは保持しておらず、その代わりに地図関連データ群1006上の当該データ「あさひきねんびょういん」の格納位置を保持している。つまり、一番下位のキーが地図関連データ群1006の格納位置を保持しているため、インデクスにアクセスすることで地図関連データ群1006の中から検索条件に該当するデータを得ることができる。
例えば、「あさひきねんびょういん」を検索する場合、検索開始時はルート1001のインデクスを参照し、図9のステップ901,902,903が実行される。次にユーザにより「あ」が入力されると、ステップ903からステップ904に処理が移る。入力された文字が存在しているどうかは、インデクス1001のビットマップを参照し、入力文字「あ」のビットが「1」かどうかで判定する。この場合、「あ」は存在しているので、ステップ905で下位の「あ」のインデクスキー1002の情報を参照し、再びステップ901から903までの処理が実行される。次にユーザにより「さ」が入力された場合も同様の処理が行なわれ、今度はインデクスキー1003の情報を参照する。このように文字が入力されるごとに下位のインデクスを参照していく。
「あさ」まで入力した時点では、インデクスキー1003の情報を参照している。ここで、ユーザが「さ」を削除した場合、ステップ903から906に処理が移り、インデクスはそれぞれ上位と下位のチェーンを持っているため、インデクスキー1003から上位インデクスへ戻り、インデクスキー1002の情報を参照する。このように文字が削除されるごとに上位のインデクスを参照する。
「あさひきねん」まで入力した時点では、インデクスキー1004を参照している。次にユーザが検索ボタン703を押下すると、ステップ907の処理により、インデクスキー1004に繋がっている下位のインデクス全てを参照する。「あさひきねんびょういん」を参照する場合は、一番下位のインデクスキー1005「びょういん」を参照すると、地図関連データの格納位置が分かるため、地図関連データベースにアクセスし、施設名の検索結果として「朝日記念病院」が表示される。
以上のような本実施形態の絞り込み検索方式はDBMSで実装することもできる(もちろんインデクスのデータ構造は上述した構造とする)。その場合、まず、検索するキーワードに該当する上位インデクスのみを参照し、該当件数と次候補文字ビットマップを返却するインターフェースを、DBMSに実装する。次に、キーワードに該当する文字を検索する場合は、下位のインデクスを参照し、地図関連データ群から該当するデータを検索する。
この方法を実施する例として、ここでは、例えば、SQLで使用する表名を「施設データ」、列名を「施設読み」とすると、まず、次のSQLを実行する。
SELECT * FROM 施設データ WHERE 施設読み LIKE '%'
このSQLを実行した直後は、インデクスのルートを参照する状態となる。次に、'あ'、'さ'のように文字が入力されている間は、文字が入力されるたびに下位のインデクスを参照していき、該当件数と次候補文字を求める。入力文字なしで実行した場合には、キーワードに該当する全ての文字を検索する。このような方法により、本発明を適用した絞り込み検索をDBMSで実装できる。
図11は、図3,4,10などで説明したインデクスの更新処理の概要を示すフローチャートである。更新処理では、まず、インデクスデータに追加するデータを1文字ずつに分解し(ステップ1101)、分解した各文字を処理対象として順にステップ1103以降の追加処理を行なう。まず、ルートの該当件数に1を加算し(ステップ1102)、分解した文字のうちの先頭文字を処理対象として、ルートの下位に、その文字のインデクスキーが既に存在しているかを判定する(ステップ1103)。なお、ステップ1103以降の追加処理では所定のインデクスキーを参照するが、それを参照対象のインデクスキーと呼ぶ。ステップ1102から1103に進む時点では、ルートのインデクスキーが参照対象のインデクスキーである。
ステップ1103では、参照対象のインデクスキーの次候補文字ビットマップを参照し、その下位に、処理対象の文字のインデクスキーが存在するか否か判定する。存在しなかった場合、その処理対象の文字以降の文字については1つのインデクスキーとすれば良いから、処理対象の文字以降の文字(処理対象の文字を含む)をまとめて1つのインデクスキーにする(ステップ1104)。次に、参照対象のインデクスキーの次候補文字ビットマップの、ステップ1104で1つのインデクスキーにした文字列の先頭文字に対応するビットを、1に更新する(ステップ1105)。さらに、ステップ1104で作成したインデクスキーを新たなインデクスキーとして、参照対象のインデクスキーの下位にチェインするように追加する(ステップ1106)。この場合、追加したインデクスキーの該当件数には1を設定し、その次候補文字ビットマップの欄には当該追加データの地図関連データ群102内の位置を設定し(ステップ1107)、更新終了とする。
ステップ1103で参照対象のインデクスキーの下位に処理対象の文字のインデクスキーが既に存在していた場合、まず、その処理対象の文字のインデクスキーの該当件数に1を加算し(ステップ1108)、そのインデクスキー長が1かどうか判定する(ステップ1109)。キー長が1の場合は、キーを分解する必要がないので、残りの文字(すなわち、いま処理対象としている文字の次の文字)があるか判定する(ステップ1114)。残りの文字がある場合、その文字を新たに処理対象の文字とし、ステップ1108で該当件数に1を加算したインデクスキーを新たに参照対象のインデクスキーとして、ステップ1103から再実行する。ステップ1114で残りの文字がない場合は、更新終了とする。
ステップ1109でキー長が1でない場合、処理対象の文字以降の文字列と、ステップ1103で既に存在していたインデクスキーとが、全て一致しているか判定する(ステップ1110)。全て一致していた場合は、更新終了とする。残りのキーのどれかが一致してない場合(この場合は、先頭から部分的に一致し、それ以降が不一致)は、まず、既に存在しているキーの先頭部分(一致部分)のみを分解する(ステップ1111)。次に、分解したインデクスキーのビットマップを更新し(ステップ1112)、分解した残りのキー(後半の不一致部分)を新たなインデクスキーとして追加する(ステップ1113)。最後に、残りのキーがあるか判定し(ステップ1114)、残りのキーが存在している場合は、ステップ1103から処理を繰り返し、残りのキーがない場合は、更新終了となる。
ここでは、例えば、図10のインデクスに対して「あさひきこう」を追加する場合、まず、「あ」、「さ」、「ひ」、「き」、「こ」、「う」に分解する。「あ」を追加する場合、まず、ルートの該当件数に1加算する。インデクスキー「あ」は、既に存在しているので該当件数に1を加算し、キー長は1であるので、次の「さ」を追加する処理に移る。これを繰り返していき、「こ」を追加する処理になった場合、まず、「き」の該当件数に1を加算する。次に、「き」の下位のインデクスキーには「こ」のインデクスキーは存在していないので、「こ」と「う」を一つのインデクスキーにする。次に、「き」のインデクスのビットマップを更新し、新たなインデクスキー「こう」を追加し、該当件数には1を設定する。このようにしてインデクスは更新される。
なお、上記実施形態では同じインデクス(同じ施設読み)のデータが複数有るケースを省略したが、その場合は、最下位のインデクスの該当件数を2件とし、次候補ビットマップからそれら2件のデータにアクセスできるようにし、参照するインデクスが最下位のものであることが分るようにすればよい。
本発明の一実施の形態例を示すシステム構成図である。 地図関連データベースに格納されているデータ構成図である。 インデクスデータベースに格納するデータ構成図である。 インデクスデータ構成図である。 次候補文字ビットマップの構成図である。 更新後のインデクスデータ構成図である。 検索画面の一例である。 絞り込み検索処理を示すフローチャートである。 インデクスデータ群、及び地図関連データ群を検索する処理を示すフローチャートである。 インデクス構成図である。 インデクスの更新処理の概要を示すフローチャートである。 従来の絞り込み検索の概略構成図である。
符号の説明
101…検索画面、102…地図関連データ群、103…インデクスデータ群、104…入力部、105…表示部、701…検索文字表示部、702…該当件数表示部、703…検索処理実行部、704…検索文字入力部、705…検索結果一覧表示部。

Claims (5)

  1. 所定のキーワード文字列を有するデータに対して、キーワードの先頭から検索する文字を1文字づつ入力し、目的とするデータを絞り込みながら検索する絞り込み検索用のインデクス構造であって、
    検索対象として登録するデータのキーワード文字列を文字毎に分解し、それらの各文字毎のインデクスキーを、ルートから順に下位方向にチェインで繋げ、各文字のインデクスキーに対応して、先頭からそのインデクスキーの文字までの文字列に前方一致するデータ件数と、その次に続くことが可能な文字である次候補文字情報とを備えるようにしたことを特徴とする絞り込み検索用のインデクス構造。
  2. 請求項1に記載の絞り込み検索用のインデクス構造において、
    登録するデータのキーワード文字列をインデクスキーとして登録するとき、ある文字以降は1つのキーワード文字列の並びしか可能性がないときには、文字毎のインデクスキーとする代わりに、複数文字のインデクスキーとすることを特徴とする絞り込み検索用のインデクス構造。
  3. 請求項1または2に記載の絞り込み検索用のインデクス構造において、
    前記次候補文字情報は、インデクスキーになる可能性のある文字の種類数分のビットからなるビット情報で表現されていることを特徴とする絞り込み検索用のインデクス構造。
  4. 請求項1から3の何れか1つに記載の絞り込み検索用のインデクス構造を利用した情報検索装置において、
    検索を行うユーザアプリケーションから1文字ずつ入力された文字に対して、前記インデクスキーをルートから順に辿り、そこまでに入力された文字を先頭から持つデータのデータ件数と、次に検索候補となる次候補文字情報を返却するユーザアプリケーションインターフェースを備えたことを特徴とする情報検索装置。
  5. 請求項4に記載の情報検索装置において、
    検索する文字が1文字ずつ入力されていった途中でユーザから検索実行指示があったとき、ルートから辿っていってその時点で行き着いているインデクスキーからさらに下位にインデクスキーを辿り、最終的に絞り込まれた目的とするデータを抽出することを特徴とする情報検索装置。
JP2005187803A 2005-06-28 2005-06-28 絞り込み検索用インデクス構造及び情報検索装置 Pending JP2007011438A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005187803A JP2007011438A (ja) 2005-06-28 2005-06-28 絞り込み検索用インデクス構造及び情報検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005187803A JP2007011438A (ja) 2005-06-28 2005-06-28 絞り込み検索用インデクス構造及び情報検索装置

Publications (1)

Publication Number Publication Date
JP2007011438A true JP2007011438A (ja) 2007-01-18

Family

ID=37749897

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005187803A Pending JP2007011438A (ja) 2005-06-28 2005-06-28 絞り込み検索用インデクス構造及び情報検索装置

Country Status (1)

Country Link
JP (1) JP2007011438A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009150787A (ja) * 2007-12-20 2009-07-09 Aisin Aw Co Ltd 目的地入力装置及び目的地入力用プログラム
EP2270690A1 (en) 2009-06-30 2011-01-05 CLARION Co., Ltd. Name searching apparatus with incremental input

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773187A (ja) * 1993-09-01 1995-03-17 Hokkaido Nippon Denki Software Kk 検索システム
JPH0997266A (ja) * 1995-09-29 1997-04-08 Aisin Aw Co Ltd 車両用ナビゲーション装置
JPH11328204A (ja) * 1998-05-18 1999-11-30 Sumitomo Electric Ind Ltd 入力処理方法及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773187A (ja) * 1993-09-01 1995-03-17 Hokkaido Nippon Denki Software Kk 検索システム
JPH0997266A (ja) * 1995-09-29 1997-04-08 Aisin Aw Co Ltd 車両用ナビゲーション装置
JPH11328204A (ja) * 1998-05-18 1999-11-30 Sumitomo Electric Ind Ltd 入力処理方法及び装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009150787A (ja) * 2007-12-20 2009-07-09 Aisin Aw Co Ltd 目的地入力装置及び目的地入力用プログラム
EP2270690A1 (en) 2009-06-30 2011-01-05 CLARION Co., Ltd. Name searching apparatus with incremental input
CN101937451A (zh) * 2009-06-30 2011-01-05 歌乐株式会社 名称检索装置

Similar Documents

Publication Publication Date Title
US20070185650A1 (en) Method and apparatus for searching point of interest by name or phone number
US20120229376A1 (en) Input device
JP2007310734A (ja) 検索装置
JP2006099428A (ja) 文書要約作成システム、方法、及びプログラム
JP2009140287A (ja) 検索結果表示装置
JP2007011438A (ja) 絞り込み検索用インデクス構造及び情報検索装置
JP2011159154A (ja) 地点検索装置
JP4273559B2 (ja) 検索装置
JP2010286870A (ja) 地点検索装置、地点検索方法及びプログラム
JP2008117310A (ja) 辞書検索装置および辞書検索処理プログラム
JP5359789B2 (ja) 地点検索装置及びプログラム
JP5577809B2 (ja) 施設検索装置及びプログラム
JP3225735B2 (ja) 情報検索装置
JP5533576B2 (ja) 情報作成装置、情報作成方法及びプログラム
JP4510784B2 (ja) 所在地解析装置、所在地解析方法及びそのプログラム並びに記録媒体
JP5299226B2 (ja) 地点検索装置及びプログラム
JP2005222244A (ja) 単語検索装置、単語検索方法、およびその単語検索装置を備える情報提供システム
JP2011048437A (ja) 文字列検索システム、文字列データベースのデータ構造及びナビゲーション装置
JPH08249356A (ja) データベース検索システム
JP5353649B2 (ja) 地点検索装置及びプログラム
KR20120073096A (ko) 검색 장치, 검색 방법 및 검색 프로그램
JP5273082B2 (ja) 施設検索装置及びプログラム
JPH0991311A (ja) 情報蓄積検索装置およびその制御方法
JP5407760B2 (ja) 地点検索装置及びプログラム
JP5299307B2 (ja) 地点検索装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110107