JP5744216B2 - 言語ロケールに基づくインデックス及びサーチ方法 - Google Patents

言語ロケールに基づくインデックス及びサーチ方法 Download PDF

Info

Publication number
JP5744216B2
JP5744216B2 JP2013536672A JP2013536672A JP5744216B2 JP 5744216 B2 JP5744216 B2 JP 5744216B2 JP 2013536672 A JP2013536672 A JP 2013536672A JP 2013536672 A JP2013536672 A JP 2013536672A JP 5744216 B2 JP5744216 B2 JP 5744216B2
Authority
JP
Japan
Prior art keywords
state machine
character
search
characters
node
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
JP2013536672A
Other languages
English (en)
Other versions
JP2013544393A (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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of JP2013544393A publication Critical patent/JP2013544393A/ja
Application granted granted Critical
Publication of JP5744216B2 publication Critical patent/JP5744216B2/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/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • 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
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3338Query expansion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、全般的に、データをインデックス及びサーチする分野に関するもので、より詳細には、言語ロケール(設定情報:locale)に基づいてインデックス及びサーチすることに関する。
汎用コンピュータシステムのような近代的なデータ処理システムは、そのようなシステムのユーザが種々の異なる形式のデータファイルを生成できるようにする。例えば、データ処理システムの典型的なユーザは、マイクロソフトワードのようなワード処理プログラムでテキストファイルを生成するか、又はアドベのフォトショップのような画像処理プログラムで画像ファイルを生成することができる。典型的なデータ処理システムに対して、多数の他の形式のファイルを生成又は変更し、編集し、さもなければ、1人以上のユーザにより利用することができる。生成又は変更することのできる非常に多数の異なる形式のファイルは、生成された特定ファイルを見出すことを求める典型的なユーザに対して課題を提起する。
近代的なデータ処理システムは、多くの場合に、ユーザが種々のディレクトリ又はサブディレクトリ(例えば、フォルダ)にファイルを入れることができるようにすると共に、ユーザがファイルに名前を付けられるようにするファイルマネージメントシステムを備えている。更に、これらのファイルマネージメントシステムは、多くの場合に、ユーザが、ファイルのコンテンツをサーチするだけでなく、ファイルの名前、又は生成の日付、又は変更の日付、又はファイルの形式もサーチすることにより、ファイルを見出すことができるようにする。そのようなファイルマネージメントシステムの一例は、カリフォルニア州クパチーノのアップル・コンピュータ・インクから入手できるマッキントッシュコンピュータで動作する「ファインダー(Finder)」プログラムである。ファイルマネージメントシステムプログラムの別の例は、ワシントン州レドモンドのマイクロソフト・コーポレーションから入手できるウインドウズオペレーティングシステムで動作する「ウインドウズ・エクスプローラ」プログラムである。「ファインダー」プログラム及び「ウインドウズ・エクスプローラ」プログラムは、両方とも、ファイル名、又は生成の日付、又は変更の日付、又はファイルの形式を含む種々の基準によりユーザがファイルをサーチできるようにする見出しコマンドを含む。このサーチ能力は、ファイルの形式に関わらず、ファイルごとに同じ情報を通してサーチを行う。従って、例えば、「マイクロソフトワード」ファイルのサーチ可能なデータは、「アドベフォトショップ」ファイルのサーチ可能なデータと同じであり、このデータは、典型的に、ファイルマネージメントシステムによりファイルに対して維持されるファイル名、ファイルの形式、生成の日付、最後の変更の日付、ファイルのサイズ、及び他の幾つかのパラメータを含む。
幾つかの既存のアプリケーションプログラムは、ユーザが特定のファイルに関するデータを維持できるようにする。特定のファイルに関するこのデータは、他のデータに関するデータであるから、メタデータと考えられる。特定ファイルに対するこのメタデータは、ファイルの著者に関する情報、ドキュメントの概要、及び種々の他の形式の情報を含む。「ファインだ」プログラムのようなあるファイル管理システムは、ユーザがメタデータを通してサーチすることでファイルを見出すことができるようにする。
典型的なシステムでは、反転型インデックスと通常称されるものにおいて、「ファインダー」プログラムのようなプログラムを使用して、種々のコンテンツ、ファイル及びメタデータが、後で検索するために、インデックスされる。例えば、反転型インデックスは、特定のワードが現れるドキュメントに対する参照のリストを含む。
Figure 0005744216
本発明の1つの態様によれば、クライアントから受け取られたサーチ用語を有するサーチ問合せに応答して、現在言語ロケールが決定される。この現在言語ロケールに基づいてステートマシンが構築され、このステートマシンは、サーチ用語の同じ意味を有するサーチ用語の変化(variance)を表わすための1つ以上のノードを含む。ステートマシンの各ノードは、ステートマシンの各ノードに対応する反転型インデックスの1つ以上のポスティングリストを識別するように横断される。1つ以上のポスティングリストから得られた1つ以上のアイテム識別子は、クライアントへ返送され、そこで、アイテム識別子は、ステートマシンによって表わされるサーチ用語の変化を含む1つ以上のファイルの1つ以上のエントリー又はロケーションを識別する。
本発明の別の態様によれば、サーチ用語を有するサーチ問合せに応答して、サーチ用語の部分ごとに照合のためのコレーション(collation)キーが決定される。1つ以上のノードを有するステートマシンがサーチ用語に基づいて構築され、各ノードは、サーチ用語におけるキャラクタの1つを表わす。ステートマシンにおけるノードの各々は、ステートマシンの各ノードに対応する反転型インデックスの1つ以上のポスティングリストを識別するように横断される。ステートマシンのノードごとに、同じ意味をもつ1つ以上の等価キャラクタが、現在言語ロケールに基づいて識別される。等価キャラクタのコレーションキーが、サーチ用語における対応キャラクタ(1つ又は複数)のキー(1つ又は複数)と比較される。サーチ用語における対応キャラクタのコレーションキーに一致しないコレーションキーを有する等価キャラクタが除去され、残りのキャラクタを使用して、反転型インデックスにおける1つ以上のポスティングリストを識別する。
本発明の更に別の態様によれば、データ処理システムに第1の用語が受け取られ、この第1の用語は、インデックスされるべき1つ以上のキャラクタを含む。データ処理システムの現在言語ロケールが決定される。第1の用語の各キャラクタのコレーションキーは、現在言語ロケールのもとで決定される。第1の用語の各キャラクタのコレーションキーは、第1の用語の実際のキャラクタに基づいてインデックスされずに反転型インデックスにおいてインデックスされる。コレーションキーは、現在言語ロケールのもとで同じ意味をもつ1つ以上の等価キャラクタのファミリを表わし、コレーションキーに基づくその後のサーチには反転型インデックスが使用される。
本発明の他の特徴は、添付図面及び以下の詳細な説明から明らかとなろう。
本発明の実施形態は、同様の要素が同じ参照番号で示された添付図面に一例として示すが、これに限定されるものではない。
本発明の1つの実施形態によるインデックス及びサーチシステムを示すブロック図である。 本発明の一実施形態によるステートマシンを示す状態図である。 本発明の一実施形態によるステートマシンを示す状態図である。 本発明の一実施形態によるステートマシンを示す状態図である。 本発明の一実施形態により言語ロケールに基づいてインデックス及びサーチを行う方法を示すフローチャートである。 本発明の一実施形態によるコレーションキーに基づくステートマシンを示す図である。 本発明の一実施形態によるコレーションキーに基づくステートマシンを示す図である。 本発明の一実施形態によるデータ構造を示す図である。 本発明の一実施形態によるデータ構造を示す図である。 本発明の別の実施形態によるサーチ方法を示すフローチャートである。 本発明の一実施形態によるコレーションキーに基づくインデックス及びサーチ方法を示すフローチャートである。 本発明の一実施形態に使用されるデータ処理システムのブロック図である。
本発明の種々の実施形態及び態様が以下に詳細に説明され、添付図面は種々の実施形態を示す。以下の説明及び添付図面は、本発明を例示するもので、本発明を限定するものではない。本発明の種々の実施形態を完全に理解するために多数の特定の細部について述べる。しかしながら、ある場合には、本発明の実施形態の説明を簡略にするため、良く知られた又は従来の細部は、述べない。
本明細書において「1つの実施形態」又は「一実施形態」とは、実施形態に関連して述べる特定の特徴、構造又は特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。本明細書の種々の場所で「1つの実施形態において」という句が現れたときには、必ずしも、全てが同じ実施形態を指していない。
ある実施形態によれば、インデックス(例えば、反転型インデックス)は、使用される言語ロケールの種類に基づいて異なる仕方で構築される。1つの実施形態において、インデックス段階中にほとんど又は全ての言語ロケールのほとんど又は全てのキャラクタ(特殊なキャラクタを含む)を網羅するようにインデックスが構築される。その後に、サーチ問合せのサーチ用語を含むファイルをサーチするためにサーチ問合せが受け取られたときに、その時点の言語ロケールに基づいてステートマシンが動的に構築され、ここで、ステートマシンは、同じ又は同様の意味をもつ言語ロケールのもとでサーチ用語の全ての変化を表わす。これは、実際に、その時点の言語ロケールのもとで異なる意味をもつが、他の言語ロケールでは同じ意味をもつキャラクタをふるい落とす。
別の実施形態によれば、移動装置のようなあるオペレーティング環境では、ローカライゼーションはスタティックのままである傾向がある(例えば、言語ロケールは比較的長期間同じままである)ので、インデックスは言語に特有の仕方で構築される。例えば、実際のキャラクタ又は用語をインデックスするのではなく、複数のキャラクタ又は問合せ用語が等価である場合には、キャラクタ又は用語に対応するコレーションキーがインデックスされる。その結果、インデックスは、比較的小さなサイズに維持することができ、ひいては、より高速のサーチとなる。
図1は、本発明の1つの実施形態によるインデックス及びサーチシステムを示すブロック図である。図1を参照すれば、システム100は、これに限定されないが、インデックスソフトウェア101と、サーチソフトウェア102と、それらのインデックスソフトウェア101及びサーチソフトウェア102並びに他のソフトウェアプログラムに作動的に結合されたオペレーティングシステム(OS)のカーネルのような1つ以上のシステムコンポーネントと、を備えている。サーチソフトウェア102は、コンテンツでサーチする(コンテンツで見出すとも称される)ソフトウェア107、メタデータでサーチする(メタデータで見出すとも称される)ソフトウェア108のような、種々のサーチプログラムを含む。例えば、コンテンツでサーチするソフトウェア107及び/又はメタデータでサーチするソフトウェア108は、カリフォルニア州クパチーノのアップル(R)社から入手できるMac OSTMのFinderTMプログラムのような任意の種類のオペレーティングシステムのブラウジングプログラムの一部分として具現化される。
1つの実施形態において、コンテンツで見出すソフトウェア107及び/又はメタデータで見出すソフトウェア108は、コンテンツファイル103又はメタデータ104に存在する用語を見出すのに使用される。例えば、ソフトウェア107/108は、「マイクロソフトワード」、等のワード処理プログラムにより生成されるワード処理又はテキスト処理ファイルからテキスト及び他の情報を見出すのに使用される。
コンテンツで見出すソフトウェア107及びメタデータで見出すソフトウェア108は、1つ以上のインデックス105を含むデータベースに作動的に結合される。インデックス105は、ファイルデータ103及びメタデータ104を含めて、記憶装置におけるデータファイルのサブセットを少なくとも表わし、そしてコンピュータシステムのメインハードドライブのような特定の記憶装置(又は複数の記憶装置)における全てのデータファイルを含む。1つ以上のインデックス105は、テキストドキュメント、音楽、ビデオ、又は他の形式のファイルのような、ファイル103/104に記憶された各アイテムのコンテンツ及び/又はメタデータのインデックスされた表現を含む。コンテンツで見出すソフトウェア107は、1つ以上のインデックスファイル105を通してサーチすることによりそのコンテンツにおける用語をサーチして、インデックスされたデータファイル103に記憶されたアイテムに、例えば、特定のワードのような特定の用語が存在するかどうか決定する。コンテンツで見出すソフトウェアの機能は、メタデータで見出すソフトウェア108を通して利用することができ、これは、データファイル103に記憶されたアイテム内のコンテンツ103及びそのアイテムに対して発生されたメタデータ108に対してユーザがインデックス105をサーチできるという効果をユーザに与える。
本発明の1つの実施形態において、インデックスソフトウェア101は、コンテンツ及びメタデータで見出すソフトウェアアプリケーション107/108に結合される1つ以上のインデックス105を生成し維持するのに使用される。他の機能の中で、インデックスソフトウェア101は、コンテンツファイル103及びメタデータ104をスキャンすることにより得られる情報を受け取り、そしてその情報を使用して、1つ以上のポスティングリスト106を発生し、このリストは、特定の用語を含むか又は特定の用語を含むメタデータを有するアイテム(例えば、ファイル)を識別するものである。従って、ポスティングリストは、サーチ用語のような用語を、そのリストで識別されるアイテムへとマップする一形式の反転型インデックスである。
1つの実施形態において、スキャン中に得られる情報は、特定の用語を含むか又はその用語を含むメタデータを有するアイテムを独特に識別する独特の識別子を含んでいる。例えば、ワード処理又はテキスト処理ファイルのようなアイテムは、ITEMIDと称される独特の識別子を有する。ITEMIDは、ワード“Apple”のような特定の用語を含むアイテムを識別すためにポスティングリスト(例えば、ポスティングファイル106)を発生するときに使用される。画像ファイル又は音楽ファイルのような他の形式のファイルを識別するITEMIDも、1つ以上のポスティングリスト106に掲示され、このケースでは、ITEMIDは、典型的に、特定の用語を含むメタデータを有するアイテムを識別する。1つの実施形態において、インデックスソフトウェア101は、1つ以上の用語に対するポスティングリスト106を1つ以上の更新セット(図示せず)へと累積し、そして時々それら更新セットを1つ以上のインデックスファイル105へとフラッシュする。
1つの実施形態において、サーチソフトウェア102は、更に、オペレーティングシステム又はシステム/ユーザ構成の一部分として構成された言語ロケール情報110に基づいてサーチ時にステートマシンを構築するように構成されたサーチステートマシンビルダー109を備えている。1つの実施形態において、サーチ用語を含むコンテンツファイル又はメタデータをサーチするためにサーチ問合せが受け取られると、ステートマシンビルダー109は、ロケール情報110から得られた現在言語ロケールに基づいてサーチ用語を表現するためにステートマシンを動的に構築するよう構成される。ステートマシンは、現在言語ロケールのもとでサーチ用語のキャラクタ又は等価キャラクタを各々表わす1つ以上のノードを含む。即ち、ステートマシンは、同じ又は同様の意味をもつ言語ロケールのもとでサーチ用語の全ての変化を表わす。これは、実際に、その時点の言語ロケールのもとで異なる意味をもつが、他の言語ロケールでは同じ意味をもつキャラクタをふるい落とす。
Figure 0005744216
Figure 0005744216
Figure 0005744216
図5は、本発明の1つの実施形態により言語ロケールに基づいてインデックス及びサーチを行う方法を示すフローチャートである。例えば、この方法は、図1のシステム100によって遂行される。図5を参照すれば、ブロック501において、全部又はほとんどの言語ロケールの用語及びキャラクタについて反転型インデックスが維持される。クライアントから受け取ったサーチ用語を有するサーチ問合せに応答して、その時点の現在言語ロケールが決定される。現在言語ロケールに基づき、ブロック503において、サーチ用語の各キャラクタ(例えば、等価キャラクタ)の全ての変化を表わすようにステートマシンが動的に構築される。即ち、ステートマシンは、現在言語ロケールのもとでのサーチ用語の全ての種々の等価キャラクタの全ての組み合わせ又は変更を表わす。ブロック504において、インデックスのポスティングリストが、ステートマシンのノードにより表された用語に基づいてサーチされて、ステートマシンにより表された1つ以上の用語を含むアイテム(例えば、ファイル)のリストを識別し、サーチ結果を発生する。ブロック505において、サーチ結果がクライアントに返送される。
図1に戻ると、ある実施形態によれば、インデックスファイル105及び/又はポスティングリストファイル106は、トライ(trie)データ構造又は平坦化構造のようなツリー構造で記憶される。トライは、ツリーの各ノードが、マッチングされるストリングの1つのキャラクタを解明するツリー構造である。各内部ノードは、キャラクタのリストより成る。各キャラクタには、別の内部ノード又はリーフノードへの出リンク(outgoing link)が関連付けられる。各リーフノードは、そのリーフノードへ通じるプレフィックスに関連した結果データを保持する。トライをサーチするために、ルートノードでスタートし、そしてマッチングされるストリングの次のキャラクタに対応する各ノードにおいて出リンクをたどることによりツリーを横断する。マッチングする出リンクを見出せないときには、マッチングが見出されている。
各キャラクタは、そのユニコード及び/又はそれに対応するコレーションキーにより表される。例えば、そのようなユニコード及びコレーションキーは、インターナショナル・コンポーネント・フォー・ユニコード(ICU)統治団体により規定される。キャラクタは、単一ユニコードにより表されたコンポーズ型(composed)形態で記憶されるか、或いは複数のユニコードで表されるデコンポーズ型(decomposed)形態で記憶される。1つの実施形態において、キャラクタは、8ビットのユニコードトランスフォーメーションフォーマット(UTF−8)キャラクタのように、ユニコードに対する可変長さキャラクタエンコーディングとして記憶される。
Figure 0005744216
Figure 0005744216
Figure 0005744216
Figure 0005744216
Figure 0005744216
図10は、本発明の別の実施形態によるサーチ方法を示すフローチャートである。例えば、この方法1000は、図1のシステムにより遂行される。図10を参照すれば、ブロック1001において、サーチ用語に応答して、サーチ用語のキャラクタごとのコレーションキーが決定される。そのようなコレーションキーは、ICU統治団体により規定された1つ以上のルールに基づいて決定される。ブロック1002において、ステートマシンが動的に構築され、ここで、ステートマシンは、サーチ用語のキャラクタの1つに各々対応する1つ以上のノードを含む。ブロック1003において、ステートマシンの各ノードに対して、1つ以上の等価キャラクタが現在言語ロケールに基づいて識別される。ブロック1004において、等価キャラクタのコレーションキーが、サーチ用語に関連したコレーションキーとマッチングされる。ブロック1005において、コレーションキーがサーチ用語の対応する1つにマッチングしないキャラクタが除去される。
移動装置のようなあるオペレーティング環境では、言語ロケールが安定する傾向となる。即ち、オペレーティング環境の言語ロケールは、頻繁に変化しない。むしろ、そのようなオペレーティング環境では、メモリ及び/又は記憶装置のような処理帯域巾が限定される傾向がある。本発明のある実施形態によれば、用語の実際のキャラクタをインデックスするのではなく、現在言語ロケールに対する用語のキャラクタのコレーションキーがインデックスされる。例えば、移動電話は、典型的に、インデックスされるドキュメントの小さなセットを有する。1つの実施形態では、コレーションキーは、現在言語ロケールに基づいてインデックスされる。言語ロケールが変化する場合には、新たな言語ロケールのもとにあるドキュメントのコレーションキーが再インデックスされる。
Figure 0005744216
図11は、本発明の1つの実施形態によるコレーションキーに基づくインデックス及びサーチ方法を示すフローチャートである。例えば、方法1100は、図1のシステムにより遂行される。図11を参照すれば、ブロック1101において、インデックスされるべき1つ以上のキャラクタを有する用語に応答して、現在言語ロケールが決定される。言語ロケールは、システムのオペレーティング環境のユーザ及び/又はシステム構成から得られる。ブロック1102において、用語のキャラクタの各々又は全部に対して現在言語ロケールに基づいてコレーションキーが発生される。ブロック1103において、用語を表わすコレーションキーが反転型インデックスにおいてインデックスされる。その後、ブロック1104において、サーチ用語に応答して、サーチ用語の各キャラクタに対するコレーションキーが現在言語ロケールに基づいて発生される。ブロック1105において、サーチ用語を表わすコレーションキーに基づいて反転型インデックスがサーチされ、コレーションキーに対応する用語を含む1つ以上のファイルを識別する。ブロック1101−1103及びブロック1104−1105に含まれたオペレーションは、例えば、異なるスレッドを通して、独立して遂行されてもよいことに注意されたい。
図12は、本発明の一実施形態に使用できるデータ処理システムのブロック図である。例えば、このシステム1200は、図1のシステム100として使用されてもよい。図12は、コンピュータシステムの種々のコンポーネントを示すが、コンポーネントを相互接続する特定のアーキテクチャー又は方法を表わすものではないことに注意されたい。というのは、そのような細部は、本発明にとって関係がないからである。また、より少ないコンポーネント又はおそらくより多くのコンポーネントを有するネットワークコンピュータ、ハンドヘルドコンピュータ、セルラーホン及び他のデータ処理システムも、本発明に使用できることが明らかであろう。図12のコンピュータシステムは、例えば、アップル・マッキントッシュ(R)コンピュータ、又はMacBook(R)、或いはIBM(R)適合のPCでよい。
図12に示したように、一形式のデータ処理システムであるコンピュータシステム1200は、バス又は相互接続部1202を備え、これは、1つ以上のマイクロプロセッサ1203、ROM1207、揮発性RAM1205、及び不揮発性メモリ1206に結合される。マイクロプロセッサ1203は、キャッシュメモリ1204に結合される。バス1202は、これら種々のコンポーネントを一緒に相互接続すると共に、これらコンポーネント1203、1207、1205及び1206を、ディスプレイコントローラ・ディスプレイ装置1208、並びに入力/出力(I/O)装置1210に相互接続し、そのI/O装置は、マウス、キーボード、モデム、ネットワークインターフェイス、プリンタ、及びこの分野で良く知られた他の装置である。
典型的に、入力/出力装置1210は、入力/出力コントローラ1209を通してシステムに結合される。揮発性RAM1205は、典型的に、メモリ内のデータをリフレッシュ又は維持するために常時電力を必要とするダイナミックRAM(DRAM)として具現化される。不揮発性メモリ1206は、典型的に、システムから電力が取り去られた後もデータを維持する磁気ハードディスク、磁気光学ドライブ、光学ドライブ、又はDVD RAM、或いは他の形式のメモリシステムである。典型的に、不揮発性メモリは、ランダムアクセスメモリであるが、これは、必要なことではない。
図12は、不揮発性メモリが、データ処理システム内の残りのコンポーネントに直結されたローカル装置であることを示しているが、本発明は、システムから遠隔にある不揮発性メモリ、例えば、モデム又はイーサネットインターフェイスのようなネットワークインターフェイスを通してデータ処理システムに結合されたネットワーク記憶装置を使用してもよい。バス1202は、この分野で良く知られたように、種々のブリッジ、コントローラ、及び/又はアダプタを通して互いに接続される1つ以上のバスを含む。1つの実施形態において、I/Oコントローラ1209は、USB周辺装置をコントロールするためのUSB(ユニバーサルシリアルバス)アダプタを含む。或いは又、I/Oコントローラ1209は、FireWire装置をコントロールするためのFireWireアダプタとしても知られたIEEE−1394アダプタを含んでもよい。
以上の詳細な説明のある部分は、コンピュータメモリ内のデータビットに対するオペレーションのアルゴリズム及び記号表示に関して表現されている。これらのアルゴリズム記述及び表示は、データ処理分野の当業者が、彼らの仕事の実質を他の当業者に最も効率的に伝えるために使用される方法である。アルゴリズムとは、ここでは、一般的に、望ましい結果を導く自己矛盾のないオペレーションシーケンスであると考えられる。オペレーションは、物理量の物理的操作を要求するものである。
しかしながら、これら及び同様の用語は、すべて適当な物理量に関連付けられ、そしてそれらの量に適用される便宜的表示に過ぎないことに留意されたい。特に指示のない限り、以上の説明から明らかなように、この説明全体を通して、特許請求の範囲に示すような用語を使用する説明は、コンピュータシステムのレジスタ及びメモリ内で物理的(電子的)量として表されたデータを操作し、そしてコンピュータシステムのメモリ又はレジスタ或いは他のそのような情報記憶、伝達又は表示装置内で物理的量として同様に表される他のデータへと変換するコンピュータシステム又は同様の電子的コンピューティング装置のアクション及び処理を指すものであることが明らかである。
また、本発明の実施形態は、ここに示すオペレーションを遂行するための装置にも係る。そのようなコンピュータプログラムは、不揮発性のコンピュータ読み取り可能な媒体に記憶される。マシン読み取り可能な媒体は、マシン(例えば、コンピュータ)により読み取りできる形態で情報を記憶するためのメカニズムを含む。例えば、マシン読み取り可能な(例えば、コンピュータ読み取り可能な)媒体は、マシン(例えば、コンピュータ)読み取り可能な記憶媒体(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュメモリ装置など)を含む。
添付図面に示すプロセス及び方法は、ハードウェア(例えば、回路、専用ロジック、等)、ソフトウェア(例えば、非一時的なコンピュータ読み取り可能な媒体で実施される)、又は両方の組み合わせを含む処理ロジックによって遂行される。プロセス又は方法は、順次のオペレーションに関して上述したが、上述したオペレーションの幾つかは、異なる順序で遂行されてもよいことが明らかであろう。更に、幾つかのオペレーションは、順次ではなく、並列に遂行されてもよい。
本発明の実施形態は、特定のプログラミング言語を参照して説明しなかった。ここに述べた本発明の実施形態の教示を具現化するのに、種々のプログラミング言語を使用できることが明らかである。
以上、特定の規範的な実施形態を参照して本発明の実施形態を説明した。特許請求の範囲に述べた本発明の広い精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。従って、以上の説明及び添付図面は、単なる例示に過ぎず、それに限定されるものではないと考えられる。
100:システム
101: インデックスソフトウェア
102:サーチソフトウェア
103:コンテンツファイル
104:メタデータファイル
105:インデックスファイル
106:ポスティングファイル
107:コンテンツでサーチするソフトウェア
108:メタデータでサーチするソフトウェア
109:サーチステートマシンビルダー
110:ロケール情報

Claims (20)

  1. コンピュータにより実行される方法であって、
    クライアントからのサーチ問い合わせであって、データ処理システムで受信した複数のキャラクタを含むサーチ用語を有する当該サーチ問合せに応答して、前記データ処理システムのオペレーティングシステムのコンフィグレーションに基づいて現在言語ロケールを決定する処理と、
    前記現在言語ロケールに基づいて前記サーチ用語の同じ意味を有する前記サーチ用語の変化を表わすために複数のノードを有するステートマシンを動的に構築する処理であって、各ノードは前記サーチ用語内のキャラクタの一つをあらわし、前記ステートマシンが、前記現在言語ロケールの下で同じ意味を有する異なるキャラクタに対応する少なくとも2つのノードを含む当該処理と、
    前記ステートマシンの前記複数のノードに対応する反転型インデックスの1つ以上のポスティングリストを識別するように前記ステートマシンの各ノードを横断する処理と、
    前記1つ以上のポスティングリストから得た1つ以上のアイテム識別子を前記クライアントへ返送する処理であって、前記アイテム識別子は、前記ステートマシンにより表わされる前記サーチ用語の変化を含む1つ以上のファイルを識別するものである当該処理と、が実行される方法。
  2. 複数の言語ロケールからの1つ以上のキャラクタを有する複数の用語に対して前記反転型インデックスを維持する処理を更に含み、各用語は、当該用語を含む1つ以上のファイルを識別するアイテム識別子を有するポスティングリストに対応する、請求項1に記載の方法。
  3. 前記ステートマシンの各々のノードは、前記決定された言語ロケールのもとで前記サーチ用語の対応するキャラクタの同じ意味を有するキャラクタを表わす、請求項1に記載の方法。
  4. 前記ステートマシンの各ノードは、異なる言語ロケールにおいて同じ意味を有する異なるキャラクタの変化の照合(コレーション)を表わすコレーションキー(collation key)に関連付けられる、請求項1に記載の方法。
  5. 前記コレーションキーは、異なる言語ロケールにおける各々のキャラクタを表わすインターナショナル・コンポーネント・ユニコード(ICU)から導出される、請求項4に記載の方法。
  6. 前記ステートマシンを横断する処理は、
    前記ステートマシンの各ノードの第1コレーションキーを前記サーチ用語の対応するキャラクタの第2コレーションキーに対してマッチングさせること、及び
    前記第2コレーションキーにマッチングしないコレーションキーを有するキャラクタ候補を前記ステートマシンから除去すること、
    を含む請求項4に記載の方法。
  7. 前記反転型インデックスの用語は、トライデータ構造に記憶され、前記ステートマシンの各ノードを横断して、前記トライアーキテクチャーの対応するノードを探索し、それに対応するポスティングリストを識別する、請求項1に記載の方法。
  8. コンピュータにインデックス方法を遂行するようにさせるインストラクションを記憶したコンピュータ読み取り可能な記憶媒体であって、前記コンピュータに、
    クライアントからのサーチ問い合わせであって、データ処理システムで信し複数のキャラクタを含むサーチ用語を有する当該サーチ問合せに応答して、前記データ処理システムのオペレーティングシステムのコンフィグレーションに基づいて現在言語ロケールを決定し、
    前記現在言語ロケールに基づいて前記サーチ用語の同じ意味を有する前記サーチ用語の変化を表わすために複数のノードを有するステートマシンを動的に構築し、各ノードは前記サーチ用語内のキャラクタの一つをあらわし、前記ステートマシンが、前記現在言語ロケールの下で同じ意味を有する異なるキャラクタに対応する少なくとも2つのノードを含み、
    前記ステートマシンの前記複数のノードに対応する反転型インデックスの1つ以上のポスティングリストを識別するように前記ステートマシンの各ノードを横断し、
    前記1つ以上のポスティングリストから得た1つ以上のアイテム識別子を前記クライアントへ返送し、前記アイテム識別子は、前記ステートマシンにより表わされる前記サーチ用語の変化を含む1つ以上のファイルを識別する、
    ことを実行させるプログラムを記録したコンピュータ読み取り可能な記憶媒体。
  9. 更に、複数の言語ロケールからの1つ以上のキャラクタを有する複数の用語に対して前記反転型インデックスを維持することを実行させるプログラムを含み、
    前記各用語は、当該用語を含む1つ以上のファイルを識別するアイテム識別子を有するポスティングリストに対応するものである、請求項8に記載のコンピュータ読み取り可能な記憶媒体。
  10. 前記ステートマシンの各々のノードは、前記決定された言語ロケールのもとで前記サーチ用語の対応するキャラクタの同じ意味を有するキャラクタを表わす、請求項8に記載のコンピュータ読み取り可能な記憶媒体。
  11. 前記ステートマシンの各ノードは、異なる言語ロケールにおいて同じ意味を有する異なるキャラクタの変化の照合(コレーション)を表わすコレーションキーに関連付けられる、請求項8に記載のコンピュータ読み取り可能な記憶媒体。
  12. 前記コレーションキーは、異なる言語ロケールにおける各々のキャラクタを表わすインターナショナル・コンポーネント・ユニコード(ICU)から導出される、請求項11に記載のコンピュータ読み取り可能な記憶媒体。
  13. 前記ステートマシンを横断することは、
    前記ステートマシンの各ノードの第1コレーションキーを前記サーチ用語の対応するキャラクタの第2コレーションキーに対してマッチングさせること、及び
    前記第2コレーションキーにマッチングしないコレーションキーを有するキャラクタ候補を前記ステートマシンから除去すること、
    を含む請求項11に記載のコンピュータ読み取り可能な記憶媒体。
  14. 前記反転型インデックスの用語は、トライデータ構造に記憶され、前記ステートマシンの各ノードを横断して、前記トライアーキテクチャーの対応するノードを探索し、それに対応するポスティングリストを識別する、請求項8に記載のコンピュータ読み取り可能な記憶媒体。
  15. コンピュータにより実行されるインデックス方法であって、
    サーチ用語を有するサーチ問合せに応答して、そのサーチ用語のキャラクタごとにコレーションキーを決定する処理と、
    前記サーチ用語に基づき複数のノードを有するステートマシンを動的に構築する処理であって、各ノードは、前記サーチ用語におけるキャラクタの1つを表わし、前記ステートマシンが、前記現在言語ロケールの下で同じ意味を有する異なるキャラクタに対応する少なくとも2つのノードを含む当該処理と、
    前記ステートマシンの前記複数のノードに対応する反転型インデックスの1つ以上のポスティングリストを識別するように前記ステートマシンの各ノードを横断する処理であって、
    前記ステートマシンのノードごとに、現在言語ロケールに基づき同じ意味をもつ1つ以上の等価キャラクタを識別し、
    前記等価キャラクタのコレーションキーを、前記サーチ用語における対応するキャラクタのコレーションキーと比較し、
    前記サーチ用語における対応するキャラクタのコレーションキーとマッチングしないコレーションキーを有する等価キャラクタを除去し、残りのキャラクタを使用して、前記反転型インデックスにおける1つ以上のポスティングリストを識別する、
    ことを含む当該処理と、
    が実行される方法。
  16. 前記1つ以上のポスティングリストから得た1つ以上のアイテム識別子をクライアントに提供する処理を更に含み、前記アイテム識別子は、前記ステートマシンにより表されるサーチ用語の変化を含む1つ以上のファイルを識別するものである、請求項15に記載の方法。
  17. 前記コレーションキーは、異なる言語ロケールにおけるキャラクタを表わすインターナショナル・コンポーネント・ユニコード(ICU)から導出される、請求項15に記載の方法。
  18. コンピュータにより実行されるインデックス方法であって、
    インデックスされるべき1つ以上のキャラクタを有する第1の用語をデータ処理システムで受信する処理と、
    前記データ処理システムの現在言語ロケールを決定する処理と、
    前記現在言語ロケールのもとで前記第1の用語のキャラクタごとにコレーションキーを決定する処理と、
    前記第1の用語の実際のキャラクタに基づいてインデックスすることなく反転型インデックスにおける前記第1の用語のキャラクタごとに前記コレーションキーをインデックスする処理と、
    を含み、
    前記コレーションキーは、現在言語ロケールのもとで同じ意味をもつ1つ以上の等価キャラクタの群を表わし、更に、前記反転型インデックスは、コレーションキーに基づいてその後のサーチに使用される方法。
  19. 1つ以上のキャラクタを有する第2の用語をもつサーチ問合せをクライアントから前記データ処理システムで受信する処理と、
    前記現在言語ロケールに基づいて各キャラクタを表わす1つ以上のコレーションキーのシーケンスを発生する処理と、
    前記コレーションキーのシーケンスに基づいて前記反転型インデックスをサーチして、前記コレーションキーに関連した1つ以上のポスティングリストを識別する処理と、
    前記ポスティングリストから得た1つ以上のアイテム識別子のリストをクライアントに返送する処理であって、そのアイテム識別子は、前記コレーションキーに対応するキャラクタを含む1つ以上のファイルを識別するものである当該処理と、
    を更に含む請求項18に記載の方法。
  20. 前記コレーションキーは、異なる言語ロケールにおけるキャラクタを表わすインターナショナル・コンポーネント・ユニコード(ICU)から導出される、請求項18に記載の方法。
JP2013536672A 2010-10-27 2011-10-19 言語ロケールに基づくインデックス及びサーチ方法 Active JP5744216B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/913,517 2010-10-27
US12/913,517 US8577891B2 (en) 2010-10-27 2010-10-27 Methods for indexing and searching based on language locale
PCT/US2011/056963 WO2012058077A2 (en) 2010-10-27 2011-10-19 Methods for indexing and searching based on language locale

Publications (2)

Publication Number Publication Date
JP2013544393A JP2013544393A (ja) 2013-12-12
JP5744216B2 true JP5744216B2 (ja) 2015-07-08

Family

ID=44872635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013536672A Active JP5744216B2 (ja) 2010-10-27 2011-10-19 言語ロケールに基づくインデックス及びサーチ方法

Country Status (9)

Country Link
US (2) US8577891B2 (ja)
EP (1) EP2619689A2 (ja)
JP (1) JP5744216B2 (ja)
KR (1) KR101510973B1 (ja)
CN (1) CN103282900B (ja)
AU (1) AU2011320744A1 (ja)
BR (1) BR112013010013B1 (ja)
MX (1) MX2013004765A (ja)
WO (1) WO2012058077A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527518B2 (en) * 2010-12-16 2013-09-03 Sap Ag Inverted indexes with multiple language support
US20150169740A1 (en) * 2011-11-21 2015-06-18 Google Inc. Similar image retrieval
US10311062B2 (en) * 2012-08-21 2019-06-04 Microsoft Technology Licensing, Llc Filtering structured data using inexact, culture-dependent terms
US20160378747A1 (en) * 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US11113289B2 (en) * 2016-10-28 2021-09-07 Apple Inc. Blending learning models for search support
KR102016601B1 (ko) * 2016-11-29 2019-08-30 주식회사 닷 제한된 영역을 활용한 데이터 변환 장치, 방법 및 컴퓨터 프로그램
WO2018101735A1 (ko) * 2016-11-29 2018-06-07 주식회사 닷 제한된 영역을 활용한 데이터 변환 장치, 방법 및 컴퓨터 프로그램
US10831801B2 (en) * 2017-05-12 2020-11-10 International Business Machines Corporation Contextual-based high precision search for mail systems
US20180349467A1 (en) 2017-06-02 2018-12-06 Apple Inc. Systems and methods for grouping search results into dynamic categories based on query and result set
US10621246B2 (en) * 2017-06-02 2020-04-14 Apple Inc. Systems and methods for building an on-device temporal web index for user curated/preferred web content
CN109635801A (zh) * 2017-10-09 2019-04-16 株式会社理光 光学字符识别后处理的方法、装置及计算机可读存储介质
US10956669B2 (en) * 2018-07-10 2021-03-23 Beijing Didi Infinity Technology And Development Co., Ltd. Expression recognition using character skipping
US11544272B2 (en) * 2020-04-09 2023-01-03 Thoughtspot, Inc. Phrase translation for a low-latency database analysis system
CN117527832A (zh) * 2024-01-03 2024-02-06 杭州趣链科技有限公司 一种区块链的交易排序方法、装置、电子设备和存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913208A (en) * 1996-07-09 1999-06-15 International Business Machines Corporation Identifying duplicate documents from search results without comparing document content
US6026398A (en) 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
US6047283A (en) * 1998-02-26 2000-04-04 Sap Aktiengesellschaft Fast string searching and indexing using a search tree having a plurality of linked nodes
JP2002092018A (ja) 2000-09-18 2002-03-29 Nec Software Hokkaido Ltd 片仮名平仮名も含めた検索システム
NZ518744A (en) 2002-05-03 2004-08-27 Hyperbolex Ltd Electronic document indexing using word use nodes, node objects and link objects
JP4294386B2 (ja) * 2003-06-13 2009-07-08 株式会社リコー 異表記正規化処理装置、異表記正規化処理プログラムおよび記憶媒体
US7493305B2 (en) 2004-04-09 2009-02-17 Oracle International Corporation Efficient queribility and manageability of an XML index with path subsetting
US20050251519A1 (en) * 2004-05-07 2005-11-10 International Business Machines Corporation Efficient language-dependent sorting of embedded numerics
US7818282B2 (en) * 2004-07-02 2010-10-19 International Business Machines Corporation System and method for the support of multilingual applications
US7792833B2 (en) * 2005-03-03 2010-09-07 Microsoft Corporation Ranking search results using language types
US8195683B2 (en) 2006-02-28 2012-06-05 Ebay Inc. Expansion of database search queries
WO2007133625A2 (en) * 2006-05-12 2007-11-22 Eij Group Llc Multi-lingual information retrieval
US9754022B2 (en) * 2007-10-30 2017-09-05 At&T Intellectual Property I, L.P. System and method for language sensitive contextual searching
JP2010198350A (ja) * 2009-02-25 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> 検索装置及び検索方法

Also Published As

Publication number Publication date
BR112013010013A2 (pt) 2016-08-02
MX2013004765A (es) 2013-06-05
KR20130076876A (ko) 2013-07-08
US20130073559A1 (en) 2013-03-21
BR112013010013B1 (pt) 2021-06-29
CN103282900B (zh) 2017-02-22
KR101510973B1 (ko) 2015-04-10
CN103282900A (zh) 2013-09-04
US8577891B2 (en) 2013-11-05
AU2011320744A1 (en) 2013-05-09
US9020951B2 (en) 2015-04-28
WO2012058077A3 (en) 2012-07-05
EP2619689A2 (en) 2013-07-31
WO2012058077A2 (en) 2012-05-03
JP2013544393A (ja) 2013-12-12
US20120109970A1 (en) 2012-05-03

Similar Documents

Publication Publication Date Title
JP5744216B2 (ja) 言語ロケールに基づくインデックス及びサーチ方法
US8645349B2 (en) Indexing structures using synthetic document summaries
US7765213B2 (en) Ordered index
US7730070B2 (en) Index aging and merging
US8122029B2 (en) Updating an inverted index
CN107526746B (zh) 管理文档索引的方法和设备
US8914377B2 (en) Methods for prefix indexing
US20110113052A1 (en) Query result iteration for multiple queries
JP4237813B2 (ja) 構造化文書管理システム
US8024351B2 (en) Query result iteration
US20170270127A1 (en) Category-based full-text searching
US9020995B2 (en) Hybrid relational, directory, and content query facility
US20180089329A1 (en) Method and device for managing index
JP2006106907A (ja) 構造化文書管理システム、索引構築方法及びプログラム
JP4304226B2 (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP4160627B2 (ja) 構造化文書管理システム及びプログラム
JP4550876B2 (ja) 構造化文書検索システム及びプログラム
JP2008198236A (ja) 構造化文書管理システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141121

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: 20150330

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150428

R150 Certificate of patent or registration of utility model

Ref document number: 5744216

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250