JP5980520B2 - 効率的にクエリを処理する方法及び装置 - Google Patents

効率的にクエリを処理する方法及び装置 Download PDF

Info

Publication number
JP5980520B2
JP5980520B2 JP2012031022A JP2012031022A JP5980520B2 JP 5980520 B2 JP5980520 B2 JP 5980520B2 JP 2012031022 A JP2012031022 A JP 2012031022A JP 2012031022 A JP2012031022 A JP 2012031022A JP 5980520 B2 JP5980520 B2 JP 5980520B2
Authority
JP
Japan
Prior art keywords
string
subset
candidate set
query processing
database
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.)
Active
Application number
JP2012031022A
Other languages
English (en)
Other versions
JP2012221489A (ja
Inventor
永 勳 金
永 勳 金
▲ひょん▼ 旻 朴
▲ひょん▼ 旻 朴
揆 錫 沈
揆 錫 沈
景 久 禹
景 久 禹
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.)
Samsung Electronics Co Ltd
SNU R&DB Foundation
Original Assignee
Samsung Electronics Co Ltd
Seoul National University R&DB Foundation
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 Samsung Electronics Co Ltd, Seoul National University R&DB Foundation filed Critical Samsung Electronics Co Ltd
Publication of JP2012221489A publication Critical patent/JP2012221489A/ja
Application granted granted Critical
Publication of JP5980520B2 publication Critical patent/JP5980520B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24535Query rewriting; Transformation of sub-queries or views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/156Query results presentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Description

