(57)【特許請求の範囲】
【請求項１】
ネットワーク化された環境中で検索可能なデータに対するインデックス構成のためのコンピュータにより実現される方法において、
複数のデータフィールドを含むデータを受信することと、
前記複数のデータフィールド中の各データフィールドに関係付けられている、複数のフィールドタイプのうちのフィールドタイプを判定することと、
前記データフィールドの各々に関係付けられているそれぞれのフィールドタイプに少なくとも部分的に基づいて、前記データフィールドの各々に対して１つ以上の検索オプションを有効にするか否かを判定することと、
各データフィールドの前記それぞれのフィールドタイプに少なくとも部分的に基づいて、前記データに対するインデックス構成を自動的に発生させることと、
前記インデックス構成を使用して、前記データに対する検索インデックスを発生させることとを含み、
前記複数のフィールドタイプは、整数型、リテラル型、またはテキスト型、のうちの少なくとも１つを含み、
前記１つ以上の検索オプションは、発生させることになる検索インデックス中にそれぞれのデータフィールドを含めるオプション、前記それぞれのデータフィールドに対するファセット数を算出するオプション、または、前記それぞれのデータフィールドに関係付けられている１つ以上の値を提供するオプション、のうちの少なくとも１つを含み、
前記検索インデックスは、前記検索インデックス中にそれぞれのデータフィールドを含めるオプションが有効である各データフィールドに対する、前記データの一部分を含むコンピュータにより実現される方法。
【請求項２】
前記データは、第１のフォーマットのデータであり、
前記第１のフォーマットから第２のフォーマットに前記データを変換することと、ここにおいて、前記第２のフォーマットは、前記検索インデックスに適合しており、
前記第２のフォーマットに変換した前記データを、１つ以上の記憶域割り当て上に記憶させることとをさらに含み、ここにおいて、前記記憶域割り当てはエンティティに割り当てられた記憶域スペースである、
請求項１記載のコンピュータにより実現される方法。
【請求項３】
前記第１のフォーマットから第２のフォーマットに前記データを変換することは、
前記第１のフォーマットと前記第２のフォーマットとを比較することと、
前記第１のフォーマットに関係付けられている少なくとも１つのデータフィールドを、前記第２のフォーマットに関係付けられている少なくとも１つのデータフィールドに対応するように変更することとを含む請求項２記載のコンピュータにより実現される方法。
【請求項４】
前記第２のフォーマットは検索データフォーマット（ＳＤＦ）である請求項２記載のコンピュータにより実現される方法。
【請求項５】
システムにおいて、
少なくとも１つの通信送受信機と、
１つ以上の記憶域割り当てと、ここにおいて、前記記憶域割り当てはエンティティに割り当てられた記憶域スペースであり、
少なくとも１つのプロセッサと、
命令を含むメモリデバイスとを具備し、
前記命令は、前記少なくとも１つのプロセッサによって実行されるときに、前記システムに、
前記少なくとも１つの通信送受信機を介して、複数のデータフィールドを含むデータを受信させ、
前記複数のデータフィールド中の各データフィールドに関係付けられている、複数のフィールドタイプのうちのフィールドタイプを判定させ、
前記データフィールドの各々に関係付けられているそれぞれのフィールドタイプに少なくとも部分的に基づいて、前記データフィールドの各々に対して１つ以上の検索オプションを有効にするか否かを判定させ、
各データフィールドの前記それぞれのフィールドタイプに少なくとも部分的に基づいて、前記データに対するインデックス構成を自動的に発生させ、
前記インデックス構成を使用させて、前記データに対する検索インデックスを発生させ、
前記複数のフィールドタイプは、整数型、リテラル型、またはテキスト型、のうちの少なくとも１つを含み、
前記１つ以上の検索オプションは、発生させることになる検索インデックス中にそれぞれのデータフィールドを含めるオプション、前記それぞれのデータフィールドに対するファセット数を算出するオプション、または、前記それぞれのデータフィールドに関係付けられている１つ以上の値を提供するオプション、のうちの少なくとも１つを含み、
前記検索インデックスは、前記検索インデックス中にそれぞれのデータフィールドを含めるオプションが有効である各データフィールドに対する、前記データの一部分を含むシステム。
【請求項６】
前記データフィールドの複数のタイプは、地理的位置型、時間型、日付型、または浮動小数点数型、のうちの少なくとも１つをさらに含む請求項５記載のシステム。
【請求項７】
前記データフィールドのタイプを判定させることは、
前記データフィールドに関係付けられている値が、指定された整数量閾値を上回る量の整数文字を有することを判定させることに基づいて、前記データフィールドのタイプが前記整数型であると判定させることとを含む請求項５記載のシステム。
【請求項８】
前記データフィールドのタイプを判定させることは、
前記データフィールドに関係付けられている値が、指定されたテキスト量閾値を上回る量のアルファニューメリック文字を有すること、前記データフィールドに関係付けられている相違する値の数が、指定されたテキスト相違量閾値を上回ること、相違する値の割合（％）が、指定されたテキスト相違割合閾値を上回ること、または、値の長さが、指定されたテキスト長閾値を上回ること、のうちの少なくとも１つを判定させることに基づいて、前記データフィールドのタイプが前記テキスト型であると判定させることとを含む請求項５記載のシステム。
【請求項９】
前記データフィールドのタイプを判定させることは、
前記データフィールドに関係付けられている値が、指定された下限リテラル量閾値を上回るが指定された上限リテラル量閾値未満である量のアルファベット文字を有すること、前記データフィールドに関係付けられている相違する値の数が、指定されたリテラル相違量閾値未満であること、相違する値の割合（％）が、指定されたリテラル相違割合閾値未満であること、または、値の長さが、指定されたリテラル長閾値未満であること、のうちの少なくとも１つを判定させることに基づいて、前記データフィールドのタイプが前記リテラル型であると判定させることとを含む請求項５記載のシステム。
【請求項１０】
前記１つ以上の検索オプションは、発生させることになる前記検索インデックス中に前記データフィールドを含めるオプション、前記データフィールドに対するファセット数を算出するオプション、または、前記データフィールドに関係付けられている値を、関連する検索クエリに応答して提供するオプション、のうちの少なくとも１つを含む請求項５記載のシステム。
【請求項１１】
前記１つ以上の検索オプションを有効にすることを判定させることは、前記発生させることになる前記検索インデックス中に前記データフィールドを含めるオプションを有効にすることを決定させることを含み、
前記決定は、前記検索インデックス中に前記データフィールドが含まれるべきであることを示す、前記データフィールド中に含まれるインジケーションを受信すること、または、前記データフィールドのタイプがリテラル型であると判定すること、のうちの少なくとも１つに少なくとも部分的に基づいている請求項１０記載のシステム。
【請求項１２】
前記１つ以上の検索オプションを有効にすることを判定させることは、前記データフィールドに対するファセット数を算出するオプションを有効にすることを決定させることを含み、
前記決定は、前記データフィールドに関係付けられている複数の値の分布に対する量が、指定されたファセット数上限閾値未満であることを判定することに少なくとも部分的に基づいている請求項１０記載のシステム。
【請求項１３】
前記１つ以上の検索オプションを有効にすることを判定させることは、前記データフィールドに関係付けられている値を、関連する検索クエリに応答して提供するオプションを有効にすることを決定させることを含み、
前記決定は、前記データフィールドに関係付けられている値が提供されるべきであることを示す、前記データフィールド中に含まれるインジケーションを受信すること、または、前記データフィールドに関係付けられている値の長さが、指定された返り値長閾値未満であることを判定すること、のうちの少なくとも１つに少なくとも部分的に基づいている請求項１０記載のシステム。
【請求項１４】
前記命令は、前記システムにさらに、前記データ、前記インデックス構成、または、１つ以上の検索クエリによって検索可能となるインデックス、のうちの少なくとも１つを提供させる請求項５記載のシステム。
【請求項１５】
前記命令は、前記システムにさらに、ユーザにより開始される１つ以上の入力に少なくとも部分的に基づいて、前記インデックス構成を変更させる請求項５記載のシステム。
【請求項１６】
前記データは、第１のフォーマットのデータであり、
前記命令は、前記システムにさらに、
前記第１のフォーマットから第２のフォーマットに前記データを変換させ、
前記第２のフォーマットに変換させた前記データを、前記１つ以上の記憶域割り当て上に記憶させ、
前記第２のフォーマットは、前記検索インデックスに適合している請求項５記載のシステム。
【請求項１７】
前記命令は、前記システムに、前記第１のフォーマットと前記第２のフォーマットとを比較させることと、前記第１のフォーマットに関係付けられている少なくとも１つのデータフィールドを、前記第２のフォーマットに関係付けられている少なくとも１つのデータフィールドに対応するように変更させることとに基づいて、前記第１のフォーマットから前記第２のフォーマットに前記データを変換させる請求項１６記載のシステム。
【請求項１８】
命令を含むコンピュータ可読記憶媒体において、
前記命令は、コンピューティングシステムの少なくとも１つのプロセッサによって実行されるときに、前記コンピューティングシステムに、
複数のデータフィールドを含むデータを受信させ、
前記複数のデータフィールド中の各データフィールドに関係付けられている、複数のフィールドタイプのうちのフィールドタイプを判定させ、
前記データフィールドの各々に関係付けられているそれぞれのフィールドタイプに少なくとも部分的に基づいて、前記データフィールドの各々に対して１つ以上の検索オプションを有効にするか否かを判定させ、
各データフィールドの前記それぞれのフィールドタイプに少なくとも部分的に基づいて、前記データに対するインデックス構成を自動的に発生させ、
前記インデックス構成を使用させて、前記データに対する検索インデックスを発生させ、
前記複数のフィールドタイプは、整数型、リテラル型、またはテキスト型、のうちの少なくとも１つを含み、
前記１つ以上の検索オプションは、発生させることになる検索インデックス中にそれぞれのデータフィールドを含めるオプション、前記それぞれのデータフィールドに対するファセット数を算出するオプション、または、前記それぞれのデータフィールドに関係付けられている１つ以上の値を提供するオプション、のうちの少なくとも１つを含み、
前記検索インデックスは、前記検索インデックス中にそれぞれのデータフィールドを含めるオプションが有効である各データフィールドに対する、前記データの一部分を含むコンピュータ可読記憶媒体。
【請求項１９】
前記データは、第１のフォーマットのデータであり、
前記命令は、前記コンピューティングシステムにさらに、
前記第１のフォーマットから第２のフォーマットに前記データを変換させ、
前記第２のフォーマットに変換させた前記データを、１つ以上の記憶域割り当て上に記憶させ、
前記第２のフォーマットは、前記検索インデックスに適合している請求項１８記載のコンピュータ可読記憶媒体。
【請求項２０】
前記第１のフォーマットから第２のフォーマットに前記データを変換させることは、
前記第１のフォーマットと前記第２のフォーマットとを比較させることと、
前記第１のフォーマットに関係付けられている少なくとも１つのデータタグを、前記第２のフォーマットに関係付けられている少なくとも１つのデータタグに対応するように変更させることとを含む請求項１９記載のコンピュータ可読記憶媒体。
【請求項２１】
前記データフィールドの複数のタイプは、地理的位置型、時間型、日付型、または浮動小数点数型、のうちの少なくとも１つをさらに含む請求項１８記載のコンピュータ可読記憶媒体。
【請求項２２】
前記命令は、前記コンピューティングシステムに、前記データフィールドに関係付けられている値が、指定された下限リテラル量閾値を上回るが指定された上限リテラル量閾値未満である量のアルファベット文字を有すること、前記データフィールドに関係付けられている相違する値の数が、指定されたリテラル相違量閾値未満であること、相違する値の割合が、指定されたリテラル相違割合閾値未満であること、または、値の長さが、指定されたリテラル長閾値未満であること、のうちの少なくとも１つを判定させることに基づいて、前記データフィールドのタイプが前記リテラル型であると判定させる請求項１８記載のコンピュータ可読記憶媒体。
【請求項２３】
前記１つ以上の検索オプションは、発生させることになる前記検索インデックス中に前記データフィールドを含めるオプション、前記データフィールドに対するファセット数を算出するオプション、または、前記データフィールドに関係付けられている値を、関連する検索クエリに応答して提供するオプション、のうちの少なくとも１つを含む請求項１８記載のコンピュータ可読記憶媒体。
【請求項２４】
前記１つ以上の検索オプションを有効にすることを判定させることは、前記データフィールドに対するファセット数を算出するオプションを有効にすることを決定させることを含み、
前記決定は、前記データフィールドに関係付けられている少なくとも１つの値に対する量が、指定されたファセット数下限閾値を上回り指定されたファセット数上限閾値未満であることを判定することに少なくとも部分的に基づいている請求項２３記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティングデバイスは、インターネットなどのネットワーク上で通信するのに使用されることが多い。サービスプロバイダによって供給されるネットワークベースのサービスは、ますます当たり前となっている。コンピューティングデバイスにより使用／読み出されることになる検索可能なデータを記憶すること、または、コンピューティングデバイスに追加的な処理能力を提供すること、などのサービスを提供することができるネットワークベースのサービスに接続するのに、コンピューティングデバイスが頻繁に使用される。検索可能なデータをネットワークベースで記憶することについて、コンピューティングデバイスのユーザは通常、それらのデータに対する構成および／またはフォーマットを選択する必要があり、それによって、それらのデータを、ネットワークベースのサービスによって索引付けおよび記憶することができる。従来のアプローチは通常、ユーザが、それらのデータに対する適切な構成を判定することを必要とする。従来のアプローチはまた、ユーザのデータが従う必要があるフォーマットを要求することがあり、それによって、ユーザが、それらのデータをそのフォーマットに変換することを必要とする。このことは、記憶および検索のためにネットワークベースのサービスを使用することを望むユーザにとって不便であり、面倒であり、または困難であることがあり、それによって、ユーザ経験全体を低減させる。
【図面の簡単な説明】
【０００２】
本開示に従った種々の実施形態が、以下の図面を参照して説明される。  
【図１】種々の実施形態の態様を利用することができる例示的な環境を示す図である。
【図２】ネットワーク化された環境において、検索可能なデータに対するインデックス構成についての例示的なシステムの実施形態を示す図である。
【図３】ネットワーク化された環境において、検索可能なデータに対するインデックス構成を利用することができる、例示的なウェブブラウジング環境を示す図である。
【図４】種々の実施形態に従って生成することができる、例示的な検索インデックスを示す図である。
【図５】ネットワーク化された環境における検索可能なデータに対するインデックス構成についての例示的な方法の実施形態を示す図である。
【図６】種々の実施形態の態様を実現するのに使用することができる例示的なデバイスを示す図である。
【図７】図６で示したデバイスなどのクライアントデバイスの例示的な構成要素を示す図である。
【図８】種々の実施形態を実現することができる環境を示す図である。
【発明を実施するための形態】
【０００３】
少なくとも１つのネットワーク上で受信されるデータに対する検索インデックスを生成するのに使用することができる、インデックス構成を生成するシステムおよび方法が説明される。少なくともいくつかの実施形態は、コンピューティングデバイスが、ネットワーク（例えば、インターネット）上で、ネットワークサービス（すなわち、ネットワークサービスプロバイダ）により提供される記憶域割り当て上に、データをアップロードすることを可能にする。ネットワークサービスは、アップロードされたデータを分析して、複数のデータフィールドにおける各データフィールドに対するデータフィールドのタイプ（すなわち、データフィールドタイプ）を判定することができる。ネットワークサービスは、アップロードされたデータを分析して、アップロードされたデータに含まれる複数のデータフィールドにおける各データフィールドに対する１または複数の検索オプションを有効にするか否かを判定することができる。
【０００４】
少なくともいくつかの実施形態は、コンピューティングデバイスが、ネットワーク（例えば、インターネット）上で、ネットワークサービス（すなわち、ネットワークサービスプロバイダ、ネットワークベースのサービスなど）により提供される記憶域割り当て上に、データをアップロードすることを可能にする。１または複数のユーザ／エンティティ（例えば、１または複数のコンピューティングデバイスを使用して）は、ネットワークサービスによって提供することができる、検索インデックスを利用してネットワーク上でアップロードされたデータを検索することができる。
【０００５】
いくつかの実施形態では、アップロードされたデータは、複数のデータフィールドを含むことができる。ネットワークサービスは、アップロードされたデータを分析して、複数のデータフィールドにおける各データフィールドに対するデータフィールドのタイプ（すなわち、データフィールドタイプ）を判定することができる。例えば、各データフィールドは、整数型、テキスト型、またはリテラル型を含むタイプのフィールドとすることができる。
【０００６】
さらに、ネットワークサービスは、アップロードされたデータを分析して、アップロードされたデータに含まれる複数のデータフィールドにおける各データフィールドに対する１または複数の検索オプションを有効にするか否かを判定することができる。例えば、ネットワークサービスは、各それぞれのデータフィールドに対し、生成されることになる検索インデックスにおけるそれぞれのデータフィールドを含むオプションを有効にするか否かを判定することができる。ネットワークサービスはまた、各それぞれのデータフィールドに対し、それぞれのデータフィールドに対するファセット数を算出するオプションを有効にするかを判定することができる。さらに、ネットワークサービスは、各それぞれのデータフィールドに対し、検索クエリに応答して、それぞれのデータフィールドに関連付けられた値を返す／提供するオプションを有効にするかを判定することができる。
【０００７】
いくつかの実施形態では、ネットワークサービスは、判定されたデータフィールドタイプ（複数可）および有効にされるべき検索オプション（複数可）に少なくとも部分的に基づいて、データに対するインデックス構成（すなわち、検索インデックス構成、スキーマ、インデックス設定など）を生成することができる。ネットワークサービスは、インデックス構成に少なくとも部分的に基づいて、データに対する検索インデックスを生成することができる。
【０００８】
種々の他の機能および利点は、種々の実施形態に従って提供されるように、以下、説明および提案される。
【０００９】
図１は、種々の実施形態の態様を利用することができる、例示的な環境１００を示す。例示的な環境１００は、少なくとも１つのコンピューティングデバイス１０２、ネットワーク１０４（例えば、インターネット、イントラネット、ローカルネットワーク、ローカルエリアネットワークなど）、およびネットワークサービス１０６（すなわち、ネットワークサービスプロバイダ、ネットワークベースのサービスなど）を備えることができる。少なくとも１つのコンピューティングデバイス１０２を、ネットワーク１０４上でネットワークサービス１０６に通信可能に接続することができる。いくつかの実施形態では、コンピューティングデバイス１０２は、インターネットなどのネットワーク１０４なしで、ネットワークサービス１０６と通信することができる。図１に示すように、少なくとも１つのコンピューティングデバイス１０２のユーザ１０８、または他のエンティティ（例えば、個人、会社、組織、グループなど）１０８も存在してもよい。ユーザまたはエンティティ１０８は、ネットワーク１０４上で、少なくとも１つのコンピューティングデバイス１０２からネットワークサービス１０６にデータ１１０を通信することができる（および、その逆も同様である）。
【００１０】
いくつかの実施形態では、ネットワークサービス１０６は、ネットワーク１０４に接続された１もしくは複数のホストもしくはサーバを備えることができ、および／またはそれらを利用することができる。例えば、ネットワークサービス１０６は、記憶域スペースを、デバイス１０２のユーザまたは別のエンティティ（複数可）（例えば、会社、組織、グループ、個人など）１０８などの顧客に賃貸しすることができる。したがって、コンピューティングデバイス１０２のユーザ／エンティティ１０８は、ネットワーク１０４を使用して、ネットワークサービス１０６上に、デバイス１０２からのデータを記憶することができる。言い換えると、ユーザ／エンティティ１０８および／またはデバイス１０２は、ネットワークサービス１０６を介して、ネットワークベースのコンピューティング記憶装置を利用することができる。
【００１１】
一例では、図１に示すように、コンピューティングデバイス１０２は、データ１１０を、ネットワークサービス１０６に記憶されるようにネットワーク１０４上で送信することができる。データ１１０は、検索、データベースの記憶、アプリケーションの実行、仮想マシンの実行、オペレーティングシステムの実行のためなど、ネットワークベースのコンピューティングにおいて利用される任意のデータとすることができる。コンピューティングデバイス１０２は、データ１１０を、サービス１０６によって提供される記憶域割り当て上に記憶されるように送信することができる。例えば、ユーザ／エンティティ１０８は、サービス１０６上の記憶域スペースを購入または賃借りすることができ、ならびに、記憶域割り当てが、ユーザ／エンティティ１０８に割り当ておよび割り振られ得る。いくつかの実施形態では、ユーザ／エンティティ１０８は、サービス１０６上で、特定のアカウントおよび／または記憶域割り当てを有することができ、エンティティ１０８に割り当ておよび割り振りされた記憶域スペース（例えば、記憶域割り当て）を、エンティティ１０８に対するアカウントに関連付けることができる。
【００１２】
エンティティ１０８はまた、ネットワークサービス１０６に、データ１１０に対する検索インデックスを提供することを望む場合がある。従来のアプローチは通常、エンティティ１０８が最初に、索引付けられることになるデータ１１０に対する構成（すなわち、インデックス構成、スキーマ、インデックス設定など）を提供することを必要とし、または、従来のアプローチは、エンティティのデータ１１０が従う必要がある構成／フォーマット（例えば、検索データフォーマット（ＳＤＦ））を必要とすることがあり、したがって、エンティティ１１０に、そのデータ１１０を必要とされる構成に変換することを要求する。しかしながら、このことは、エンティティ１０８にとって不便であり、面倒であり、または困難であり得る。
【００１３】
いくつかの実施形態では、エンティティ１０８は、データ１１０をネットワークサービス１０６に送信することができ、ならびに、ネットワークサービス１０６は自動的に（すなわち、エンティティ１０８からの命令または要求なしに）、データ１１０を分析し、およびデータ１１０に対するインデックス構成（例えば、検索インデックス構成、検索インデックススキーマなど）を生成することができる。例えば、いくつかの実施形態では、ネットワークサービス１０６は、データ１１０に含まれる１または複数のデータフィールドに対するデータフィールド１１２のタイプを判定し、およびデータ１１０に含まれる１または複数のデータフィールドに対して有効とされるべき検索オプション１１４を判定することによって、データ１１０を分析することができる。
【００１４】
データフィールド１１２のタイプを判定することに関して、データ１１０（例えば、文書、ファイルなど）を、データフィールドの整数型、データフィールドのリテラル型、またはデータフィールドのテキスト型などに関連付けることができる、複数のデータフィールドタイプが存在することができる。いくつかの実施形態では、データ１１０は、複数のデータフィールドを含むことができ、各データフィールドは値を含むことができる（例えば、データフィールド「名前」は、「ＡＢＣＤブランドのシャツ」の値を有することができ、データフィールド「価格」は、「＄２０」の値を有することができるなど）。ネットワークサービス１０６は、データ１１０に含まれる複数のデータフィールドを分析して、その複数における各データフィールドに対するデータフィールドタイプを判定することができる。
【００１５】
例えば、各データフィールドに対し、ネットワークサービス１０６は、各それぞれのデータフィールドが、指定された整数量閾値を上回る量の整数を含むか（例えば、データフィールド「価格」の値が全て整数）を判定することができ、そうである場合、そのそれぞれのデータフィールドを、整数のデータフィールドタイプであると判定することができる。ネットワークサービス１０６はまた、例えば、指定された下限リテラル量閾値を上回るが、指定された上限リテラル量閾値未満の量のアルファベット文字を有するデータフィールドに関連付けられた値、指定されたリテラル相違量閾値未満であるデータフィールドに関連付けられたいくつかの相違する値、指定されたリテラル相違割合（％）閾値未満である相違する値の割合（％）、または指定されたリテラル長閾値未満である長さの値、の少なくとも１つを判定することによって、データフィールドがリテラルのデータフィールドタイプのフィールドであるかを判定することができる。いくつかの実施形態では、ネットワークサービス１０６は例えば、データフィールドの値の長さ、データフィールドの値における相違する値の頻度および／または割合（％）を考慮して、テキスト型のフィールドであるとしてデータフィールドを識別することができ、データフィールドの値において多くの相違する値が存在し、およびデータフィールドの値が非常に長い（例えば、閾値を上回る多数のアルファニューメリック文字を有する）場合、データフィールドはテキスト型のフィールドである可能性が高い。いくつかの実施形態では、データフィールドが整数型、リテラル型のフィールドでない場合、データフィールドはテキスト型のフィールドとすることができる。
【００１６】
検索オプション１１４を判定することに関して、ネットワークサービス１０６は、データ１１０（のデータフィールド）に対して有効にされるべき１または複数の検索オプション１１４を判定することができる。例えば、データ１１０に含まれるデータフィールドに対するデータフィールドタイプを判定したら、ネットワークサービス１０６は、生成されることになる検索インデックスにデータフィールドを含めるオプションを有効にするか否か、データフィールドに対するファセット数を算出するオプションを有効にするか否か、および／または、データタイプに対する検索値を返す／提供するオプションを有効にするか否か、を判定することができる。
【００１７】
例えば、データフィールドに対するデータフィールドタイプがテキストであると判定された（例えば、データフィールドが「製品説明」であり、および値が長い節である）場合、ネットワークサービス１０６は、検索インデックスにデータフィールド（および値）を含めないオプションを選択することができる。別の例では、整数データフィールドタイプを有するデータフィールドに対し（例えば、データフィールドが「製造年」であり、および値が１年である）、ネットワークサービス１０６は、生成される検索インデックスにデータフィールドを含めるオプションを有効にすることを選択することができ、および、サービス１０６は、データフィールドに対するファセット数を算出するオプションを有効にすることができる。ファセット数は、いくつの検索結果が、データフィールドに対する或るカテゴリに分類されるかの数とすることができる。例えば、データフィールドが「製造年」である場合、ネットワークサービス１０６は、いくつの検索結果が或るカテゴリに関連付けられるかを示す、ファセット数を提供することが理にかなっているかを判定することができ、例えば、「１９８４（２３）、２００２（１２）、２０１０（１８）」は、「製造年」データフィールドに関して、２３の検索結果が「１９８４」に関連付けられ、１２の検索結果が「２００２」に関連付けられ、および１８の検索結果が「２０１０」に関連付けている、ファセット数の例を示す。
【００１８】
いくつかの実施形態では、ネットワークサービス１０６はまた、データフィールドに対する値を返すことを有効にすることを決定することができる。例えば、全ての検索可能なデータフィールド（および値）が、検索要求に応答して返される（例えば、読み出され、および提示される）必要はない。ネットワークサービス１０６は、データフィールドに対する値を返すか否かを決定することができる。
【００１９】
ここで、データ１１０に対する構成を生成することに目を向けると、ネットワークサービスは自動的に（すなわち、エンティティ１０８から指示なしに）、データ１１０に対する構成（例えば、検索インデックス構成、スキーマなど）を生成することができる。いくつかの実施形態では、構成は、少なくとも部分的には、どのようにデータ１１０を索引付けするかを判定することを補助することができ、インデックス構成は少なくとも部分的には、どのようにデータ１１０が索引付けされるかを決定することができる。構成またはスキーマは、データ１１０に含まれる各データフィールドに対するデータフィールドタイプを指定することができ、各データフィールドが検索可能であるかを示し、各データフィールドがランク付け可能であるか（例えば、ソート可能であるか）、および、インデックスを構築するのに有用である他の類似の情報を示すことができる。索引付けされるべきデータ１１０に対する構成を生成することに続いて、ネットワークサービス１０６は、生成された構成に少なくとも部分的に基づいて、データ１１０に対する検索インデックスを生成することができる。
【００２０】
図２は、ネットワーク化された環境において検索可能なデータに対するインデックス構成を利用することができる、例示的なウェブブラウジング環境２００を示す。例示的なウェブブラウジング環境２００は、ウェブブラウザなどの、アプリケーションによってレンダリングされている例示的なウェブページ２０２を備えることができる。この例では、ウェブページ２０２を、ドメインＡＢＣＤ．ｃｏｍに関連付けられたネットワークサービスによって提供することができる。
【００２１】
ユーザ／エンティティ（例えば、ネットワークサービスの顧客）は、小売業者であり得、および、例えば、シャツを販売することに関連するデータをアップロードすることができる。データを、ネットワークサービスによって索引付けおよび記憶することができ、ならびに、ユーザ／エンティティの潜在的な顧客などの他の者が検索可能とすることができる。ネットワークサービスは、データを分析して、データに含まれるデータフィールドの各々に対するデータフィールドのタイプ（すなわち、データフィールドタイプ）を判定することができる。例えば、シャツを販売することに関連するデータは、「色」２０６、「サイズ」２０８、「価格」２１０、「説明」および他のフィールドなどのデータフィールドを含むことができる。ネットワークサービスは、各データフィールドに対する値を分析して、各それぞれのデータフィールドに対するタイプを判定することができる。ネットワークサービスはまた、１または複数のオプション（例えば、検索オプション）を、各データフィールドに対して有効とするかを判定することができる。ネットワークサービスは続いて、索引付けされることになるデータに対する構成／スキーマを生成することができる。そして、ネットワークサービスは、構成／スキーマに基づいて、データに対するインデックスを生成することができる。
【００２２】
例えば、ネットワークサービスは、データフィールド「色」を識別することができ、その値（例えば、「赤」、「青」、「白」、「緑など）がアルファベット／リテラルであることを判定することができ、および、「色」データフィールドのタイプをリテラル型として識別し得る。（この例では、「色」データフィールドに関連付けられたデータ、および値（例えば、「赤」、「青」、「白」、「緑」など）を、エンティティによってアップロードすることができる）。別の例では、ネットワークサービスは、アップロードされたデータの少なくとも一部における「サイズ」データフィールドを識別することができ、および、「サイズ」データフィールドに含まれる値が数値であることを判定することができる。この例では、ネットワークサービスは、「サイズ」データフィールドが整数型であることを判定し得る。さらなる例では、ネットワークサービスは、アップロードされたデータの少なくとも一部における「説明」データフィールドに対する値を識別することができ、ならびに、値が数字とアルファベット文字との両方を含むこと、値が文字の数が長いこと、および／または、値が相違する用語／語句／記号を含むこと、を判定し得る。この例では、ネットワークサービは、「説明」データフィールドがテキスト型であることを判定してもよい。
【００２３】
検索オプションに関して、ネットワークサービスは、データフィールドの各々に対して、生成されることになる検索インデックスにそれぞれのデータフィールドを含めるオプションを有効にするか否かを判定することができる。例えば、いくつかの実施形態では、「説明」データフィールド（および対応する値）を、検索インデックスから除外することができる。そうである場合、クエリが検索インデックスに関して実行されるとき、クエリは「説明」データフィールドを検索しない。しかしながら、いくつかの実施形態は、検索インデックスに「説明」データフィールドおよび値を含めることができ、および含める。
【００２４】
さらに、ネットワークサービスは、各データフィールドに対するファセット数を算出するオプションを有効にするか否かを判定することができる。上述のように、ファセット数は、検索クエリに一致したいくつの結果が、特定のデータフィールドに対する値（または値の範囲）を有するかを示す。例えば、図２に示すように、「赤」の値を有する「色」データフィールドは、２３のファセット数を有し（すなわち、「赤」のシャツに対して２３の検索結果）、「色」データフィールドの「青」の値は、２８のファセット数を有する（すなわち、「青」のシャツに対して２８の検索結果）、などである。いくつかの実施形態では、値は重複することがある（すなわち、正確に一致しなくてもよい）。例えば、青および赤のストライプを有するシャツを、「青」および「赤」の両方の値に関連付けることができ、ならびに／または他の値に関連付けることができる。いくつかの実施形態では、ネットワークサービスは、ファセット数をデータフィールドのいくつかに対して算出すべきであると判定することができるが、必ずしもデータフィールドの全てに対してではない。例えば、ネットワークサービスは、「色」、「サイズ」および「価格」に対するファセット数が存在すべきであるが、「説明」に対しては、そうではないことを判定することができる。
【００２５】
さらに、ネットワークサービスは、データフィールドに対する値を返すことを有効にするか否かを判定することができる。例えば、データに含まれるデータフィールド「内部製品識別番号」、すなわちエンティティに対して内部にある製品識別番号であり、エンティティの顧客に見られることを意図していないデータフィールドの値が存在することができ、したがって、ネットワークサービスは、そのようなデータフィールドに対する値を返すことを有効にしないように決定することができる。
【００２６】
追加のオプション、ならびに当業者が認識する他の項目に関連するデータが存在し得る。例えば、ネットワークサービスは、データフィールドをランク付け可能（例えば、ソート可能）とするオプションを有効にするか否かを判定することができる。図２を参照して、いくつかの実施形態では、「価格」データフィールドを、その値（例えば、最低価格から最高価格まで、最高価格から最低価格までなど）によって、ランク付け／ソートすることができ、および、「色」データフィールドを、アルファベット順にソートすることができる（図２では示さない）、などである。別の例では（図示しない）、音楽、ビデオ、本、写真などのメディアファイルに関連するデータが存在することができる。メディアファイルに対する例示的なデータフィールドは、「タイトル」、「アーチスト／作者」、「作成年」、「価格」、「評価」などを含むことができるが、それらに限定されない。
【００２７】
データに含まれるデータフィールドのタイプ、およびデータに含まれるデータフィールドに対する１または複数の検索オプションを判定したら、ネットワークサービスは、データに対する構成（すなわち、検索インデックス構成、スキーマなど）を生成することができ、構成を生成することは、判定されたデータフィールドタイプおよび検索オプションに少なくとも部分的に基づいている。
【００２８】
構成を生成したことに続いて、ネットワークサービスは、生成された構成に少なくとも部分的に基づいて、データに対する検索インデックスを生成することができる。したがって、エンティティにより提供されるデータを、ネットワークサービスに記憶することができ、およびネットワークサービスにより生成されたデータに対する検索インデックスとともに記憶することができる。
【００２９】
図３は、ネットワーク化された環境において、検索可能なデータに対するインデックス構成についての例示的なシステムの実施形態３００を示す。例示的なシステムの実施形態３００は、システムコントローラ３０２、少なくとも１つの通信送受信機３０４、データフィールドタイプアナライザ３０６、検索オプションアナライザ３０８、インデックス構成ジェネレータ３１０、インデックスジェネレータ３１２、および少なくとも１つの記憶域割り当て３１４を備えることができる。
【００３０】
システムコントローラ３０２は、ネットワーク化された環境において、システムが検索可能なデータに対するインデックス構成についての種々の動作を実行することを促進することができる。システムコントローラ３０２は、少なくとも１つの通信送受信機３０４と通信して、システム３００の外部の１もしくは複数のソースへのデータ送信および／またはそれらからのデータ受信を促進し、ならびにシステム間でのデータ通信を促進することができる。
【００３１】
通信送受信機３０４を介してシステム３００により受信されたデータ（例えば、エンティティから）を、データフィールドタイプアナライザ３０６によって分析して、データに含まれるデータフィールドの各々に関連するタイプを判定することができる。また、データを、検索オプションアナライザ３０８によって分析して、データに含まれるデータフィールドの各々に関して１または複数の検索オプションを有効にするか否かを判定することができる。判定されたデータフィールドタイプおよび１または複数の判定された検索オプションに少なくとも部分的に基づいて、インデックス構成ジェネレータ３１０は、検索インデックス構成／スキーマを生成することができる。生成された検索インデックス構成／スキーマに少なくとも部分的に基づいて、インデックスジェネレータ３１２は、データに対する検索インデックスを生成することができる。データおよびデータに対して生成された検索インデックスを、１または複数の記憶域割り当て３１４上に記憶することができる。
【００３２】
例示的なシステム３００の種々の構成要素および／または一部を、ハードウェア、ソフトウェア、または両方の組み合わせとして実現することができることが企図される。例えば、システム３００の種々の部分を、回路、プロセッサ、アプリケーション、プログラミングコードの一部、アルゴリズム、またはそれらの任意の組み合わせなどを介して実現することができる。また、図３は、例であり、および、単に例示的な目的のために使用されることが意図されることが企図される。例えば、種々の構成要素は、図３に従って構成される必要はない。いくつかの実施形態では、種々の構成要素は、緊密に相互に結合される必要はなく、代わりに、さらなる分散型システムにわたって分散することができる。例えば、インデックスジェネレータなどの構成要素は、別個の／異なるネットワークおよび／またはシステム上に存在することができるが、他の構成要素への通信可能な接続（複数可）をいまだに維持することができる。
【００３３】
図４は、本開示の種々の実施形態に従って生成することができる、例示的な検索インデックス４００を示す。図４を参照して、検索インデックスにおいて、ルートノード４０２が存在することができる。図４の例では、Ｔシャツの小売業者などのエンティティによってデータをアップロードすることができる。データは、エンティティが販売で購入可能としたＴシャツ（ルートノード４０２）に関する情報に対応することができる。Ｔシャツに関連するデータに対するデータフィールドを表す親ノード（例えば、４０４、４０６、４０８）が存在することができる。例えば、Ｔシャツは、色データフィールド４０４、サイズデータフィールド４０６、および価格データフィールド４０８を有することができる。
【００３４】
図４の例を続けると、データフィールドは、各それぞれのデータフィールド内の値を表す、子ノード（例えば、４１０、４１２、４１４、４１６、４１８）を有することができる。例えば、少なくとも２つの色（赤４１０および青４１２）、１つのサイズ（ミディアム４１４）、および２つの価格帯（＄１０未満４１６および＄１０〜＄２０  ４１８）が存在することができる。また、データフィールドおよび値の１または複数に対応することができる、検索結果／項目の組（例えば、Ｔシャツ４２０、４２２、４２４、４２６、４２８、４３０）が存在することができる。
【００３５】
この例では、全ての３つのデータフィールド（色４０４、サイズ４０６、および価格４０８）は、検索インデックスに含まれることになり、ファセット数を有することができ、および関連する検索クエリに応答して、値を提供／返すことができる。例えば、図４に示すように、色：赤４１０は、３のファセット数を有することができ、および色：青４１２は、２のファセット数を有することができる。サイズ：ミディアム４１４は、２のファセット数を有することができる。価格：＄１０未満４１６は、１のファセット数を有することができ、および価格：＄１０〜＄２０  ４１８は、２のファセット数を有することができる。さらに、色：赤４１０の検索クエリは、例えば、Ｔシャツ４２２、４２４、および４２８を返し、赤４１０および青４１２を検索し、例えば、Ｔシャツ４２２を返す、などである。例示の検索インデックス４００が、ツリー構造として示されたが、検索インデックスを多くの他の方法でおよび／または他の構造で生成することができることが企図される。
【００３６】
図５は、ネットワーク化された環境における検索可能なデータに対するインデックス構成についての例示的な方法の実施形態５００を示す。他に言及がない限り、種々の実施形態の範囲内で、同様のもしくは代替的な順序で、または並列して実行される、追加の、いくつかの、または代替のステップが存在することができることを、再度理解するべきである。ステップ５０２において、例示的な方法の実施形態５００は、索引付けされるべきデータを受信することができる。例えば、方法５００は、索引付けされるべき、エンティティによりアップロードされたデータを受信することができ、および、データは、複数のデータフィールド（または少なくとも１つのデータフィールド）を含むことができる。いくつかの実施形態では、例示的な方法はまた、データに関連付けられたデータフィールドに対する名前を判定することができる。ステップ５０４において、例示的な方法５００は、データに関連付けられたデータフィールドのタイプを判定することができる。例えば、方法は、複数のデータフィールドにおける各データフィールドに関連付けられた複数のフィールドタイプのフィールドタイプを判定することができる。複数のフィールドタイプは、整数型、リテラル型、またはテキスト型の少なくとも１つを含むことができる（それらに限定されない）。データフィールドのタイプを、データフィールドの複数のタイプから判定することができる。いくつかの実施形態では、複数のデータフィールドならびにそれらのタイプおよび／または名前を、タグ、信号、または他のインジケーションに基づいて識別することができる。方法５００は、ステップ５０６において、データに関連付けられたデータフィールドに関して有効にされるべき１または複数の検索オプションを判定することができる。例えば、１または複数の検索オプションは、生成されることになる検索インデックスにそれぞれのデータフィールドを含めるオプション、それぞれのデータフィールドに対するファセット数を算出するオプション、またはそれぞれのデータフィールドに関連付けられた１もしくは複数の値を提供するオプション、の少なくとも１つを含むことができる。ステップ５０８は、データフィールドのタイプおよび１または複数の検索オプションに少なくとも部分的に基づいて、データに対するインデックス構成を生成することを含むことができる。そして、ステップ５１０において、方法５００は、データに対するインデックス構成に少なくとも部分的に基づいて、データに対する検索インデックスを生成することができる。いくつかの実施形態では、データが構造化されたデータ、フリーテキストデータ、または両方の組み合わせであるかに基づいて、検索インデックスを生成することができる。いくつかの実施形態では、例示的な方法はまた、データ、インデックス構成、または１もしくは複数の検索クエリにより検索可能となるインデックスの少なくとも１つを提供することができる。
【００３７】
種々の他の情報がインデックス構成に含められることができる。例えば、構成は、データフィールドがファセット決定可能であるか否か（すなわち、ファセット数がデータフィールドに対して算出されるべきか否か）、データフィールドがランク付け可能であるか否か（すなわち、データフィールドを有する検索結果の値がソートされるべきであるか否か）などに関する情報を保有することができる。
【００３８】
いくつかの実施形態では、ネットワークサービスは、第１のフォーマットで受信／アップロードされたデータを、第２のフォーマットに変換することができ、第２のフォーマットは、検索インデックスに適合し、および第２のフォーマットに変換されたデータを、１または複数の記憶域割り当て上に記憶することができる。例えば、ネットワークサービスは、エンティティからデータを受信することができ、データは、．ＰＤＦ、．ＤＯＣ、．ＤＯＣＸ、．ＣＳＶ、．ＪＳＯＮ、．ＸＭＬなどのいくつかの種々のフォーマットの任意の１または複数を有することが可能である。ネットワークサービスは、検索データフォーマット（ＳＤＦ）などのネットワークサービスに適合する（例えば、ネットワークサービスにより認識可能であり、ネットワークサービスで実行可能な）フォーマットにデータを自動的に変換することができる。
【００３９】
いくつかの実施形態では、ネットワークサービスは、第１のフォーマットを第２のフォーマットと比較すること、および第１のフォーマットに関連付けられた少なくとも１つのデータフィールドを変更して、第２のフォーマットに関連付けられた少なくとも１つのデータフィールドに対応させること、に基づいて、データを変換することができる。例えば、ネットワークサービスは、エンティティから受信されたデータのフォーマット（複数可）を比較することができ、およびネットワークサービスに適合するようにフォーマットを変更／更新することができる。このことは、フォーマットにおける１または複数のデータフィールドが追加、除去、または変更されるべきかを識別することを含むことができる。
【００４０】
いくつかの実施形態では、ネットワークサービスは、データフィールドに関連付けられた値が、指定された整数量閾値を上回る量の整数文字を有しているかを判定したことに基づいて、データフィールドのタイプを整数型であると判定することができる。また、ネットワークサービスは、指定された下限リテラル量閾値を上回るが、指定されたリテラル量閾値未満である量のアルファベット文字を有するデータフィールドに関連付けられた値、指定されたリテラル相違量閾値未満であるデータフィールドに関連付けられたいくつかの相違する値、指定されたリテラル相違割合閾値未満である相違する値の割合（％）、または指定されたリテラル長閾値未満である値の長さ、の少なくとも１つを判定して、データフィールドのタイプをリテラル型であると判定することができる。さらに、ネットワークサービスは、データフィールドに関連付けられた値が、指定されたテキスト量閾値を上回る量の整数およびアルファベット文字、指定されたテキスト相違量閾値を上回るいくつかの相違する文字、指定されたテキスト相違割合閾値を上回る相違する文字の割合（％）、または指定されたテキスト長閾値を上回る文字の長さ、の少なくとも１つを有するかを判定したことに基づいて、データフィールドのタイプをテキスト型であると判定することができる。
【００４１】
いくつかの実施形態では、ネットワークサービスは、生成されることになる検索インデックスにデータフィールドを含めるオプションを有効にすると決定することができ、決定は、データフィールドが検索インデックスに含まれることになることを示す、データフィールドに含まれる信号を受信したことに少なくとも部分的に基づいている。ネットワークサービスはまた、データフィールドに対するファセット数を算出するオプションを有効にすると決定することができ、決定は、データフィールドに関連付けられた少なくとも１つの値に対する量が、指定されたファセット数下限閾値を上回り、および指定されたファセット数上限閾値未満であることを判定することに少なくとも部分的に基づいている。ネットワークサービスはさらに、関連する検索クエリに応答して、データフィールドに関連付けられた値を提供するオプションを有効にすると決定することができ、決定は、データフィールドに関連付けられた値が提供されることになることを示す、データフィールドに含まれる信号を受信したことに少なくとも部分的に基づいている。
【００４２】
いくつかの実施形態では、１または複数の検索クエリ（例えば、検索クエリにおける語）を、ネットワークサービスによって利用することができる。例えば、ネットワークサービスは、検索者が特定のデータフィールドに対してファセット決定していることを検索クエリから推論することができる。結果として、ネットワークサービスは、例えば、データフィールドがリテラル型のフィールドであるべきであることを判定することができる。
【００４３】
いくつかの実施形態では、検索者がクエリ語を入力し、および検索を要求するとき、１または複数の検索結果を、関連度によってなど、特定のランク表現（例えば、結果の順序）で提示することができる。本開示は、クエリに依存しない因子など（例えば、データ内に人気データフィールドを含めることができるなど）の他の因子を考慮したより複雑なランク表現の作成を可能にする。本開示はまた、データを参照し、およびデータフィールドが人気の観点から重要であると判定することによって、使用することができるランク表現を提案する分析を可能にすることができる。例えば、テキスト本体のデータフィールドタイプが存在することができ、その長さ（例えば、またはその長さの逆数（ｉｎｖｅｒｓｅ）が考慮されてもよく、およびその長さは、ランク表現に対する有用な情報を提供することができる。
【００４４】
いくつかの実施形態では、データフィールドタイプはまた、地理的位置型、時間型、日付型、または浮動小数点数型を含むことができる。
【００４５】
本開示と一致した種々の実施形態はまた、サンプルデータを利用することができる。例えば、ユーザ／エンティティは最初に、サンプルデータをネットワークサービスに提供することができる。ネットワークサービスは、サンプルデータを分析して、データフィールドのタイプおよび検索オプションを判定することができる。サンプルデータに対するデータフィールドタイプおよび検索オプションに基づいて、ネットワークサービスは、インデックス構成を生成することができ、続いて、生成されたインデックス構成に基づいて、検索インデックスを生成することができる。
【００４６】
図６は、種々の実施形態に従って使用することができる例示的な電子ユーザデバイス６００を示す。ポータブルコンピューティングデバイス（例えば、電子ブックリーダ、またはタブレットコンピュータ）が示されているが、本明細書で論じられた種々の実施形態に従って、入力を受信、判定、および／または処理することが可能な任意の電子デバイスを使用することができ、デバイスは、例えば、デスクトップコンピュータ、ノートブックコンピュータ、携帯情報端末、スマートフォン、ビデオゲームコンソール、テレビジョンセットトップボックス、およびポータブルメディアプレイヤを含むことができることを理解するべきである。いくつかの実施形態では、コンピューティングデバイス６００は、オペアンプを使用して信号処理を実行することができるデバイスなどの、アナログデバイスとすることができる。この例では、コンピューティングデバイス６００は、前面にディスプレイスクリーン６０２を有し、通常の動作では、ディスプレイスクリーンに面している（例えば、コンピューティングデバイスのディスプレイスクリーンと同一の側面上の）ユーザに情報を表示する。この例におけるコンピューティングデバイスは、少なくとも１つのカメラ６０４、または少なくとも１つのカメラの少なくとも視野上で静止またはビデオ画像情報を取り込む他の撮像要素を含む。いくつかの実施形態では、コンピューティングデバイスは単に、１つのみの撮像要素を含んでもよく、および他の実施形態では、コンピューティングデバイスは、いくつかの撮像要素を含んでもよい。各画像取込要素は、例えば、多くの他の可能性の中で、電荷結合素子（ＣＣＤ）、動き検出センサ、または赤外線センサであってもよい。コンピューティングデバイス上に複数の画像取込要素が存在する場合、画像取込要素は、異なるタイプのものであってもよい。いくつかの実施形態では、少なくとも１つの撮像要素は、魚眼レンズなどの、カメラが１８０度以上などの広範囲の角度で画像を取り込むことを可能にする、少なくとも１つの広角光学要素を含むことができる。さらに、各画像取込要素は、高速に連続で後続のフレームを取り込むように構成されたデジタル静止カメラ、またはストリーミングビデオを取り込むことが可能なビデオカメラを含むことができる。
【００４７】
例示的なコンピューティングデバイス６００はまた、少なくとも１つのマイクロフォン６０６、またはデバイスのユーザによって発される語またはコマンドなどの、音声データを取り込むことが可能な他の音声取込デバイスを含む。この例では、マイクロフォン６０６は、デバイスのディスプレイスクリーン６０２と同一の側面に配置され、それによって、マイクロフォンは通常、デバイスのユーザにより発される語をよりよく取り込むことが可能になる。少なくともいくつかの実施形態では、マイクロフォンは、マイクロフォンの前方から実質的に直近の音声情報を取り込み、および他の方向から限定した音声の量のみを拾う、指向型マイクロフォンとすることができる。マイクロフォンは、異なる実施形態では、デバイスの任意の領域、面、または境界の任意の適切な表面上に位置してもよいこと、ならびに、複数のマイクロフォンを、音声の記録およびフィルタリングなどの目的で使用することができること、を理解するべきである。
【００４８】
例示的なコンピューティングデバイス６００はまた、位置および／または動き判定要素などの、少なくとも１つの方位センサ６０８を含む。そのようなセンサは、例えば、デバイスの方位および／または方位の変化、ならびにコンピューティングデバイスの小さな動きを検出するように動作可能な加速度計またはジャイロスコープを含むことができる。方位センサはまた、（例えば、主軸または他のそのような面に関して）デバイスが向いていると判定される方向（例えば、北または南）を示すことができる、電子またはデジタルコンパスを含むことができる。方位センサはまた、グローバルポジショニングシステム（ＧＰＳ）、またはデバイスの位置に対する相対的座標、ならびにコンピューティングデバイスの比較的大きな動きに関する情報を判定するように動作可能な、類似のポジショニング要素を含み、または備えることができる。種々の実施形態は、任意の適切な組み合わせで、１または複数のそのような要素を含むことができる。理解されるべきであるように、相対位置、方位、および／または動きを判定するのに使用されるアルゴリズムまたは機構は、デバイスに利用可能な要素の選択に少なくとも部分的に依存することができる。
【００４９】
図７は、図６に関して説明されたデバイス６００などの、例示的なコンピューティングデバイス７００の一般的な構成要素の組の論理配置を示す。この例では、デバイスは、メモリデバイスもしくは要素７０４に記憶することができる命令を実行するプロセッサ７０２を含む。当業者にとって明らかなように、デバイスは、プロセッサ７０２により実行するためのプログラム命令に対する第１の記憶装置、画像もしくはデータに対する別個の記憶装置、または他のデバイスと情報を共有するための着脱可能メモリなどの、多くのタイプのメモリ、データ記憶装置、または非一時的コンピュータ可読記憶媒体を含むことができる。デバイスは通常、タッチスクリーンまたは液晶ディスプレイ（ＬＣＤ）などのいくつかのタイプのディスプレイ要素７０６を含むが、ポータブルメディアプレイヤなどのデバイスは、音声スピーカを通じてなど、他の手段を介して情報を搬送してもよい。論じられたように、多くの実施形態におけるデバイスは、投影された画像またはデバイスの近隣にある他の対象物を撮像することが可能な、カメラまたは赤外線センサなどの少なくとも１つの画像取込要素７０８を含む。コンピューティングデバイスでのカメラ要素を使用した画像またはビデオを取り込む方法は、本分野では公知であり、本明細書では詳細に論じない。画像の取り込みを、単一の画像、複数の画像、周期的な撮像、連続した画像取り込み、画像ストリーミングなどを使用して実行することができることを理解するべきである。さらに、デバイスは、ユーザ、アプリケーション、または他のデバイスからコマンドを受信したときなど、画像の取り込みを開始および／または停止する能力を含むことができる。例示的なデバイスは同様に、モノラルもしくはステレオマイクロフォンまたはマイクロフォンアレイなどの、少なくとも１つの主要な方向から音声情報を取り込むように動作可能な、少なくとも１つの音声取込構成要素７１２を含む。マクロフォンは、そのようなデバイスに対して既知である単方向または無指向性マクロフォンをすることができる。
【００５０】
いくつかの実施形態では、図７のコンピューティングデバイス７００は、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＲＦ、有線もしくは無線通信システムなどの、１または複数の通信要素（図示しない）を含むことができる。多くの実施形態におけるデバイスは、インターネットなどのネットワークと通信することができ、および、他のそのようなデバイスと通信することが可能であってもよい。いくつかの実施形態では、デバイスは、ユーザから従来型の入力を受信することが可能な、少なくとも１つの追加的な入力デバイスを含むことができる。この従来型の入力は、例えば、プッシュボタン、タッチパッド、タッチスクリーン、ホイール、ジョイスティック、キーボード、マウス、キーパッド、または、ユーザがデバイスへのコマンドを入力することができる、任意の他のそのようなデバイスもしくは要素を含むことができる。しかしながら、いくつかの実施形態では、そのようなデバイスは、いかなるボタンも含まなくてもよく、ならびに、視覚および音声コマンドの組み合わせを通じてのみ制御されてもよく、それによって、ユーザは、デバイスと連絡する必要なしにデバイスを制御することができる。
【００５１】
デバイス７００はまた、少なくとも１つの方位または動きセンサ７１０を含むことができる。論じられたように、そのようなセンサは、方位および／もしくは方位の変化を検出するように動作可能な加速度計もしくはジャイロセンサ、または、デバイスが向いていると判定される方向を示すことができる電子もしくはデジタルコンパスを含むことができる。機構（複数可）はまた（または代替的に）、グローバルポジショニングシステム（ＧＰＳ）、またはデバイスの位置に対する相対的座標、ならびにコンピューティングデバイスの比較的大きな動きに関する情報を判定するように動作可能な類似のポジショニング要素を含み、または備えることができる。デバイスは、三角法または別のそのようなアプローチを通じて位置判定を有効にすることができるなどの、他の要素も含むことができる。これらの機構は、プロセッサ７０２と通信することができ、それによって、デバイスは、本明細書で説明または提案される任意の数の動作を実行することができる。
【００５２】
例として、図６に関して説明されたようなコンピューティングデバイスは、時間とともにユーザに対する種々の情報を取り込みおよび／または追跡することができる。この情報は、位置、動作（例えば、メッセージを送信すること、または文書を作成すること）、ユーザの振る舞い（例えば、ユーザがどれほど頻繁にタスクを実行するか、ユーザがタスクに要する時間の量、ユーザがインタフェースを通じてナビゲートする方法など）、ユーザ嗜好（例えば、どのようにユーザが情報を受信することを望むか）、オープンアプリケーション、投入された要求、および受信した呼などの、任意の適切な情報を含むことができる。上述のように、情報がリンクまたは関連付けられたそのような方法で、情報を記憶することができ、それによって、ユーザは、任意の適切な様態、または様態の集まりを使用して、情報にアクセスすることができる。
【００５３】
論じられたように、説明された実施形態に従って、種々の環境で異なるアプローチを実装することができる。例えば、図８は、種々の実施形態に従って態様を実現するための環境８００の例を示す。理解されるように、ウェブベースの環境が例示の目的で使用されるが、必要に応じて、種々の実施形態を実現するために異なる環境が使用されてもよい。システムは、要求、メッセージ、もしくは情報を適切なネットワーク８０４上で送信および受信し、ならびに情報をデバイスのユーザに搬送し返すように動作可能な任意の適切なデバイスを含むことができる、電子クライアントデバイス８０２を含む。そのようなクライアントデバイスの例は、パーソナルコンピュータ、携帯電話、ハンドヘルドメッセージングデバイス、ラップトップコンピュータ、セットトップボックス、携帯情報端末、および電子ブックリーダなどを含む。ネットワークは、イントラネット、インターネット、セルラネットワーク、ローカルエリアネットワーク、もしくは任意の他のそのようなネットワーク、またはそれらの組み合わせ、などを含む任意の適切なネットワークを含むことができる。そのようなシステムに使用される構成要素は、ネットワークのタイプおよび／または選択される環境に少なくとも部分的に依存することができる。そのようなネットワークを介して通信するためのプロトコルおよび構成要素は公知であり、本明細書では詳細に論じない。ネットワーク上の通信を、有線または無線接続、およびそれらの組み合わせを介して有効にすることができる。この例では、要求を受信し、およびそれに応答してコンテンツを供給するウェブサーバ８０６を環境が含むので、ネットワークはインターネットを含むが、当業者にとって明らかなように、他のネットワークの場合、同一の目的を果たす代替的なデバイスが使用されるであろう。
【００５４】
例示的な環境は、少なくとも１つのアプリケーションサーバ８０８およびデータストア８１０を含む。いくつかのアプリケーションサーバ、階層もしくは他の要素、処理、または構成要素が存在することができ、それらは、適切なデータストアからデータを取得するなどのタスクを実行するように対話することができ、連鎖または構成されてもよい。本明細書で使用されるように、「データストア」という用語は、データを記憶、アクセス、および読み出すことが可能な任意のデバイスまたはデバイスの組み合わせを指し、任意の標準、分散型、またはクラスタ化された環境における、任意の組み合わせおよび数のデータサーバ、データベース、データ記憶装置、およびデータ記憶媒体を含んでもよい。アプリケーションサーバは、クライアントデバイスに対する１もしくは複数のアプリケーションの態様を実行する必要に応じて、データストアと対話し、ならびにアプリケーションに対するデータアクセスおよびビジネスロジックの大部分を処理する、任意の適切なハードウェアおよびソフトウェアを含むことができる。アプリケーションサーバは、データストアと協働してアクセス制御サービスを提供し、ならびに、この例で、ＨＴＭＬ、ＸＭＬまたは別の適切な構造化言語の形式でウェブサーバによってユーザに供給することができる、ユーザに転送されることになるテキスト、グラフィック、音声、および／またはビデオなどのコンテンツを生成することが可能である。全ての要求および応答の処理、ならびにクライアントデバイス８０２とアプリケーションサーバ８０８との間のコンテンツの配信を、ウェブサーバ８０６によって扱うことができる。本明細書で論じられた構造化コードを、本明細書で他に論じられた任意の適切なデバイスまたはホストマシンで実行することができるので、ウェブおよびアプリケーションサーバが必要とされず、およびそれらは例示的な構成要素にすぎないことを理解するべきである。
【００５５】
データストア８１０は、いくつかの別個のデータテーブル、データベース、または特定の態様に関連するデータを記憶するための他のデータ記憶機構および媒体を含むことができる。例えば、例示されるデータストアは、製造側にコンテンツを供給するのに使用することができる、製造データ８１２およびユーザ情報８１６を記憶するための機構を含む。データストアはまた、ログまたはセッションデータ８１４を記憶するための機構を含むように示される。ページ画像情報およびアクセス権情報など、データストアに記憶するのに必要となる多くの他の側面が存在することができることを理解するべきであり、それらは、必要に応じて、上記列挙された機構、またはデータストア８１０における追加的な機構のいずれかに記憶することができる。データストア８１０は、それらに関連づけられたロジックを通じて、アプリケーションサーバ８０８から命令を受信し、およびそれに応答して、データを取得、更新、または処理するように動作可能である。一例では、ユーザは、ある特定のタイプの要素に対する検索要求を投入してもよい。この例では、データストアは、ユーザ情報にアクセスして、ユーザの識別を確認してもよく、およびカタログ詳細情報にアクセスして、そのタイプの要素に関する情報を取得することができる。そして、ユーザが、ユーザデバイス８０２上のブラウザを介して参照することが可能なウェブページ上で結果を一覧化するなど、情報をユーザに返すことができる。対象の特定の要素に対する情報を、専用ページまたはブラウザのウインドウで参照することができる。
【００５６】
各サーバは通常、そのサーバの全体的な管理および操作に対する実行可能なプログラム命令を提供するオペレーティングシステムを含み、ならびに、各サーバは通常、サーバのプロセッサにより実行されると、サーバがその意図された機能を実行することを可能にする命令を記憶したコンピュータ可読媒体を含む。オペレーティングシステムおよびサーバの全体的な機能性に適した実装は既知であり、もしくは商業的に利用可能であり、および、特に本開示を考慮して、当業者によって容易に実装される。
【００５７】
一実施形態での環境は、１もしくは複数のコンピュータネットワークまたは直接接続を使用して、通信リンクを介して相互接続されるいくつかのコンピュータシステムおよび構成要素を利用した、分散型コンピューティング環境である。しかしながら、そのようなシステムは、図８で示したよりも多くのもしくは少ない数の構成要素を有するシステムにおいても同様に動作することが、当業者によって理解されるであろう。したがって、図８におけるシステム８００の記載は、本質的に例示的なものとしてみなされるべきであり、本開示の範囲を限定するものではない。
【００５８】
上述のように、多種多様の動作環境で、種々の実施形態を実装することができ、それらの環境は、いくつかの例において、いくつかのアプリケーションのいずれかを動作させるように使用することができる、１または複数のユーザコンピュータ、コンピューティングデバイス、または処理デバイスを含むことができる。ユーザまたはクライアントデバイスは、標準のオペレーティングシステムを実行するデスクトップまたはラップトップコンピュータなどのいくつかの汎用パーソナルコンピュータのいずれかと、ならびにモバイルソフトウェアを実行し、ならびにいくつかのネットワーキングおよびメッセージングプロトコルをサポートすることが可能なセルラ、無線、およびハンドヘルドデバイスを含むことができる。そのようなシステムはまた、種々の商業的利用可能なオペレーティングシステム、および開発およびデータベース管理などの目的のための他の既知のアプリケーションのいずれかを実行する、いくつかのワークステーションを含むことができる。これらのデバイスはまた、ダミー端末、シンクライアント、ゲーミングシステム、およびネットワークを介して通信することが可能な他のデバイスを含むことができる。
【００５９】
サービス指向アーキテクチャの一部とすることができるなど、少なくとも１つのサービスまたはウェブサービスの一部として、種々の態様を実現することもできる。ウェブサービスなどのサービスは、拡張可能マークアップ言語（ＸＭＬ）フォーマットにおけるメッセージを使用することによって、およびＳＯＡＰ（「シンプルオブジェクトアクセスプロトコル（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）」から由来する）などの適切なプロトコルを使用して交換されるなどの、任意の適切なタイプのメッセージングを使用して通信することができる。そのようなサービスにより提供または実行される処理を、ウェブサービス記述言語（ＷＳＤＬ）などの任意の適切な言語で記述することができる。ＷＳＤＬなどの言語を使用することは、種々のＳＯＡＰフレームワークにおいて、クライアント側でのコードの自動生成などの機能性を可能にする。
【００６０】
ほとんどの実施形態は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、およびＡｐｐｌｅＴａｌｋなどの、種々の商業的に利用可能なプロトコルのいずれかを使用して通信をサポートする、当業者にとって公知な少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせとすることができる。
【００６１】
ウェブサーバを使用する実施形態では、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、およびビジネスアプリケーションサーバを含む、種々のサーバまたはミドル層アプリケーションのいずれかを実行することができる。サーバ（複数可）はまた、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、もしくはＣ＋＋などの任意のプログラミング言語、または、Ｐｅｒｌ、Ｐｙｔｈｏｎ、もしくはＴＣＬ、およびそれらの組み合わせなどの、任意のスクリプト言語で記述された１もしくは複数のスクリプトまたはプログラムとして実装することができる、１もしくは複数のウェブアプリケーションを実行することによってなど、ユーザデバイスからの要求に応答して、プログラムまたはスクリプトを実行することが可能であってもよい。サーバ（複数可）はまた、それらに限定されないが、Ｏｒａｃｌｅ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）、Ｓｙｂａｓｅ（登録商標）、およびＩＢＭ（登録商標）からの商業的に利用可能なものを含むデータベースサーバを含んでもよい。
【００６２】
環境は、上述の種々のデータストアおよび他のメモリもしくは記憶媒体を含むことができる。これらは、１もしくは複数のコンピュータに対してローカルな（および／またはそれに存在する）、またはネットワークにわたるコンピュータのいずれかもしくは全てからリモートな記憶媒体上など、種々の位置に存在することができる。実施形態の特定の組では、情報は、当業者にとって公知なストレージエリアネットワーク（「ＳＡＮ」）に存在してもよい。同様に、コンピュータ、サーバ、または他のネットワークデバイスに起因する機能を実行するための任意の必要なファイルは、必要に応じてローカルまたはリモートに記憶されてもよい。システムがコンピュータ化されたデバイスを含む場合、各々のそのようなデバイスは、バスを介して電子的に結合することができるハードウェア要素を含むことができ、要素は、例えば、少なくとも１つの中央処理装置（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチスクリーン、またはキーパッド）、および少なくとも１つの出力デバイス（例えば、ディスプレイデバイス、プリンタ、またはスピーカ）を含む。そのようなシステムはまた、ディスクドライブ、光学式記憶装置、および着脱可能メディアデバイス、メモリカード、フラッシュメモリとともに、ランダムアクセスメモリ（「ＲＡＭ」）またはリードオンリメモリ（「ＲＯＭ」）などの、ソリッドストレージデバイス、などの１または複数の記憶装置を含んでもよい。
【００６３】
そのようなデバイスはまた、上述のような、コンピュータ可読記憶媒体リーダ、通信デバイス（例えば、モデム、ネットワークカード（無線または有線）、赤外線通信デバイスなど）、および作業メモリを含むことができる。コンピュータ可読記憶媒体リーダを、一時的および／もしくはより永続的にコンピュータ可読情報を収容、記憶、送信および読み出すために、リモート、ローカル、固定および／もしくは着脱可能記憶装置、ならびに記憶媒体を表すコンピュータ可読記憶媒体と接続することができ、またはそれを受け取るように構成することができる。システムおよび種々のデバイスはまた通常、オペレーティングシステム、およびクライアントアプリケーションもしくはウェブブラウザなどのアプリケーションプログラムを含む、少なくとも１つの作業メモリデバイス内に位置するいくつかのソフトウェアアプリケーション、モジュール、サービス、または他の要素を含む。代替的な実施形態が、上述したものからの多数の変形例を有してもよいことを理解するべきである。例えば、カスタマイズされたハードウェアがまた使用されてもよく、および／または、特定の要素が、ハードウェア、ソフトウェア（アプレットなどのポータブルソフトウェアを含む）、もしくは両方で実現されてもよい。さらに、ネットワーク入力／出力デバイスなどの、他のコンピューティングデバイスへの接続が採用されてもよい。
【００６４】
コードまたはコードの一部を収容するための記憶媒体およびコンピュータ可読媒体は、それらに限定されないが、記憶および／またはコンピュータ可読命令、データ構造、プログラムモジュール、もしくは他のデータなどの情報の送信のための任意の方法または技術で実現された揮発性および不揮発性、着脱可能および着脱不能媒体などの、記憶媒体および通信媒体を含む、本分野において既知および使用される任意の適切な媒体を含むことができ、それらは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または所望の情報を記憶するのに使用することができ、およびシステムデバイスによってアクセスすることができる任意の他の媒体を含む。本明細書で提供される開示および教示に基づいて、当業者は、種々の実施形態を実現する適切な他の方式および／または方法を理解するであろう。
【００６５】
したがって、明細書および図面は、限定的な意味ではなく、例示的なものとみなされるものである。しかしながら、特許請求の範囲に記載された広義の精神および範囲から逸脱することなしに、種々の変形及び変更がそれらになされてもよいことが明白である。
【００６６】
本開示の種々の実施形態を、以下の項を考慮して記載する。  
Ａ１．ネットワーク化された環境における検索可能なデータに対するインデックス構成のためのコンピュータにより実行される方法であって、
索引付けされるべきデータを受信することとであって、上記データは、複数のデータフィールドを含むことと、
上記複数のデータフィールドにおける各データフィールドに関連付けられた名前を判定することと、
上記複数のデータフィールドにおける各データフィールドに関連付けられた複数のフィールドタイプのフィールドタイプを判定することとであって、上記複数のフィールドタイプは、整数型、リテラル型、またはテキスト型の少なくとも１つを含むことと、
上記データフィールドの各々に対する１または複数の検索オプションを有効にするかを判定することであって、上記１または複数の検索オプションは、生成されることになる検索インデックスにそれぞれのデータフィールドを含めるオプション、上記それぞれのデータフィールドに対するファセット数を算出するオプション、または上記それぞれのデータフィールドに関連付けられた１もしくは複数の値を提供するオプション、の少なくとも１つを含むことと、
上記データに含まれる各データフィールドの上記フィールドタイプ、および上記１または複数の検索オプションを有効にするかを上記判定することに少なくとも部分的に基づいて、上記データに対する検索インデックス構成を生成することと、
上記データに対する上記検索インデックス構成に少なくとも部分的に基づいて、上記データに対する検索インデックスを生成することと、
を備えた、コンピュータにより実行される方法。  
Ａ２．上記データは、第１のフォーマットのデータであり、
上記データを上記第１のフォーマットから第２のフォーマットに変換することであって、上記第２のフォーマットは、上記検索インデックスと比較可能であることと、および
１または複数の記憶域割り当て上に、上記第２のフォーマットに変換された上記データを記憶することと、
をさらに備えた、Ａ１項のコンピュータにより実行される方法。  
Ａ３．上記データを上記第１のフォーマットから上記第２のフォーマットに上記変換することは、
上記第１のフォーマットを上記第２のフォーマットと比較することと、および
上記第１のフォーマットに関連付けられた少なくとも１つのデータフィールドを変更して、上記第２のフォーマットに関連付けられた少なくとも１つのデータフィールドに対応させることと、
を備えた、Ａ２項のコンピュータにより実行される方法。  
Ａ４．上記第２のフォーマットは、検索データフォーマット（ＳＤＦ）である、Ａ２項のコンピュータにより実行される方法。  
Ａ５．索引付けされるべきデータを受信することと、
上記データに関連付けられたデータフィールドのタイプを判定することであって、上記データフィールドの上記タイプは、複数のタイプのデータフィールドから判定されることと、
上記データに関連付けられた上記データフィールドに関して有効にされるべき１または複数の検索オプションを判定することと、
上記データフィールドの上記タイプ、および上記１または複数の検索オプションに少なくとも部分的に基づいて、上記データに対するインデックス構成を生成することと、および
上記データに対する上記インデックス構成に少なくとも部分的に基づいて、上記データに対する検索インデックスを生成することと、
を備えた、コンピュータにより実行される方法。  
Ａ６．上記データは第１のフォーマットのデータであり、
上記データを上記第１のフォーマットから第２のフォーマットに変換することであって、上記第２のフォーマットは、上記検索インデックスに適合していることと、および
１または複数の記憶域割り当て上に、上記第２のフォーマットに変換された上記データを記憶することと、
をさらに備えた、Ａ５項のコンピュータにより実行される方法。  
Ａ７．上記データを上記第１のフォーマットから上記第２のフォーマットに上記変換することは、
上記第１のフォーマットを上記第２のフォーマットと比較することと、および
上記第１のフォーマットに関連付けられた少なくとも１つのデータタグを変更して、上記第２のフォーマットに関連付けられた少なくとも１つのデータタグに対応させることと、
を備えた、Ａ６項のコンピュータにより実行される方法。  
Ａ８．データフィールドの上記複数のタイプは、整数型、テキスト型、リテラル型、地理的位置型、時間型、日付型、または浮動小数点数型、の少なくとも１つを含む、Ａ５項のコンピュータにより実行される方法。  
Ａ９．上記データフィールドの上記タイプを上記判定することは、
上記データフィールドに関連付けられた値が、指定された整数量閾値を上回る量の整数文字を有していることを判定することと、および
上記データフィールドの上記タイプを上記整数型であると判定することと、
を備えた、Ａ８項のコンピュータにより実行される方法。  
Ａ１０．上記データフィールドの上記タイプを上記判定することは、
指定されたテキスト量閾値を上回る量のアルファニューメリック文字を有する上記データフィールドに関連付けられた値、指定されたテキスト相違量閾値を上回る上記データフィールドに関連付けられたいくつかの相違する値、指定されたテキスト相違割合閾値を上回る相違する値の割合（％）、または指定されたテキスト長閾値を上回る値の長さ、の少なくとも１つを判定することと、および
上記データフィールドの上記タイプを上記テキスト型になるであると判定することと、
を備えた、Ａ８項のコンピュータにより実行される方法。  
Ａ１１．上記データフィールドの上記タイプを上記判定することは、
指定された下限リテラル量閾値を上回るが、指定された上限リテラル量閾値未満である量のアルファベット文字を有する上記データフィールドに関連付けられた値、指定されたリテラル相違量閾値未満である上記データフィールドに関連付けられたいくつかの相違する値、指定されたリテラル相違割合閾値未満である相違する値の割合（％）、または指定されたリテラル長閾値未満である値の長さ、の少なくとも１つを判定することと、および
上記データフィールドの上記タイプを上記リテラル型であると判定することと、
を備えた、Ａ８項のコンピュータにより実行される方法。  
Ａ１２．上記１または複数の検索オプションは、生成されることになる上記検索インデックスに上記データフィールドを含めるオプション、上記データフィールドに対するファセット数を算出するオプション、または関連する検索クエリに応答して上記データフィールドに関連付けられた値を提供するオプション、の少なくとも１つを含む、Ａ５項のコンピュータにより実行される方法。  
Ａ１３．有効にされるべき上記１または複数の検索オプションを上記判定することは、生成されることになる上記検索インデックスに上記データフィールドを含める上記オプションを有効にすると決定することを備え、上記決定は、上記データフィールドが上記検索インデックスに含まれるべきであることを示す、上記データフィールドに含まれる信号を受信すること、または上記データフィールドのタイプをリテラル型であると判定すること、の少なくとも１つに少なくとも部分的に基づいている、Ａ１２項のコンピュータにより実行される方法。  
Ａ１４．有効にされるべき上記１または複数の検索オプションを上記判定することは、上記データフィールドに対する上記ファセット数を算出する上記オプションを有効にすると決定することを備え、上記決定は、上記データフィールドに関連付けられた複数の値の分布に対する量が、指定されたファセット数上限閾値未満であると判定することに少なくとも部分的に基づいている、Ａ１２項のコンピュータにより実行される方法。  
Ａ１５．有効にされるべき上記１または複数の検索オプションを上記判定することは、上記関連する検索クエリに応答して、上記データフィールドに関連付けられた上記値を提供する上記オプションを有効にすると決定することを備え、上記決定は、上記データフィールドに関連付けられた上記値が提供されることを示す、上記データフィールドに含まれる信号を受信すること、または上記データフィールドに関連付けられた上記値の長さが、指定された返り値長閾値未満であると判定すること、の少なくとも１つに少なくとも部分的に基づいている、Ａ１２項のコンピュータにより実行される方法。  
Ａ１６．上記データ、上記インデックス構成、または１または複数の検索クエリにより検索可能となる上記インデックス、の少なくとも１つを提供すること、をさらに備えた、Ａ５項のコンピュータにより実行される方法。  
Ａ１７．１または複数のユーザにより開始される入力に少なくとも部分的に基づいて、上記インデックス構成を変更すること、をさらに備えた、Ａ５項のコンピュータにより実行される方法。  
Ａ１８．少なくとも１つの通信送受信機と、
１または複数の記憶域割り当てと、
少なくとも１つのプロセッサと、および
命令を含むメモリデバイスと
を備えたシステムであって、上記命令は、上記少なくとも１つのプロセッサによって実行されると、上記システムに、
索引付けされるべきデータを、上記少なくとも１つの通信送受信機を介して受信し、
上記データに関連付けられたデータフィールドのタイプを判定し、上記データフィールドの上記タイプは、複数のタイプのデータフィールドから判定され、
上記データに関連付けられた上記データフィールドに関して有効にされるべき１または複数の検索オプションを判定し、
上記データフィールドの上記タイプ、および上記１または複数の検索オプションに少なくとも部分的に基づいて、上記データに対するインデックス構成を生成し、および
上記データに対する上記インデックス構成に少なくとも部分的に基づいて、上記データに対する検索インデックスを生成  させる、システム。  
Ａ１９．上記データは第１のフォーマットのデータであり、および、上記命令はさらに、上記システムに、
上記データを上記第１のフォーマットから第２のフォーマットに変換し、上記第２のフォーマットは、上記検索インデックスに適合しており、および
上記１または複数の記憶域割り当て上に、上記第２のフォーマットに変換された前記データを記憶  させる、Ａ１８項のシステム。  
Ａ２０．上記命令は、上記システムに、上記第１のフォーマットを上記第２のフォーマットと比較すること、および上記第１のフォーマットに関連付けられた少なくとも１つのデータフィールドを変更して、上記第２のフォーマットに関連付けられた少なくとも１つのデータフィールドに対応させること、に基づいて、上記データを上記第１のフォーマットから上記第２のフォーマットに変換させる、Ａ１９項のシステム。  
Ａ２１．要素を識別するための命令を含む非一時的コンピュータ可読記憶媒体であって、上記命令は、コンピューティングシステムのプロセッサにより実行されると、上記コンピューティングシステムに、
索引付けされるべきデータを受信し、
上記データに関連付けられたデータフィールドのタイプを判定し、上記データフィールドの上記タイプは、複数のタイプのデータフィールドから判定され、
上記データに関連付けられた上記データフィールドに関して有効にされるべき１または複数の検索オプションを判定し、
上記データフィールドの上記タイプ、および上記１または複数の検索オプションに少なくとも部分的に基づいて、上記データに対するインデックス構成を生成し、および
上記データに対する上記インデックス構成に少なくとも部分的に基づいて、上記データに対する検索インデックスを生成、
させる、非一時的コンピュータ可読記憶媒体。  
Ａ２２．データフィールドの上記複数のタイプは、整数型、テキスト型、リテラル型、地理的位置型、時間型、日付型、または浮動小数点数型、の少なくとも１つを含む、Ａ２１項の非一時的コンピュータ可読記憶媒体。  
Ａ２３．上記命令は、上記コンピューティングシステムに、指定された下限リテラル量閾値を上回るが、指定された上限リテラル量閾値未満である量のアルファベット文字を有する上記データフィールドに関連付けられた値、指定されたリテラル相違量閾値未満である上記データフィールドに関連付けられたいくつかの相違する値、指定されたリテラル相違割合閾値未満である相違する値の割合、または指定されたリテラル長閾値未満である値の長さ、の少なくとも１つを判定することに基づいて、上記データフィールドの上記タイプを上記リテラル型であると判定させる、Ａ２２項の非一時的コンピュータ可読記憶媒体。  
Ａ２４．上記１または複数の検索オプションは、生成されることになる上記検索インデックスに上記データフィールドを含めるオプション、上記データフィールドに対するファセット数を算出するオプション、または関連する検索クエリに応答して、上記データフィールドに関連付けられた値を提供するオプション、の少なくとも１つを含む、Ａ２１項の非一時的コンピュータ可読記憶媒体。  
Ａ２５．有効にされるべき上記１または複数の検索オプションを上記判定することは、上記データフィールドに対する上記ファセット数を算出する上記オプションを有効にすると決定することを備え、上記決定は、上記データフィールドに関連付けられた少なくとも１つの値に対する量が、指定されたファセット数下限閾値を上回り、および指定されたファセット数上限閾値未満であると判定することに少なくとも部分的に基づいている、Ａ２４項の非一時的コンピュータ可読記憶媒体。  
Ｂ１．動的な検索パーティション分割のためのコンピュータにより実行される方法であって、
記憶されているデータの量、またはネットワークサービスにより提供される第１のパーティション上でデータが操作されている比率の少なくとも１つを監視することであって、前記第１のパーティションは、前記ネットワークサービスにより提供される記憶域割り当てに含まれることと、
上記量または上記比率の上記少なくとも１つが、指定された量閾値または指定された比率閾値のそれぞれを超えることを検出することと、
上記検出することに応答して、上記第１のパーティションのサイズへの増加、または上記記憶域割り当てへの少なくとも第２のパーティションの追加の、少なくとも１つを実行することであって、上記増加または上記追加の上記少なくとも１つは、上記記憶されているデータの量、または上記データが操作されている比率に少なくとも部分的に基づいていることと、
上記増加または上記追加の上記少なくとも１つの間に、上記記憶域割り当てに関連付けられたネットワークトラフィックを、上記ネットワークサービスにより提供されるキャッシュに向けることと、および
上記増加または上記追加の上記少なくとも１つを実行することが完了したとき、上記ネットワークトラフィックを、上記記憶域割り当てに向けることと、
を備えた、コンピュータにより実行される方法。  
Ｂ２．上記記憶域割り当てに対する検索インデックスを監視することと、
上記検索インデックスのサイズが、指定されたインデックスサイズ閾値を超えることを検出することと、および
上記記憶域割り当てに対する上記検索インデックスを、上記記憶域割り当てに関する上記増加または上記追加の上記少なくとも１つを反映するように更新することと、
をさらに備えた、Ｂ１項のコンピュータにより実行される方法。  
Ｂ３．上記第１のパーティションの上記サイズへの上記増加は、上記第１のパーティションの上記サイズが、最大パーティションサイズ閾値未満である場合に実行され、および、少なくとも上記第２のパーティションの上記追加は、上記第１のパーティションの上記サイズが、上記最大パーティションサイズ閾値にあるときに実行される、Ｂ１項のコンピュータにより実行される方法。  
Ｂ４．ネットワーク化された環境における記憶域割り当て上のデータ使用量を監視することであって、上記記憶域割り当ては、少なくとも１つのパーティションを含むいくつかのパーティションを有することと、
上記記憶域割り当てに含まれる上記少なくとも１つのパーティション上の上記データ使用量が、指定された閾値を超えるかを判定することと、
上記少なくとも１つのパーティションのサイズ、または上記記憶域割り当てに含まれるいくつかのパーティションの数、の少なくとも１つを変更することと、
上記記憶域割り当てに関連付けられたネットワークトラフィックを、上記サイズまたは上記いくつかの上記少なくとも１つの上記変更することに関連付けられた上記記憶域割り当ての一部から離れて向けさせることと、および
上記変更することが完了したとき、上記ネットワークトラフィックを、上記変更することに関連付けられた上記記憶域割り当ての上記一部に向けることと、
を備えた、コンピュータにより実行される方法。  
Ｂ５．上記記憶域割り当てに対する検索インデックスのサイズが、指定されたインデックスサイズ閾値を超えることを検出することと、および
上記少なくとも１つのパーティションの上記サイズ、または上記記憶域割り当てに含まれる上記いくつかのパーティションの数の上記少なくとも１つを上記変更することに基づいて、上記記憶域割り当てに対する上記検索インデックスを更新することと、
を備えた、Ｂ４項のコンピュータにより実行される方法。  
Ｂ６．上記検索インデックスを上記更新することは、上記少なくとも１つのパーティションの上記サイズ、または上記記憶域割り当てに含まれる上記いくつかのパーティションの数の上記少なくとも１つを上記変更することを反映するように、上記記憶域割り当てに対する上記検索インデックスを再構築することと、を含む、Ｂ５項のコンピュータにより実行される方法。  
Ｂ７．上記データ使用量は、上記記憶域割り当て上に記憶されているデータの量、または上記記憶域割り当て上でデータが操作されている比率、の少なくとも１つを含む、Ｂ４項のコンピュータにより実行される方法。  
Ｂ８．上記指定された閾値は、指定された量閾値または指定された比率閾値、の少なくとも１つを含み、および、記憶されているデータの前記量が、上記指定された量閾値を超えること、またはデータが操作されている上記比率が、上記指定された比率閾値を超えること、の少なくとも１つが発生するとき、上記データ使用量が上記指定された閾値を超える、Ｂ７項のコンピュータにより実行される方法。  
Ｂ９．上記指定された閾値は、履歴データ使用量に関する情報に少なくとも部分的に基づいて算出される、Ｂ８項のコンピュータにより実行される方法。  
Ｂ１０．上記記憶域割り当てに向けられるネットワークトラフィックの量が、指定されたトラフィック閾値を上回ると判定することと、および
上記ネットワークトラフィックの量に基づいて、上記記憶域割り当てを変更することと、
をさらに備えた、Ｂ４項のコンピュータにより実行される方法。  
Ｂ１１．上記ネットワークトラフィックは、上記記憶域割り当て上に記憶されたデータを検索するための検索クエリトラフィックを含む、Ｂ１０項のコンピュータにより実行される方法。  
Ｂ１２．上記ネットワークトラフィックの量に基づいて、上記記憶域割り当てを変更することは、上記少なくとも１つのパーティションの上記サイズを変更すること、上記いくつかのパーティションを変更すること、または上記いくつかのパーティションに含まれる少なくとも１つのパーティションを、異なる仕様を有する少なくとも１つのパーティションに置き換えること、の少なくとも１つを含む、Ｂ１０項のコンピュータにより実行される方法。  
Ｂ１３．上記異なる仕様は、異なるＣＰＵパワー、異なるＲＡＭの容量、異なるハードディスクスペースの容量、または異なる帯域幅の容量、の少なくとも１つを含む、Ｂ１２項のコンピュータにより実行される方法。  
Ｂ１４．上記少なくとも１つのパーティションの上記サイズ、または上記いくつかのパーティションの数の上記少なくとも１つを変更することは、上記少なくとも１つのパーティションの上記サイズ、または前記いくつかのパーティションの数上記少なくとも１つを増大させることを含み、上記少なくとも１つのパーティションの上記サイズを上記増大させることは、上記少なくとも１つのパーティションの上記サイズが最大パーティションサイズ閾値未満である場合に実行され、および、上記いくつかの上記パーティションの数を上記増大させることは、上記少なくとも１つのパーティションの上記サイズが最大パーティションサイズ閾値にある場合に実行される、Ｂ４項のコンピュータにより実行される方法。  
Ｂ１５．上記少なくとも１つのパーティションの上記サイズ、または上記いくつかのパーティションの数の上記少なくとも１つを上記変更することは、上記少なくとも１つのパーティションの上記サイズ、または上記いくつかのパーティションの数の少なくとも１つを減少させることを含み、上記いくつかの上記パーティションの数を上記減少させることは、上記パーティションの数が１超である場合に実行され、および上記少なくとも１つのパーティションの上記サイズを上記減少させることは、上記パーティションの数が１である場合に実行される、Ｂ４項のコンピュータにより実行される方法。  
Ｂ１６．上記記憶域割り当てのＣＰＵ使用率を判定することをさらに備え、上記サイズまたは上記数の上記少なくとも１つを上記変更することは、上記記憶域割り当て上の上記データ使用量、または上記判定された、上記記憶域割り当てのＣＰＵ使用率、の少なくとも１つに基づいている、Ｂ４項のコンピュータにより実行される方法。  
Ｂ１７．上記データ使用量に関連付けられた構成、またはユーザにより開始される入力、の少なくとも１つに基づいて、上記記憶域割り当ての構成を変更すること、をさらに備えたＢ４項のコンピュータにより実行される方法。  
Ｂ１８．上記記憶域割り当てに利用可能なリソースに基づいて、上記サイズまたは上記数の上記少なくとも１つを上記変更することをいつ実行するかを判定すること、をさらに備えた、Ｂ４項のコンピュータにより実行される方法。  
Ｂ１９．少なくとも１つのパーティションを含むいくつかのパーティションを有する記憶域割り当てと、
少なくとも１つのプロセッサと、および
命令を含むメモリデバイスと
を備えたシステムであって、上記命令は、上記少なくとも１つのプロセッサにより実行されると、上記システムに、
上記記憶域割り当て上のデータ使用量を監視し、
上記記憶域割り当てに含まれる上記少なくとも１つのパーティション上の上記データ使用量が、指定された閾値を超えるかを判定し、
上記少なくとも１つのパーティションのサイズ、または上記記憶域割り当てに含まれる上記いくつかのパーティションの数を変更し、
上記記憶域割り当てに関連付けられたネットワークトラフィックを、上記サイズまたは上記数の上記少なくとも１つの上記変更することに関連付けられた上記記憶域割り当ての一部から離れて向けさせ、および
上記変更することが完了したとき、上記ネットワークトラフィックを、上記変更することに関連付けられた上記記憶域割り当ての上記一部に向ける、システム。  
Ｂ２０．上記サイズまたは上記数の上記少なくとも１つを上記変更する間に、上記記憶域割り当ての上記一部から離れて向けられている上記ネットワークトラフィック、および上記サイズまたは上記数上記少なくとも１つを変更することが完了したとき、上記記憶域割り当ての上記一部に向けられている上記ネットワークトラフィックを促進するように構成された少なくとも１つの負荷分散装置、をさらに備えた、Ｂ１９項のシステム。  
Ｂ２１．上記少なくとも１つの負荷分散装置は、上記記憶域割り当てに含まれる上記いくつかのパーティションわたって上記ネットワークトラフィックを方向づけるように構成されている、Ｂ２０項のシステム。  
Ｂ２２．上記記憶域割り当て上の上記データ使用量を上記監視すること、および上記記憶域割り当てに含まれる上記少なくとも１つのパーティション上の上記データ使用量が、指定された閾値を超えるかを判定することを促進するように構成された少なくとも１つの監視モジュール、をさらに備えた、Ｂ１９項のシステム。  
Ｂ２３．要素を識別するための命令を含む、非一時的コンピュータ可読記憶媒体であって、上記命令は、コンピューティングシステムのプロセッサにより実行されると、上記コンピューティングシステムに、
ネットワーク化された環境における記憶域割り当て上のデータ使用量を監視し、上記記憶域割り当ては、少なくとも１つのパーティションを含むいくつかのパーティションを有し、
上記記憶域割り当てに含まれる上記少なくとも１つのパーティション上の上記データ使用量が、指定された閾値を超えるかを判定し、
上記少なくとも１つのパーティションのサイズ、または上記記憶域割り当てに含まれる上記いくつかのパーティションの数の少なくとも１つを変更し、
上記記憶域割り当てに関連付けられたネットワークトラフィックを、上記サイズまたは上記数の上記少なくとも１つの上記変更することに関連付けられた上記記憶域割り当ての一部から離れて向けさせ、および
上記変更することが完了したとき、上記ネットワークトラフィックを、上記変更することに関連付けられた上記記憶域割り当ての上記一部に向ける、非一時的コンピュータ可読記憶媒体。  
Ｂ２４．上記命令はさらに、上記コンピューティングシステムに、上記記憶域割り当てに対する検索インデックスのサイズが、指定されたインデックスのサイズ閾値を超えることを検出し、上記少なくとも１つのパーティションの上記サイズ、または上記記憶域割り当てに含まれる上記いくつかのパーティションの上記少なくとも１つを上記変更することに基づいて、上記記憶域割り当てに対する上記検索インデックスを更新させる、Ｂ２３項の非一時的コンピュータ可読記憶媒体。  
Ｂ２５．上記検索インデックスを上記更新することは、上記少なくとも１つのパーティションの上記サイズ、または上記記憶域割り当てに含まれる上記いくつかのパーティションの数の上記少なくとも１つの上記変更することを反映するように、上記記憶域割り当てに対する上記検索インデックスを再構築すること、を含む、Ｂ２４項の非一時的コンピュータ可読記憶媒体。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］ネットワーク化された環境における記憶域割り当てに関するデータ使用量を監視することであって、前記記憶域割り当ては、少なくとも１つのパーティションを含むいくつかのパーティションを有することと、
前記記憶域割り当てに含まれる前記少なくとも１つのパーティション上の前記データ使用量が、指定された閾値を超えるかを判定することと、
前記少なくとも１つのパーティションのサイズ、または前記記憶域割り当てに含まれる前記パーティションの数の少なくとも１つを変更することと、
前記記憶域割り当てに関連付けられたネットワークトラフィックを、前記サイズまたは数の少なくとも１つを変更することに関連付けられた前記記憶域割り当ての一部から離れて向けさせることと、
前記変更することが完了したとき、前記ネットワークトラフィックを、前記変更することに関連付けられた前記記憶域割り当ての前記一部に向けることと
を備えた、コンピュータにより実行される方法。
［２］前記記憶域割り当てに対する検索インデックスのサイズが、指定されたインデックスサイズ閾値を超えることを検出することと、および
前記少なくとも１つのパーティションの前記サイズ、または前記記憶域割り当てに含まれるいくつかのパーティションの数の少なくとも１つを変更することに基づいて、前記記憶域割り当てに対する前記検索インデックスを更新することと
を備えた、［１］に記載のコンピュータにより実行される方法。
［３］前記検索インデックスを前記更新することが、前記少なくとも１つのパーティションの前記サイズ、または前記記憶域割り当てに含まれる前記いくつかのパーティション数の少なくとも１つを前記変更することを反映するように、前記記憶域割り当てに対する前記検索インデックスを再構築することを含む、［２］に記載のコンピュータにより実行される方法。
［４］前記データ使用量が、前記記憶域割り当て上に記憶されているデータの量、または前記記憶域割り当て上でデータが操作されている比率の少なくとも１つを含む、［１］に記載のコンピュータにより実行される方法。
［５］前記指定された閾値が、指定された量閾値または指定された比率閾値の少なくとも１つを含み、前記記憶されているデータの量が、前記指定された量閾値を超えること、または前記データが操作されている比率が、前記指定された比率閾値を超えることの少なくとも１つが発生するとき、前記データ使用量が前記指定された閾値を超える、［４］に記載のコンピュータにより実行される方法。
［６］前記指定された閾値は、履歴データ使用量に関する情報に少なくとも部分的に基づいて算出される、［５］に記載のコンピュータにより実行される方法。
［７］前記記憶域割り当てに向けられるネットワークトラフィックの量が、指定されたトラフィック閾値を上回ると判定することと、  前記ネットワークトラフィックの量に基づいて、前記記憶域割り当てを変更することと
をさらに備えた、［１］に記載のコンピュータにより実行される方法。
［８］前記ネットワークトラフィックが、前記記憶域割り当て上に記憶されたデータを検索するための検索クエリトラフィックを含む、［７］に記載のコンピュータにより実行される方法。
［９］前記ネットワークトラフィックの量に基づいて、前記記憶域割り当てを変更することが、前記少なくとも１つのパーティションの前記サイズを変更すること、前記いくつかのパーティションの数を変更すること、または前記いくつかのパーティションに含まれる少なくとも１つのパーティションを、異なる仕様を有する少なくとも１つのパーティションに置き換えることのうちの少なくとも１つを含む、［７］に記載のコンピュータにより実行される方法。
［１０］前記異なる仕様が、異なるＣＰＵパワー、異なるＲＡＭの容量、異なるハードディスクスペースの容量、または異なる帯域幅の容量のうちの少なくとも１つを含む、［９］に記載のコンピュータにより実行される方法。
［１１］前記少なくとも１つのパーティションのサイズ、または前記いくつかのパーティションの数の少なくとも１つを変更することが、前記少なくとも１つのパーティションの前記サイズ、または前記いくつかのパーティションの数の少なくとも１つを増大させることを含み、前記少なくとも１つのパーティションのサイズを増大させることが、前記少なくとも１つのパーティションのサイズが最大パーティションサイズ閾値未満である場合に実行され、かつ、前記いくつかのパーティションの数を前記増大させることは、前記少なくとも１つのパーティションのサイズが最大パーティションサイズ閾値にある場合に実行される、［１］に記載のコンピュータにより実行される方法。
［１２］前記少なくとも１つのパーティションの前記サイズ、または前記いくつかのパーティションの数の少なくとも１つを変更することが、前記少なくとも１つのパーティションのサイズ、または前記いくつかのパーティションの数の少なくとも１つを減少させることを含み、前記いくつかのパーティションを減少させることが、前記いくつかのパーティションの数が１超である場合に実行され、かつ前記少なくとも１つのパーティションのサイズを減少させることが、前記いくつかのパーティションの数が１である場合に実行される、［１］に記載のコンピュータにより実行される方法。
［１３］前記記憶域割り当てのＣＰＵ使用率を判定することをさらに備え、前記サイズまたは前記数のうち少なくとも１つを変更することが、前記記憶域割り当てに関する前記データ使用量、または前記判定された、前記記憶域割り当てのＣＰＵ使用率の少なくとも１つに基づく、［１］に記載のコンピュータにより実行される方法。
［１４］前記データ使用量に関連付けられた構成、またはユーザにより開始される入力の少なくとも１つに基づいて、前記記憶域割り当ての構成を変更することをさらに備えた、［１］に記載のコンピュータにより実行される方法。
［１５］前記記憶域割り当てに利用可能なリソースに基づいて、前記サイズまたは前記数少なくとも１つを変更することをいつ実行するかを判定することをさらに備えた、［１］に記載のコンピュータにより実行される方法。
【図１】
0006339155.tif 000002
【図２】
0006339155.tif 000003
【図３】
0006339155.tif 000004
【図４】
0006339155.tif 000005
【図５】
0006339155.tif 000006
【図６】
0006339155.tif 000007
【図７】
0006339155.tif 000008
【図８】
0006339155.tif 000009