本発明は、効率的にクエリストリング(query string)を処理する方法及びその装置に関する。
テキスト文書(document)の検索(searching)は、自然言語(natural language)で表現された情報の検索、遺伝子列分析(genetic sequence processing)などの多様な分野で広く使われている。蛋白質とDNAとの列(sequence)で特別のアルファベット列(例えば、DNAのA,C,G,T)は、テキスト文書と見なされる。かようなテキスト文書の検索のための代表的な確率モデルとして、N−gramモデルを挙げることができる。
本発明は、長さの異なる複数個の部分ストリングを使用し、検索性能を向上させるクエリ処理方法及びその装置を提供するものである。
本発明はまた、複数個の部分ストリングセットのサブセットを効率的に決定し、クエリ処理性能を向上させるクエリ処理方法及びその装置を提供するものである。
一類型によるクエリ処理方法は、クエリストリングから長さが同じあるか、あるいは異なる複数個の部分ストリングから構成された有効ストリングセットを生成する段階と、多数の文書の情報が保存されたデータベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定する段階と、前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索する段階と、を含む。
また、一類型によるクエリ処理装置は、クエリストリングが入力され、前記クエリストリングが存在する文書が出力されるユーザ・インターフェース;多数の文書に係わる情報が保存されたデータベース;及び前記クエリストリングから、長さの異なる複数個の部分ストリングから構成された有効ストリングセットを生成し、前記データベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定し、前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索するプロセッサ;を含む。
本発明のクエリ処理方法及びその装置は、長さが固定されていない複数個の部分ストリングを使用するために、検索性能を向上させることができる。
併せて、既存の逆索引データベースの構造を変更させずに、候補セットに含まれる部分ストリングまたは候補セットの選定方法を改善したので、既存の逆索引データベースをそのまま活用することができる。
本発明の一実施形態によるクエリ処理装置のブロック図である。 本発明の一実施形態によるクエリストリングによる文書を検索する方法について説明するフローチャートである。 本発明の一実施形態によるストリングセット生成部の細部ブロック図である。 本発明の一実施形態によるツリー構造で具現された索引語の構造を図示した図面である。 本発明の一実施形態による有効ストリングを生成する過程について説明するフローチャートである。 本発明の一実施形態による候補セット決定部の細部ブロック図である。 本発明の第1実施形態による候補セットを決定する方法について説明するフローチャートである。 本発明の一実施形態による第1実施形態を介して候補セットを決定する方法について説明するための図面である。 第2実施形態による候補セットを決定する方法について説明するフローチャートである。 本発明の一実施形態による第2実施形態を介して候補セットを決定する方法について説明するための図面である。
以下、添付された図面を参照しつつ、本発明の実施形態について詳細に説明する。
図1は、本発明の一実施形態によるクエリ処理装置(apparatus for processing query)のブロック図である。図1を参照すれば、クエリ処理装置100は、ユーザ・インターフェース105、プロセッサ135及びストレージ165から構成される。クエリ処理装置は、ウェブページなどで表示される検索エンジンを具備し、クエリストリング(query string)に係わる検索結果を出力するPC(personal computer)、携帯端末機などであってもよく、ユーザ端末と、インターネットのネットワークとに連結されている別途のサーバであってもよい。従って、図1に図示されたクエリ処理装置100は、他のPC、他の携帯端末機、他のサーバなどと通信するための通信モジュールなど、他の一般的な構成要素をさらに含んでもよい。
ユーザ・インターフェース105は、ユーザからクエリを入力され、このクエリによる文書の検索結果を出力する装置である。ここで、ユーザ・インターフェースは、ユーザからクエリを入力されるためのキーボード、マウスのような入力装置と、ユーザに文書の検索結果を表示するための出力装置と、を含み、ウェブページのようなGUI(graphic user interface)で表現されることもできる。ここで、クエリは、あるストリングを含んでいる文書を検索せよというユーザの要請を意味する。かようなクエリに含まれているストリングを、以下では簡単に、「クエリストリング」と呼ぶ。
ストレージ165には、任意のストリングを含んでいる多数の文書の情報が保存されている。例えば、ストレージ165には、索引語が保存されている索引語DB(index term database)140が含まれている。ストレージ165にはまた、文書検索に利用される部分ストリングである索引語と、索引語が含まれた文書の識別情報とがマッチングされた逆索引DB(inverted index database)150が保存されている。この逆索引DB 150は、文書に含まれた文字をN−gramに分離し、N−gramに分離された各部分ストリングを、当該文書に係わる情報とマッチングさせることによって生成される。また、文書の識別情報に対応する文書が保存された文書DB(document database)160をさらに含むことができる。一方、文書DB 160は、クエリ処理装置に含まれるが、クエリ処理装置と通信可能な外部装置またはサーバに含まれてもよい。
プロセッサ135は、クエリストリングが入力されれば、クエリストリングをN−gramに分離し、逆索引DB 150で、クエリストリングに含まれた部分ストリングとマッチングされた文書の識別情報を読み取る。また、プロセッサ135は、検索された文書の識別情報を有する文書を、文書DB 160で読み取る。プロセッサ135は、その機能によって、ストリングセット生成部110、候補セット決定部120及び文書検索部130を含む。各構成要素の機能は、下記文書の検索方法でさらに具体的に説明する。
図2は、本発明の一実施形態による、プロセッサがクエリストリングによる文書を検索する方法について概略的に説明するフローチャートである。図2を参照すれば、210段階で、入力部からクエリストリングを受信すれば、220段階で、ストリングセット生成部110は、クエリストリングから、文書検索のために利用することができる部分ストリング、すなわち、有効ストリングから構成された有効ストリングセットを生成する。有効ストリングは、長さの異なる複数個の部分ストリングであって、有効ストリングは、他の有効ストリングに含まれないが、これについては後述する。
そして、230段階で、候補セット決定部120は、有効ストリングセットのサブセットのうちいずれか1つのサブセットを文書を検索するためのセット(以下、「候補セット」とする)として決定し、240段階で、検索部130は、前記した候補セットを利用し、前記クエリストリングが存在する文書を検索する。プロセッサの各構成要素に係わる機能及びクエリ処理方法は、以下でさらに具体的に説明する。
図3は、本発明の一実施形態によるストリングセット生成部110の細部ブロック図である。図3に図示されているように、ストリングセット生成部110は、クエリストリングを、長さの異なる複数個のN−gramに分離するN−gram分離部310、及びN−gramにおいて、索引語DB 140に保存された索引語に含まれるN−gramを、有効ストリングとして選択するストリング選択部330を含む。
索引語DB 140は、索引語に係わる情報が保存されたデータベースであり、索引語になるストリングの長さ範囲も保存されていてもよい。また、索引語DB 140は、ツリー構造に具現されてもよい。例えば、各ノードに単位文字が配置され、長さ範囲が設定される。従って、親ノードから子ノードに順次に連結された長さ範囲内の文字が索引語となる。索引語DB 140に保存された索引語は、逆索引DB 150に保存された索引語と一致しうる。説明の便宜を図るために、索引語DB 140について別途に説明したが、ストリング選択部330は、N−gramにおいて、逆索引DB 150の索引語に含まれたN−gramを、有効ストリングとして選択することができることは言うまでもない。
図4は、本発明の一実施形態による、ツリー構造で具現された索引語の構造を図示した図面である。図4を参照すれば、ツリー構造の各ノードには、単位文字が配置され、索引語の最小長は3であり、最大長は5であることが分かる。そして、「s」、「u」及び「b」に該当するノードは、順次に連結されているために、「sub」は索引語となる。しかし、「s」、「t」、「r」、「i」及び「c」に該当するノードは、順次に連結されていないために、「stric」は索引語にならない。
図5は、本発明の一実施形態による有効ストリングを生成する過程について説明するフローチャートである。
図5に図示されているように、クエリストリングが入力されれば、図5の510段階で、N−gram分離部310はクエリストリングを長さの異なる複数個のN−gramに分離する。N−gram長は、既定の長さ範囲内に含まれる。例えば、クエリストリングがm個の文字から構成されており、長さ範囲がiからkであるならば(このとき、2≦i<k≦mである)、N−gram分離部310は、クエリストリングを、長さがiであるN−gram、長さがi+1であるN−gram、…、長さがk−1であるN−gram、長さがkであるN−gramに分離する。
例えば、「substring」というクエリストリングが入力されれば、索引語DB 140に保存された長さ範囲が3ないし5であるから、N−gram分離部310は、クエリストリングを、長さが3以上5以下である第1部分ストリングに分離する。すなわち、第1部分ストリングは、「sub」、「ubs」、「bst」、「str」、「tri」、「rin」、「ing」、「subs」、「ubst」、「bstr」、「stri」、「trin」、「ring」、「subst」、「ubstr」、「bstri」、「strin」、「tring」である。
そして、530段階で、ストリング選択部330は、N−gramから、索引語DB 140に保存された索引語に含まれるN−gramを選択する。すなわち、N−gramにおいて、「sub」、「ubs」、「bst」、「str」、「stri」、「strin」、「tri」、「trin」、「tring」、「rin」、「ring」、「ing」が索引語に含まれるので、ストリング選択部330は、前記のN−gramを選択することができる。
さらに、550段階で、ストリング選択部330は、索引語に含まれたN−gramにおいて、他のN−gramに含まれないN−gramを有効ストリングとして決定できる。それにより、ストリング選択部330は、「sub」、「ubs」、「bst」、「strin」、「tring」を有効ストリングとして決定することができる。
前記の通り、長さの異なる複数個の部分ストリングを利用して文書を検索すれば、長さが同じ部分ストリングを利用して文書を検索するより、クエリ処理速度を向上させることができる。それだけではなく、長さの異なる部分ストリングが互いに重複されなければ、重複した部分ストリングを利用した検索より、クエリ処理時間を短縮させることができる。
図6は、本発明の一実施形態による候補セット決定部の細部ブロック図である。図6を参照すれば、候補セット決定部120は、有効ストリングに係わるセット(以下、「有効ストリングセット」とする)のサブセットを、サブセット選択部610及び逆索引DB 150に係わるサブセットのアクセスコストに基づいて、有効ストリングセットのサブセットのうちいずれか1つのサブセットを候補セットとして予想する候補セット予想部630を含む。
本実施形態で逆索引DB 150は、索引ツリーとポスティングリストとから構成される。索引ツリーは、部分ストリング形態である索引語が、リーフノードに存在するB+ツリー構造であり、ポスティングリストは、特定索引語を含む文書の識別情報と、索引語が文書に示された位置情報とのリストである。そして、ポスティングリストを構成する各要素の文書識別情報と位置情報とを通称し、ポスティングという。
まず、候補セット予想部630のアクセスコストを算出する方法について説明する。候補セット予想部630は、下記のような式(1)を利用し、アクセスコストを算出することができる。
Figure 0005980520
ここで、Qは、有効ストリングセットの特定サブセット、giは、Qを構成するi番目の部分ストリング、piは、索引ツリーでのgiの位置情報、h−1は、索引ツリーの高さ、liは、giに係わるポスティングリストを含む索引構造でのリーフノードの個数、Liは、giのポスティングリストである。
また、式(1)に適用される関数Fbは、下記式(2)の通りである。
Figure 0005980520
ここで、
Figure 0005980520
は、文書DBでの文書の個数、Bは、逆索引DBを読み取るときに使われるバッファの大きさである。そして、
Figure 0005980520
である。
前記のようなアクセスコストは、サブセットに含まれた有効ストリングそれぞれについて、逆索引DBで、有効ストリングのポスティングリストにアクセスして読み取るのにかかるコスト(またはデータ量)の和(以下、Qa値とする)と、文書DBで、サブセットに含まれた有効ストリングのポスティングリストに共通して含まれた文書の識別情報に対応する文書にアクセスして読み取るのにかかるコスト(以下、Qb値とする)とに区分される。
アクセスコストのうちQa値は、有効ストリングと関係なしに、固定コストであるために、常に増加する。一方、アクセスコストのうちQb値は、サブセットの種類によって、増減する。
一方、候補セット決定部120は、多様な方法で候補セットを決定することができる。
例えば、候補セット決定部120は、有効ストリングセットのサブセットのうち、アクセスコストが最小であるサブセットを候補セットとして決定することができる。
図7は、本発明の第1実施形態による候補セットを決定する方法について説明するフローチャートである。図7を参照すれば、710段階で、サブセット選択部610は、有効ストリングセットのサブセットをツリー構造に配列する。ツリー構造に配列するにおいて、サブセット選択部610は、子ノードに該当するサブセットをして親ノードのサブセットに含まれるようにする。
720段階で、サブセット選択部610は、ツリー構造に配列されたサブセットで、深さ優先探索(depth first search)方法で選択するサブセットがあるか否かを判断する。優先探索法というのは、ルートノードから出発し、ルートノードから可能な限り遠くにある下位ノードまで探索し、子ノードを有さないノードがあれば、バックトラッキング(backtracking)して他のノードを探索する。
深さ優先探索で選択するサブセットがあれば、730段階で、サブセット選択部610は、前記のサブセットを選択する。サブセット選択部610が有効ストリングが一つであるサブセットをまず選択し、前記の有効ストリングを含む他のサブセットを選択する方法で選択するサブセットがあるか否かを判断する。そして、候補セット予想部630は、選択されたサブセットのアクセスコストのうちQa値を算出する。アクセスコストの算出方法は、前述の通りであり、具体的な説明は省略する。
Qa値が基準値以上であるならば、候補セット予想部630は、選択されたサブセットだけではなく、選択されたサブセットに対応するノードの下位ノードに含まれたサブセットのアクセスコストも算出せず、720ないし750段階を遂行する。ここで、基準値というのは、すでに選択されて算出されたサブセットのアクセスコストのうち最小値を意味する。それにより、既選択のサブセットがない場合、現在選択されたサブセットのアクセスコストが基準値になり、現在選択されたサブセットが予想候補セットになる。すなわち、深さ優先探索方法によって、初めにサブセットが選択されれば、候補セット予想部630は、740ないし770段階を遂行せずに、初めに選択されたサブセットのアクセスコストを基準値として、初めに選択されたサブセットを予想候補セットとする。
一方、アクセスコストのうちQa値は、常に増加するために、予想候補セットのアクセスコストより、現在選択されたサブセットのQa値が大きければ、現在選択されたサブセットのアクセスコストは、予想候補セットのアクセスコストより常に大きい。現在選択されたサブセットを含むあらゆるサブセットのアクセスコストも、予想候補セットのアクセスコストより大きい。結局、現在選択されたサブセットだけではなく、前記のサブセットを含むサブセットについて、アクセスコストは算出しなくても差し支えなく、前記のサブセットを含むサブセットについての探索を終了し、サブセット選択部610は、バックトラッキングし、他のストリングを含むサブセットがあるか否かを判断する。
Qa値が予想候補セットのアクセスコスト未満であるならば、760段階で、候補セット予想部630は、選択されたサブセットのアクセスコストを算出し、アクセスコストと、予想候補セットのアクセスコストとを比較する。
選択されたサブセットのアクセスコストが、予想候補セットのアクセスコスト以下であるならば、780段階で、候補セット予想部630は、予想候補セットを、選択されたサブセットにアップデートする。
前記の通り、候補セット決定部120は、深さ優先探索方法でサブセットを選択し、アクセスコストに基づいて、候補セットを予想する。深さ優先探索方法で選択するノードがなければ、790段階で、候補セット決定部120は、予想候補セット、すなわち、最小のアクセスコストを有するサブセットを候補セットとして決定する。
図8は、本発明の一実施形態による、第1実施形態を介して候補セットを決定する方法について説明するための図面である。「三星綜合技術院」というクエリストリングが入力されれば、ストリングセット生成部110は、索引語DB 140を基に、「三星」、「星綜」、「綜合技術」及び「術院」という有効ストリングを生成する。ストリングセット生成部110は、前記の有効ストリングセットを候補セット決定部120に印加する。
サブセット選択部610は、図8に図示されているようなツリー構造に、有効ストリングセットのサブセットを配列する。ツリー構造の各ノードには、有効ストリングセットのサブセットが配置される。
候補セット予想部630は、上位ノードから下位ノードへの順に、各ノードに係わるアクセスコストを算出する。コスト算出方法は、前述の通りであり、具体的な説明は省略する。
図8で、readCost(Q’)は、サブセット(Q’)に係わるアクセスコストのうちQa値を意味し、Cost(Q’)は、サブセット(Q’)に係わるアクセスコストを意味する。候補セット予想部630は、{三星}、{三星、星綜}、{三星、星綜、綜合技術}、{三星、星綜、綜合技術、術院}、{三星、星綜、術院}、{三星、綜合技術}、…のような順にアクセスコストを算出する。
一方、候補セット決定部120は、{三星、星綜}のアクセスコストのうち、Qa値が25であり、予想候補セットのアクセスコスト、すなわち、最小アクセスコストが24であるならば、{三星、星綜}に、任意の有効ストリングが追加したサブセットも、最小アクセスコストより大きいアクセスコストを有する。従って、候補セット決定部120は、{三星、星綜}に該当するノード及び下位ノードについて、それ以上アクセスコストを算出しない。
一方、候補セット決定部120は、有効ストリングセットのサブセットのうち、有効ストリングが一つ追加されるときのアクセスコストより小さいアクセスコストを有するサブセットを候補セットを決定することもできる。
図9は、第2実施形態による、候補セットを決定する方法について説明するフローチャートである。図9の910段階で、サブセット選択部610は、サブセットのうち、有効ストリングの個数が1であるサブセットを選択し、選択されたサブセットを候補セット予想部630に印加する。
920段階で、候補セット予想部630は、選択されたサブセットそれぞれについて、アクセスコストを算出し、930段階で、最小のアクセスコストを有するサブセットを候補セットとして予想し、前記の最小のアクセスコストを基準値とする。
一方、940段階でサブセット選択部610は、サブセットのうち、予想された候補セット、すなわち、予想候補セットに有効ストリングが一つ追加されるサブセットが存在するならば、950段階で、サブセット選択部610は、予想候補セットに、有効ストリングが一つ追加されたサブセットを選択し、選択されたサブセットを候補セット予想部630に印加する。
960段階で、候補セット予想部630は、選択されたサブセットそれぞれについてアクセスコストを算出し、算出されたアクセスコストの最小値と基準値とを比較する(970段階)。
アクセスコストの最小値が基準値以下であるならば、980段階で、候補セット予想部630は、予想候補セットを最小のアクセスコストを有するサブセットにアップデートする。そして、S940段階ないしS970段階を反復的に遂行する。
一方、アクセスコストの最小値が基準値を超えるか、あるいは予想候補セットに有効ストリングが一つ追加されたサブセットが存在しなければ、990段階で、候補セット予想部630は、予想候補セットを候補セットとして最終的に決定する。
本実施形態で、有効ストリング個数が1個であるサブセットから選択し、最小クエリ処理コストを有するサブセットを候補セットとして決定するとしたが、これに限定されるものではない。有効ストリング個数が多数である場合、最小予想候補セットは、有効ストリング個数が2またはそれ以上のサブセットから選択し、最小クエリ処理コストを有するサブセットを候補セットとして決定することもできる。
図10は、本発明の一実施形態による第2実施形態を介して候補セットを決定する方法について説明するための図面である。
クエリストリング「三星綜合技術院」に係わる有効ストリングセットが、{三星、星綜、綜合技術、術院}であると与えられたとすれば、まず、サブセット選択部610は、有効ストリングを一つ有するサブセット、すなわち{三星}、{星綜}、{綜合技術}、{術院}を選択し、候補セット予想部630に印加する。候補セット予想部630は、各サブセットに係わるアクセスコストを算出する。サブセットに係わるアクセスコストが、それぞれ10、20、25、30であるとすれば、候補セット予想部630は、{三星}を候補セットとして予想する。それにより、サブセット選択部610は、予想候補セットである{三星}に、有効ストリングを一つ追加したサブセット、すなわち、{三星、星綜}、{三星、綜合技術}、{三星、術院}を選択し、候補セット予想部630に印加する。候補セット予想部630は、選択されたサブセットそれぞれについてアクセスコストを算出する。サブセットに係わるコストがそれぞれ12、14、8であるならば、{三星、術院}であるサブセットのアクセスコストが予想候補セットのアクセスコストより小さいので、候補セット予想部630は、予想候補セットを{三星、術院}にアップデートする。
さらにサブセット選択部610は、{三星、術院}のサブセットに他のストリングが一つ追加されたサブセットである{三星、術院、星綜}、{三星、術院、綜合技術}を選択し、候補セット予想部630に印加する。候補セット予想部630は、選択されたサブセットそれぞれについてアクセスコストを算出する。{三星、術院、星綜}、{三星、術院、綜合技術}のアクセスコストがそれぞれ14、15であるとするならば、予想候補セットのアクセスコストより大きいので、候補セット予想部630は、{三星、術院}を候補セットとして最終的に決定し、候補セット決定を終了する。
候補セット決定部120が、第2実施形態による候補セット決定方法を、第1実施形態による候補セット決定方法の方よりも、候補セット決定方法として決定すれば、候補セットを決定するのにかかる時間を短縮することができる。しかし、第2実施形態による候補セット決定方法は、第1実施形態による候補セット決定方法より、正確度が多少低下しうる。従って、候補セット決定部120は、第1実施形態による候補セット決定方法及び第2実施形態による候補セット決定方法を選択的に使用することができる。
例えば、有効ストリングの個数が基準個数以下であるならば、候補セット決定部120は、第1実施形態の候補セット決定方法で候補セットを決定することができ、有効ストリング個数が基準個数を超えれば、候補セット決定部120は、第2実施形態の候補セット決定方法で候補セットを決定することができる。
最後に、逆索引DB 150で、候補セットの有効ストリングいずれともマッチングされている文書の識別情報を決定した後、文書検索部130は、文書DB 160で、前記の文書の識別情報とマッチングしている文書を検索することによって、クエリが存在する文書を検索する。
プロセッサは、各機能によって、別途の構成要素に分離されたが、それは、説明の便宜を図るためのものであり、1つのチップまたはそれ以上のチップで具現できることは言うまでもない。
本発明の実施形態による方法は、多様なコンピュータ手段を介して遂行されるプログラム命令形態で具現され、コンピュータで読み取り可能な媒体に記録される。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独で、または組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、本発明のために特別に設計されて構成されたものであってもよく、コンピュータソフトウェア当業者に公知されて使用可能なものであってもよい。
コンピュータで読み取り可能な可能記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体(magnetic media)、CD−ROM、DVD(digital versatile disc)のような光記録媒体、フロプティカルディスク(floptical disk)のような磁気−光媒体(magneto-optical media)、及びROM(read-only memory)、RAM(random-access memory)、フラッシュメモリのようなプログラム命令を保存して遂行するように特別に構成されたハードウェア装置が含まれる。前記媒体は、プログラム命令、データ構造などを指定する信号を伝送する搬送波を含む光、金属線または導波管などの伝送媒体であってもよい。プログラム命令の例としては、コンパイラによって作られるような機械語コードだけではなく、インタープリタなどを使用し、コンピュータによって実行される高級言語コードを含む。前記のハードウェア装置は、本発明の動作を遂行するために、一つ以上のソフトウェア・モジュールとして作動するように構成され、その逆も同様である。
以上、本発明について、たとえ限定された実施形態と図面とによって説明したが、本発明は、前記の実施形態に限定されるものではなく、本発明が属する分野で当業者であるならば、かような記載から多様な修正及び変形が可能であろう。
従って、本発明の範囲は、説明された実施形態に限定されるものではなく、特許請求の範囲だけではなくして、該特許請求の範囲と均等なものなどによって決まるものである。
本発明の効率的にクエリを処理する方法及び装置は、例えば、検索関連の技術分野に効果的に適用可能である。
100 クエリ処理装置
105 ユーザ・インターフェース
110 ストリングセット生成部
120 候補セット決定部
130 文書検索部
135 プロセッサ
140 索引語DB
150 逆索引DB
160 文書DB
165 ストレージ
310 N−gram分離部
330 ストリング選択部
610 サブセット選択部
630 候補セット予想部

Claims (21)

  1. クエリストリングから、長さの異なる複数個の部分ストリングから構成された有効ストリングセットを生成する段階と、
    多数の文書の情報が保存されたデータベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定する段階と、
    前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索する段階と、を含み、
    前記有効ストリングセットを生成する段階は、
    前記クエリストリングを長さの異なる複数個のN−gramに分離し、
    前記複数個のN−gramにおいて、前記データベースの索引語に含まれるN−gramを選択し、
    前記選択されたN−gramにおいて、他のN−gramに含まれないN−gramセットを、前記有効ストリングセットとして決定することを含む、クエリ処理方法。
  2. 前記候補セットは、
    アクセスコストが基準値以下を有するサブセットであることを特徴とする請求項1に記載のクエリ処理方法。
  3. 前記基準値は、
    前記有効ストリングセットのサブセットに係わるアクセスコストの算出時、既算出のアクセスコストのうち最小値であることを特徴とする請求項に記載のクエリ処理方法。
  4. 前記アクセスコストは、
    前記データベースで、前記サブセットに含まれた部分ストリングそれぞれのポスティングリストをアクセスして読み取るのにかかるコストの和と、前記データベースで、前記サブセットに含まれた有効ストリングのポスティングリストに共通して含まれた文書の識別情報にアクセスして読み取るのにかかるコストとのうち、少なくとも一つであることを特徴とする請求項1に記載のクエリ処理方法。
  5. 前記有効ストリングセットの部分ストリングのうち、少なくとも2つの部分ストリングの長さは、互いに異なることを特徴とする請求項1に記載のクエリ処理方法。
  6. 前記有効ストリングセットの部分ストリングは、前記有効ストリングセットの他の部分ストリングに含まれないことを特徴とする請求項1に記載のクエリ処理方法。
  7. 前記候補セットは、
    前記有効ストリングセットのサブセットのうち、前記アクセスコストが最小であるサブセットとして決定されることを特徴とする請求項1に記載のクエリ処理方法。
  8. 前記候補セットは、
    前記有効ストリングセットのサブセットのうち、部分ストリングが追加されるときのアクセスコストより、アクセスコストの小さいサブセットでもって決定されることを特徴とする請求項1に記載のクエリ処理方法。
  9. 前記候補セットとして決定する段階は、
    前記有効ストリングセットのサブセットをツリー構造に整列し、
    深さ優先探索方法で前記ツリー構造でのサブセットを選択し、
    前記選択されたサブセットのアクセスコストを算出し、
    最小のアクセスコストを有するサブセットを候補セットとして決定することを含むことを特徴とする請求項1に記載のクエリ処理方法。
  10. 前記候補セットとして決定する段階は、
    前記有効ストリングセットのサブセットのうち、部分ストリングの個数が同一である第1サブセットを選択し、
    前記第1サブセットそれぞれに係わるアクセスコストを算出し、
    最小のアクセスコストを有するサブセットを候補セットとして予想し、
    前記有効ストリングセットのサブセットのうち、前記予想された候補セットに部分ストリングが追加された第2サブセットを選択し、
    前記第2サブセットそれぞれに係わるアクセスコストが、前記予想された候補セットのアクセスコストより大きければ、前記予想された候補セットを候補セットとして決定することを含むことを特徴とする請求項1に記載のクエリ処理方法。
  11. 前記データベースは、
    索引ツリー及びポスティングリストを含む逆索引データベースと、
    識別情報を有する多数の文書が保存された文書データベースと、を含むことを特徴とする請求項1に記載のクエリ処理方法。
  12. 前記文書を決定する段階は、
    前記逆索引データベースで、前記候補セットの部分ストリングいずれもとマッチングしていいる文書の識別情報を検索し、
    前記文書データベースで、前記文書の識別情報を有する文書を検索することを含むことを特徴とする請求項11に記載のクエリ処理方法。
  13. 請求項1ないし請求項12のうち、いずれか一項に記載の方法を遂行するためのプログラムが記録されるコンピュータで読み取り可能な記録媒体。
  14. クエリストリングが入力され、前記クエリストリングが存在する文書が出力されるユーザ・インターフェースと、
    多数の文書に係わる情報が保存されたデータベースと、
    前記クエリストリングから、長さの異なる複数個の部分ストリングから構成された有効ストリングセットを生成し、前記データベースに対する前記有効ストリングセットのサブセットのアクセスコストに基づいて、前記サブセットのうちいずれか一つを候補セットとして決定し、前記候補セットを利用し、前記データベースに保存された情報から、前記クエリストリングが存在する文書を検索するプロセッサと、
    を含み、
    前記プロセッサは、
    前記クエリストリングを長さの異なる複数個のN−gramに分離し、
    前記複数個のN−gramにおいて、前記データベースの索引語に含まれるN−gramを選択し、
    前記選択されたN−gramにおいて、他のN−gramに含まれないN−gramセットを、前記有効ストリングセットとして決定する、
    ことにより前記有効ストリングセットを生成する、クエリ処理装置。
  15. 前記アクセスコストは、
    前記データベースで、前記サブセットに含まれた部分ストリングそれぞれのポスティングリストにアクセスして読み取るのにかかるコストの和と、前記データベースで、前記サブセットに含まれた有効ストリングのポスティングリストに共通して含まれた文書の識別情報にアクセスして読み取るのにかかるコストと、のうち少なくとも一つであることを特徴とする請求項14に記載のクエリ処理装置。
  16. 前記有効ストリングセットの部分ストリングのうち、少なくとも2つの部分ストリングの長さは、互いに異なることを特徴とする請求項14に記載のクエリ処理装置。
  17. 前記有効ストリングセットの部分ストリングは、前記有効ストリングセットの他の部分ストリングに含まれないことを特徴とする請求項14に記載のクエリ処理装置。
  18. 前記候補セットは、
    前記有効ストリングセットのサブセットのうち、前記アクセスコストが最小であるサブセットでもって決定されることを特徴とする請求項14に記載のクエリ処理装置。
  19. 前記候補セットは、
    前記有効ストリングセットのサブセットのうち、部分ストリングが追加されるときのアクセスコストより、アクセスコストの小さいサブセットとして決定されることを特徴とする請求項14に記載のクエリ処理装置。
  20. 前記データベースは、
    索引ツリー及びポスティングリストを含む逆索引データベースと、
    識別情報を有する多数の文書が保存された文書データベースと、を含むことを特徴とする請求項14に記載のクエリ処理装置。
  21. 前記プロセッサは、
    前記逆索引データベースで、前記候補セットの部分ストリングいずれともマッチングしている前記文書の識別情報を検索し、
    前記文書データベースで、前記文書の識別情報を有する文書を検索することを含むことを特徴とする請求項20に記載のクエリ処理装置。
JP2012031022A 2011-04-08 2012-02-15 効率的にクエリを処理する方法及び装置 Active JP5980520B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110032898A KR101793578B1 (ko) 2011-04-08 2011-04-08 효율적으로 질의를 처리하는 방법 및 장치
KR10-2011-0032898 2011-04-08

Publications (2)

Publication Number Publication Date
JP2012221489A JP2012221489A (ja) 2012-11-12
JP5980520B2 true JP5980520B2 (ja) 2016-08-31

Family

ID=46966910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012031022A Active JP5980520B2 (ja) 2011-04-08 2012-02-15 効率的にクエリを処理する方法及び装置

Country Status (3)

Country Link
US (1) US9110973B2 (ja)
JP (1) JP5980520B2 (ja)
KR (1) KR101793578B1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101341507B1 (ko) * 2012-04-13 2013-12-13 연세대학교 산학협력단 수정된 b+트리 노드 검색 방법 및 장치
CN103793440B (zh) * 2012-11-02 2018-03-27 阿里巴巴集团控股有限公司 信息显示方法和装置
US9208254B2 (en) * 2012-12-10 2015-12-08 Microsoft Technology Licensing, Llc Query and index over documents
CN107436911A (zh) * 2017-05-24 2017-12-05 阿里巴巴集团控股有限公司 模糊查询方法、装置及查询系统
US11645273B2 (en) 2021-05-28 2023-05-09 Ocient Holdings LLC Query execution utilizing probabilistic indexing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3459053B2 (ja) * 1995-01-12 2003-10-20 株式会社日立製作所 文書検索方法および装置
KR19990084950A (ko) 1998-05-12 1999-12-06 이계철 역화일을 이용한 데이터 부분검색 장치 및 그 방법
KR100725664B1 (ko) 2005-08-26 2007-06-08 한국과학기술원 2단계 n-gram 역색인 구조 및 그 구성 방법과 질의처리 방법 및 그 색인 도출 방법
JP2007286742A (ja) 2006-04-13 2007-11-01 Ricoh Co Ltd 文書検索装置
JP4439496B2 (ja) 2006-07-18 2010-03-24 株式会社東芝 検索処理装置及びプログラム
US7996369B2 (en) * 2008-11-14 2011-08-09 The Regents Of The University Of California Method and apparatus for improving performance of approximate string queries using variable length high-quality grams
JP2009104669A (ja) 2009-02-12 2009-05-14 Toshiba Corp 文書検索方法、システム及びプログラム
KR101615164B1 (ko) * 2009-03-20 2016-04-26 삼성전자주식회사 엔-그램 기반의 질의 처리 장치 및 그 방법

Also Published As

Publication number Publication date
JP2012221489A (ja) 2012-11-12
KR101793578B1 (ko) 2017-11-20
US20120259862A1 (en) 2012-10-11
US9110973B2 (en) 2015-08-18
KR20120115005A (ko) 2012-10-17

Similar Documents

Publication Publication Date Title
EP3724785B1 (en) Fast indexing with graphs and compact regression codes on online social networks
US11341419B2 (en) Method of and system for generating a prediction model and determining an accuracy of a prediction model
CN103026356B (zh) 语义内容搜索
EP2909740B1 (en) Ranking for inductive synthesis of string transformations
US20200192727A1 (en) Intent-Based Organisation Of APIs
US8001106B2 (en) Systems and methods for tokenizing and interpreting uniform resource locators
US9411875B2 (en) Tag refinement strategies for social tagging systems
JP5054593B2 (ja) 情報検索装置及びプログラム
JP6047550B2 (ja) 検索方法、クライアント及びサーバ
JP5939588B2 (ja) 関連ノードを探索する方法、並びに、そのコンピュータ、及びコンピュータ・プログラム
WJ Anderson et al. Evolving stochastic context-free grammars for RNA secondary structure prediction
JP5980520B2 (ja) 効率的にクエリを処理する方法及び装置
JP2022024102A (ja) 検索モデルのトレーニング方法、目標対象の検索方法及びその装置
US20190164060A1 (en) Method of and server for converting a categorical feature value into a numeric representation thereof
US8122002B2 (en) Information processing device, information processing method, and program
CN111611452A (zh) 搜索文本的歧义识别方法、系统、设备及存储介质
CN104199954A (zh) 一种用于搜索输入的推荐系统及方法
JP5497105B2 (ja) 文書検索装置および方法
US20190164085A1 (en) Method of and server for converting categorical feature value into a numeric representation thereof and for generating a split value for the categorical feature
JP5757551B2 (ja) 意味分類付与装置、意味分類付与方法、意味分類付与プログラム
KR101615164B1 (ko) 엔-그램 기반의 질의 처리 장치 및 그 방법
KR101602342B1 (ko) 의미 태깅된 자연어 질의의 의도에 부합하는 정보 추출 및 제공 방법 및 시스템
WO2022134824A1 (en) Tuning query generation patterns
CN112000495B (zh) 用于兴趣点信息管理的方法、电子设备和存储介质
KR101349969B1 (ko) 추천 질의어 제공 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160727

R150 Certificate of patent or registration of utility model

Ref document number: 5980520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250