(57)【特許請求の範囲】
【請求項１】
プロセッサにより実行される、検索結果を提供するための方法であって、
検索クエリを受信し、
前記検索クエリに対応する検索ラベルに少なくとも部分的に基づいて、前記検索クエリに対して実行されるべき複数の前処理機能を決定し、前記検索ラベルは前記複数の前処理機能に対するマッピングおよび前記複数の前処理機能の実行順序に対するマッピングに関連付けられており、前記実行順序は前記複数の前処理機能の少なくともいくつかが実行されるべき順序を記述し、
複数の前処理済み検索クエリを得るために、前記実行順序に少なくとも一部基づいて、前記検索クエリに対して前記複数の前処理機能を実行し、
前記複数の前処理済み検索クエリに関係付けられている精度レベルに少なくとも部分的に基づいて、検索プランを生成し、前記検索プランの生成は、前記複数の前処理済み検索クエリの中から前記検索プランに含めるために精度要件を満たす前処理済み検索クエリおよび前記検索プランから排除するために前記精度要件を満たさない前処理済み検索クエリを選択することを含み、前記精度要件は過去データに基づいて決定され、
前記検索結果を得るために、前記検索プランを前記検索エンジンに入力すること、
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記検索プランの生成は、更に、前記精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かを決定することを含む、方法。
【請求項３】
請求項２に記載の方法であって、
前記第１の精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かの決定は、２つ又は３つ以上の前処理済み検索クエリが前記精度要件を満たすか否かを決定することを含む、方法。
【請求項４】
請求項２に記載の方法であって、
コンフリクトがある場合に、最も高い精度レベルを有する前処理済み検索クエリを選択する方法。
【請求項５】
請求項２に記載の方法であって、
コンフリクトがある場合に、前記検索プランの生成は、更に、前記複数の前処理済み検索クエリが信頼度レベル要件を満たすと決定することを含む、方法。
【請求項６】
請求項１に記載の方法であって、
前記複数の前処理機能は、統一されたインターフェースを有する、方法。
【請求項７】
検索結果を提供するためのシステムであって、
１つ又は２つ以上のプロセッサと、
前記１つ又は２つ以上のプロセッサに接続され、前記１つ又は２つ以上のプロセッサに命令を提供するように構成されている１つ又は２つ以上のメモリと、
を備え、
前記１つ又は２つ以上のプロセッサは、
検索クエリを受信し、
前記検索クエリに対応する検索ラベルに少なくとも部分的に基づいて、前記検索クエリに対して実行されるべき複数の前処理機能を決定し、前記検索ラベルは前記複数の前処理機能に対するマッピングおよび前記複数の前処理機能の実行順序に対するマッピングに関連付けられており、前記実行順序は前記複数の前処理機能の少なくともいくつかが実行されるべき順序を記述し、
複数の前処理済み検索クエリを得るために、前記実行順序に基づいて、前記検索クエリに対して前記複数の前処理機能を実行し、
前記複数の前処理済み検索クエリに関係付けられている精度レベルに少なくとも部分的に基づいて、検索プランを生成し、前記検索プランの生成は、前記複数の前処理済み検索クエリの中から前記検索プランに含めるために精度要件を満たす前処理済み検索クエリおよび前記検索プランから排除するために前記精度要件を満たさない前処理済み検索クエリを選択することを含み、前記精度要件は過去データに基づいて決定され、
前記検索結果を得るために、前記検索プランを前記検索エンジンに入力するように構成されている、システム。
【請求項８】
請求項７に記載のシステムであって、
前記検索プランの生成は、更に、前記精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かを決定することを含む、システム。
【請求項９】
請求項８に記載のシステムであって、
前記第１の精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かの決定は、２つ又は３つ以上の前処理済み検索クエリが前記精度要件を満たすか否かを決定することを含む、システム。
【請求項１０】
請求項８に記載のシステムであって、
コンフリクトがある場合に、最も高い精度レベルを有する前処理済み検索クエリを選択するシステム。
【請求項１１】
請求項８に記載のシステムであって、
コンフリクトがある場合に、前記検索プランの生成は、更に、前記複数の前処理済み検索クエリが信頼度レベル要件を満たすと決定することを含む、システム。
【請求項１２】
請求項８に記載のシステムであって、
前記複数の前処理機能は、統一されたインターフェースを有する、システム。
【請求項１３】
検索結果を提供するためのコンピュータプログラムであって、
検索クエリを受信するための機能と、
前記検索クエリに対応する検索ラベルに少なくとも部分的に基づいて、前記検索クエリに対して実行されるべき複数の前処理機能を決定するための機能と、前記検索ラベルは前記複数の前処理機能に対するマッピングおよび前記複数の前処理機能の実行順序に対するマッピングに関連付けられており、前記実行順序は前記複数の前処理機能の少なくともいくつかが実行されるべき順序を記述し、
複数の前処理済み検索クエリを得るために、前記実行順序に基づいて、前記検索クエリに対して前記複数の前処理機能を実行するための機能と、
前記複数の前処理済み検索クエリに関係付けられている精度レベルに少なくとも部分的に基づいて、検索プランを生成するための機能と、前記検索プランの生成は、前記複数の前処理済み検索クエリの中から前記検索プランに含めるために精度要件を満たす前処理済み検索クエリおよび前記検索プランから排除するために前記精度要件を満たさない前処理済み検索クエリを選択することを含み、前記精度要件は過去データに基づいて決定され、
前記検索結果を得るために、前記検索プランを前記検索エンジンに入力するための機能と、
をコンピュータによって実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、あらゆる目的のために参照によって本明細書に組み込まれる、発明の名称を「METHOD AND DEVICE FOR SEARCH（検索のための方法及び装置）」とする、２０１０年２月１日付けで出願された中国特許出願第２０１０１０１０３５４０．４号に基づく優先権を主張する。
【０００２】
本出願は、コンピューティング技術の分野に関し、特に、ネットワークベースの検索に関する。
【背景技術】
【０００３】
検索技術は、ネットワークユーザがインターネット上で迅速に情報を見つけるための便利な手段を提供する。従来の検索エンジンには、３つの主要なカテゴリ、すなわち、ロボット検索エンジン（Ｒｏｂｏｔ）、カタログスタイル検索エンジン（Ｄｉｒｅｃｔｏｒｙ又はＣａｔａｌｏｇ）、及びエレメント検索エンジン（Ｍｅｔａ）がある。従来の検索技術は、主に、キーワードの一致を用いて検索を行う。ユーザにとって、検索したい内容を単純にキーワード又はキーワード文字列を使用して忠実に表現することは、多くの場合、困難である。自然言語は、時間、地域、又は分野によって変化し、同じ内容でも、様々な形態の言語表現を使用して表現することができるので、同じ概念の検索に、ユーザによって様々なキーワード照会が使用され、その結果、無関係の情報が大量にユーザに返されることになる。
【０００４】
高度な検索エンジンには、知識ベースに基づく意味解析技術を用いるものがあり、これらは、ワード分割技術、フレーズ識別、同義語処理、及びその他の手段を利用し、ユーザ入力された検索パラメータを対象とする解析を行って、様々な検索スキーム（検索プランとも呼ばれる）を生成する。これらのなかで、ユーザ入力された検索パラメータは、翻訳ワード又は同音異義語などの、特殊な特徴を有する用語集であるかもしれない。ユーザが、例えば「Ｂｅｉｊｉｎｇ」（北京）を誤って「Ｂｅｉｋｉｎｇ」と入力するなどのように、正しくないスペルで検索用語を入力すると、システムプラットフォームは、誤りワード解析を実行し、「Ｂｅｉｊｉｎｇ」（北京）を利用して検索を行うプログラムを自動的に推奨する。更に、ユーザが、「Ｉ  ｗａｎｔ  ｔｏ  ｐｕｒｃｈａｓｅ  ａ  ｃｅｌｌ  ｐｈｏｎｅ」（私はセルフォンを購入したい）などの自然言語を入力したときは、実際に検索したいのは、「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）であるので、検索エンジンは、単純に、「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）を検索キーワードとして維持することができる。上記２種類のプログラムは、検索エンジンのなかに、それぞれスペルチェックモジュール及び書き替えモジュールとして個々に実装することができる。これらのうち、スペルチェックモジュールは、誤り入力ワードを正しい入力ワードに変更するように構成され、書き替えモジュールは、入力ワードを分割し、キーワードを見つけるなどして、より検索用途に適したものに検索用語を書き直すように構成される。
【０００５】
既存の技術では、検索プランを生成するために、一般に、動的ローディングモジュールが用いられる。具体的には、Ａｐａｃｈｅサーバなどの既存のオープンソースサービスプラットフォームでは、動的拡張モジュールを作成するために、Ｃコードを記述することができる。Ａｐａｃｈｅサーバは、ＨＴＴＰ（ハイパーテキスト転送プロトコル）要求に応答するウェブサーバであり、最も基本的なウェブサービスに応答するために使用される。Ａｐａｃｈｅサーバの中に動的ローディングモジュールが存在するときは、Ａｐａｃｈｅサーバのオペレーティングメカニズムが完全に理解され、又はＡｐａｃｈｅインターフェースの再パッケージングを行うようにＰＨＰ（ハイパーテキストプリプロセッサ）モジュールを構成された状態で、ＰＨＰが記述されていなければならない。ＰＨＰモジュールは、サービスを提供するために、コンパイル後にＡｐａｃｈｅサーバに動的にロードされる。上記の動的ローディングモジュールは、共通責任連鎖パターン設計を採用しており、ひとたびモジュールのタスクが完了すると、直ちにアプリケーションからアンロードされる。
【０００６】
この技術は、既存のサーバプラットフォームの能力を拡張するのに有用である一方で、幾つかの問題も残っている。Ａｐａｃｈｅサーバは、それ自体の設計が複雑であるので、Ａｐａｃｈｅ動的モジュールの実装は、直接、コストの増加及び維持管理の難しさの増大につながる。更に、モジュール間で作業を調整するのは容易でない、すなわち、モジュールの書き込みに対して統一制御を行使するのは容易でない。新しいモジュールが追加されたとき、これまでに書き込まれたモジュールは、通常、コンフリクトを解決するために更新されなければならない。モジュールの数が多いときは、更新のコストがかなりに達する。
【図面の簡単な説明】
【０００７】
発明の様々な実施形態が、以下の詳細な説明及び添付の図面で開示される。
【０００８】
【図１】検索エンジンの一実施形態を示すブロック図である。
【０００９】
【図２】複数のモジュール上で検索を実行するためのプロセスの一実施形態を示すフローチャートである。
【００１０】
【図３】検索結果を提供するためのプロセスの別の一実施形態を示すフローチャートである。
【００１１】
【図４】前処理サーバの一実施形態を示すブロック図である。
【００１２】
【図５】前処理サーバの別の一実施形態を示すブロック図である。
【発明を実施するための形態】
【００１３】
本発明は、プロセス、装置、システム、合成物、コンピュータ可読記憶媒体に実装されたコンピュータプログラム製品、並びに／又は結合先のメモリに記憶された命令及び／若しくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサなどのプロセッサを含む、数々の形態で実装することができる。本明細書では、これらの実装形態、又は本発明がとりえるその他のあらゆる形態が、技術と称される。総じて、開示されたプロセスのステップの順序は、本発明の範囲内で可変である。別途明記されない限り、タスクを実行するように構成されるとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実行するように一時的に構成される汎用コンポーネントとして、又はタスクを実行するように製造された特殊コンポーネントとして実装されてよい。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された１つ又は２つ以上の装置、回路、及び／又は処理コアを言う。
【００１４】
本発明の原理を例示する添付の図面とともに、以下で、発明の１つ又は２つ以上の実施形態の詳細な説明が提供される。発明は、このような実施形態との絡みで説明されているが、いかなる実施形態にも限定されない。発明の範囲は、特許請求の範囲によってのみ限定され、発明は、数々の代替形態、変更形態、及び均等物を内包している。以下の説明では、発明の完全な理解を可能にするために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されており、発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施することができる。明瞭さを期するために、発明に関係した技術分野で知られている技術構成は、発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【００１５】
検索クエリ処理が開示される。一部の実施形態では、受信された検索クエリに対応する検索ラベルに基づいて、複数の前処理機能が決定される。前処理機能は、複数の前処理結果を得るために、検索クエリに対して実行される。選択された前処理結果を含む検索プランが生成される。一部の実施形態では、検索プランの生成は、複数の前処理結果に関係付けられた精度レベルに少なくとも部分的に基づく。一部の実施形態では、検索プランの生成は、前処理結果に関係付けられた信頼度レベルにも少なくとも部分的に基づく。検索プランは、検索エンジンに適用され、該エンジンは、検索を行って検索結果を生成する。
【００１６】
図１は、検索システムの一実施形態を示すブロック図である。この例では、ユーザは、クライアント端末１０２に検索クエリを入力し、クライアント端末１０２は、検索クエリをインターネットなどのネットワークを通じて検索システムに送信する。一部の実施形態では、検索システムは、電子商取引プラットフォームの一部であり、電子商取引プラットフォーム上で入手可能な製品に対して検索を実行するように構成される。検索システムは、前処理サーバ１０４を含み、前処理サーバ１０４は、検索用語に対して様々な前処理機能を実行するための数々の前処理モジュールを含む。前処理モジュールの例には、入力のスペルを正すためのスペルチェッカ１０６、冗長な検索クエリからキーワード又はフレーズを抽出するためのキーワードエクストラクタ（キーワード抽出器）１０８、及び検索クエリに関係付けられた同義語を見つけるための同義語サーチャ（同義語検索器）１１０がある。その他の実施形態では、その他の前処理機能を実行する、異なる／追加の前処理モジュールが含まれてよい。前処理モジュールは、複数の前処理検索クエリを生成するために、受信された検索クエリに対して前処理を実行する。検索プランジェネレータ（検索プラン生成器）１１２は、検索用語及びそれらに関係付けられた精度レベル評価基準などの過去の検索データに少なくとも部分的に基づいて、検索プランを生成する。検索プランジェネレータの詳細は、以下で更に詳しく説明される。検索プランは、ネットワークを通じた検索エンジン１１４への入力を得るために実行される。入力は、検索結果を得るために、検索エンジンに送信される。
【００１７】
上述された機能モジュール（スペルチェッカ、キーワードエクストラクタ、同義語サーチャ、及び検索プランジェネレータなど）は、１つ又は２つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、プログラマブルロジックデバイス及び／若しくは所定の機能を実行するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、モジュールは、本発明の実施形態で説明されている方法をコンピュータ装置（パソコン、サーバ、ネットワーク機器など）に実行させるための幾つかの命令を含み且つ不揮発性の記憶媒体（光ディスク、フラッシュ記憶装置、モバイルハードディスクなど）に記憶させることができるソフトウェア製品の形で具現化することができる。モジュールは、１つの装置に実装されてよい、又は複数の装置に分散されてよい。モジュールの機能は、互いに合体されてよい、又は更に分割されて複数のサブモジュールを構成してよい。一部の実施形態では、サーバは、Ｌｉｎｕｘ（登録商標）ベースのプラットフォームであり、モジュールは、Ｃ＋＋で実装される。
【００１８】
前処理サーバ１０４及び検索エンジン１１２は、この例では別々の機能を持つ別々の装置として示されているが、実施形態によっては、合体されて１つの装置を構成してよい、又は更に分割されて追加の装置を構成してよい。
【００１９】
図２は、複数のモジュール上で検索を実行するためのプロセスの一実施形態を示すフローチャートである。プロセス２００は、図１の１００などのシステム上で実行することができる。
【００２０】
ステップ２０２では、ユーザによって入力されクライアント端末を通じて送信された検索クエリが受信される。
【００２１】
ステップ２０４では、検索クエリに対応する検索ラベルに少なくとも部分的に基づいて、検索クエリに対して実行されるべき複数の前処理機能が決定される。検索ラベルは、検索クエリに応答して返信されるべき検索結果のカテゴリを指定する。例えば、「製品」、「情報」、「技術」、及び「全」は、特定のカテゴリの検索結果を識別するために使用される検索ラベルの一部である。検索ラベルは、検索システムによって事前設定されてよい、ユーザによって選択されてよい、又はユーザ入力及び／若しくは要件に基づいてクライアント端末によって選択されてよい。ユーザ又はクライアント端末が検索ラベルを提供しない場合は、システムは、「全」検索ラベルのような、事前設定されたデフォルトの検索ラベルを利用することができる。
【００２２】
一部の実施形態では、検索システムは、様々な検索ラベルと、それらに対応する前処理機能と、オプションで対応する前処理機能が実行されるべき順序とのマッピングを維持する。一例として、図１に示されるシステムを使用すると、「情報」検索ラベルは、スペルチェッカ前処理機能と、その後に続く同義語前処理機能とに対応してよく、「製品」検索ラベルは、スペルチェッカ機能と、その後に続くキーワード処理機能とに対応してよい。場合によっては、全ての実行モジュールについてのデフォルトの前処理機能実行順序が設定される。ユーザ要求又はシステム設定に基づいて、検索処理機能に対応する１つ又は２つ以上の検索ラベルが選択される。検索システムは、対応する前処理機能、及びオプションで受信された検索パラメータを前処理するための実行順序を決定するために、検索ラベルを使用する。
【００２３】
ステップ２０６では、前処理機能モジュールは、検索クエリを前処理する。例えば、スペルチェッカが、検索入力のスペルを正す（例えば「Ｂｅｉｋｉｎｇ」のスペルを「Ｂｅｉｊｉｎｇ」（北京）に変更する）、キーワードエクストラクタが、冗長な検索クエリからキーワードを抽出する（例えば「Ｉ  ｗａｎｔ  ｔｏ  ｆｉｎｄ  ａ  ｈｏｔｅｌ  ｉｎ  Ｂｅｉｋｉｎｇ」を「ｈｏｔｅｌ  ｉｎ  Ｂｅｉｊｉｎｇ」（北京のホテル）に変更する）、同義語サーチャが、検索用語でよく使用される同義語を見つける（例えば「ｍｏｂｉｌｅ」（モバイル）を「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）に変更する）などする。
【００２４】
ステップ２０８では、前処理済みクエリの精度レベル、及びオプションで前処理済みクエリの信頼度レベルに少なくとも部分的に基づいて、検索プランが生成される。検索プランは、複数の前処理済みクエリから選択された前処理済み検索クエリを含む。
【００２５】
一部の実施形態では、検索プラットフォームは、クエリからの結果に応答する様々なユーザ行為を追跡する。例えば、検索プラットフォームは、過去データのデータベースを形成するために、返信された結果の数と、特定のクエリ結果がもたらすユーザ選択の率（クリックスルー率）及び／又は購入決定の率（購入率）とを追跡することができる。前処理済みクエリの精度レベルは、過去データに基づいて決定される。例えば、特定の前処理済みクエリ用語について、その過去のクリックスルー率及び／又は購入率に基づくスコアを計算し、その用語に対応する精度レベルとして記憶させることができる。したがって、クエリ用語は、精度スコアなどの精度レベルを関係付けられており、これは、データベースのなかでクエリ用語を探索することによって得ることができる。
【００２６】
一部の実施形態では、検索プランの生成は、前処理済み検索用語の精度のレベルが過去データに基づく最低スコアなどの精度要件を満たすかどうかを決定することを含む。精度要件を満たさない前処理済み検索用語は、検索プランから排除される。
【００２７】
一部の実施形態では、更に、最低精度要件を満たす前処理済みクエリの間でコンフリクトがあるか否かが決定される。コンフリクトは、２つ又は３つ以上の前処理済みクエリが最低精度要件を満たすときに検出される。コンフリクトがあるならば、最大の精度レベルを持つ前処理済みクエリが選択される。
【００２８】
前処理済みクエリについての過去データがないならば、これらの前処理済みクエリに関係付けられた信頼度レベルが比較される。信頼度レベルは、前処理済みクエリがどれほどの確実性でユーザの意図を正確に反映しているかを測るものである。例えば、クエリ「Ｉ  ｗａｎｔ  ｔｏ  ｂｕｙ  ａ  ｍｏｂｉｌｅ  ｐｈｏｎｅ」（私はモバイルフォンを買いたい）が入力されたときに、キーワードエクストラクタは、前処理済みクエリ「ｍｏｂｉｌｅ  ｐｈｏｎｅ」（モバイルフォン）、及びユーザが検索している項目がモバイルフォンである可能性が９０％であることを示す信頼度レベル９０％を生成する。別の例として、元のクエリが「Ｉ  ｗａｎｔ  ｔｏ  ｂｕｙ  ａ  ｍｏｂｉｌ  ｐｈｏｎｅ」であるならば、スペルチェッカは、９９％の信頼度で、前処理済みクエリ「Ｉ  ｗａｎｔ  ｔｏ  ｂｕｙ  ａ  ｍｏｂｉｌｅ  ｐｈｏｎｅ」（私はモバイルフォンを買いたい）を生成することができる。
【００２９】
前処理モジュールは、結果を容易に比較することができるように、同じインターフェース（プログラミングインターフェースなど）を有する。例えば、システムのなかの全ての前処理モジュールの出力を、クエリと信頼度レベルとを含むようにセットすることができる。一律のインターフェースは、検索プラットフォームに柔軟にモジュールが追加されることを可能にする。
【００３０】
一部の実施形態では、最適な検索結果を得られる可能性が高い前処理済みクエリを選択するために、前処理済みクエリを第２の精度要件などの更なる要件と比較することができる。
【００３１】
ステップ２１０では、検索プランは、ユーザ端末に送信される検索結果を得るために、検索エンジンに入力される。
【００３２】
一部の実施形態では、前処理結果は、クライアント端末による使用のために、クライアント端末に送信される。例えば、前処理モジュールが禁止ワードをフィルタリング除去するときは、その前処理結果は、更なる検索を実行することなくクライアント端末に直接返すことができる。
【００３３】
クエリ用語を前処理するために複数の前処理モジュールを使用し、最も高い精度及び／又は信頼度レベルを有する前処理済みクエリを選択することによって、検索システムは、ユーザの意図をより適切に判断し、より適した検索結果を見つけやすくなる。前処理機能を前処理サーバに解放することによって、検索エンジンのリソースが節約され、検索エンジンの安定性がより保たれる。
【００３４】
図３は、検索結果を提供するためのプロセスの別の一実施形態を示すフローチャートである。
【００３５】
ステップ３０１では、前処理サーバは、クライアント端末を通じてユーザによって入力された検索クエリを受信し、クライアント端末によって事前設定された又は選択された検索ラベルに基づいて、検索クエリを前処理するための複数の前処理機能及びそれらの実行順序を決定する。例えば、ユーザは、検索クエリとして「Ｉ  ｗａｎｔ  ｔｏ  ｂｕｙ  ａ  ｍｏｂｉｌ  ｐｈｏｎｅ」を入力するかもしれない。
【００３６】
ステップ３０２では、前処理サーバは、実行順序にしたがって前処理機能を順番に実行し、前処理済みクエリを得る。例えば、スペルチェッカ、その後に続くキーワードエクストラクタ、及びその後に続く同義語サーチャによって返される前処理済みクエリは、それぞれ、「Ｉ  ｗａｎｔ  ｔｏ  ｂｕｙ  ａ  ｍｏｂｉｌｅ  ｐｈｏｎｅ」（私はモバイルフォンを買いたい）、「ｍｏｂｉｌｅ  ｐｈｏｎｅ」（モバイルフォン）、及び「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）である。
【００３７】
ステップ３０３では、前処理サーバは、精度レベル要件を満たす精度レベルを関係付けられた前処理済みクエリを特定する。
【００３８】
ステップ３０４では、前処理サーバは、第１の精度要件を満たす前処理済みクエリの間でコンフリクトがあるか否かを決定する。例えば、「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）が、精度レベル要件を満たす唯一の前処理済みクエリであるならば、コンフリクトは存在しない。「ｍｏｂｉｌｅ  ｐｈｏｎｅ」（モバイルフォン）及び「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）の両方が、精度レベル要件を満たすならば、コンフリクトがある。
【００３９】
第１の精度要件を満たす前処理済みクエリの間でコンフリクトがあるならば、ステップ３０５が実行され、そうでなければ、ステップ３０８が実行される。
【００４０】
ステップ３０５では、前処理サーバは、最も高い精度レベルを有する（１つ又は２つ以上の）前処理済みクエリを選択する。例えば、「ｍｏｂｉｌｅ  ｐｈｏｎｅ」（モバイルフォン）及び「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）の両方が、「Ｉ  ｗａｎｔ  ｔｏ  ｂｕｙ  ａ  ｍｏｂｉｌｅ  ｐｈｏｎｅ」（私はモバイルフォンを買いたい）よりも高い同じ精度レベルを有するならば、「ｍｏｂｉｌｅ  ｐｈｏｎｅ」（モバイルフォン）及び「ｃｅｌｌ  ｐｈｏｎｅ」（セルフォン）は、ともに選択される。
【００４１】
ステップ３０６では、前処理サーバは、選択された（１つ又は２つ以上の）クエリの間で尚もコンフリクトがあるか否かを決定する。複数の前処理済みクエリが選択されたときは、コンフリクトが見いだされる。
【００４２】
コンフリクトがあるならば、ステップ３０７が実行され、そうでなければ、ステップ３０８が実行される。
【００４３】
ステップ３０７では、最も高い信頼度レベルを有する前処理済みクエリが選択される。
【００４４】
ステップ３０８では、前処理サーバは、最も高い精度／信頼度レベルを持つ前処理済みクエリを検索エンジンに送信し、実行結果をクライアント端末に返す。
【００４５】
一部の実施形態では、実行順序に含まれる各前処理モジュールのための統一されたインターフェースがセットアップされ、このインターフェースを通じて、各実行モジュールの実行結果のための統一された精度レベルがセットアップされる。検索プラン内に維持される前処理済みクエリの数が、既定の個別出力数を上回るときは、前処理済みクエリは、それぞれの精度レベルにしたがってランク付けされ、最も高位にランクにされた１つ又は２つ以上の前処理済みクエリが、検索プランに含まれるとして選択される。
【００４６】
実装形態によっては、前処理済みクエリの出力として複数の可能性が存在することがあるので、入力キーワードとその他の条件との間では、正確な突き合わせがなされる。入力されたキーワードが、モジュールのなかのワードと厳密に一致するならば、それらのモジュールの出力の精度は高い。各前処理機能の辞書式インデックスは、独立しているので、異なる前処理機能の出力の精度の間に相関性はない。各前処理機能は、互いに独立しているので、新しい前処理機能モジュールが追加されたときに、これまでのモジュールを変更する必要はなく、それらのモジュール出力のために、出力の精度を満たすようにモジュールの設定を行うために使用される統一されたインターフェースをセットアップすることができる。それぞれのモジュールは、行う処理も生じる結果も異なるが、それらの出力は、正規化された精度レベルに関係付けられているので、比較及び選択を行うことが容易である。
【００４７】
本出願は、以下の利点を有する。すなわち、コンフリクトを生じるかもしれない実行モジュールに対し、それらの実行モジュールの実行結果の精度に基づいて調整が行われ、検索パラメータの裏側にあるユーザの意図をより迅速に且つ正確に捉え、それらユーザ意図を、検索エンジンが理解することができ、元の実行モジュールを変更しないという前提条件下で実行モジュールの管理を促すことができ、より適切な検索ワードを出力することができる、マシン言語及び実行方針に変換することができる。更に、前処理機能の実行には、独立したサービスが用いられ、これらは、検索エンジンのコアとなるクエリサービスの安定性に影響を及ぼさず、また、実行モジュールには、分散配備がとられてよく、これは、モジュールを検索エンジンサービスに縛り付けることも、サーバリソースを求めて検索エンジンと競合することもなく、高い処理速度でもサーバをほとんど圧迫することがない。もちろん、本出願を実装するいかなる製品であれ、必ずしも、上述された全ての利点を同時に実現する必要はない。
【００４８】
上述された本出願の実施形態は、検索の方法、及び適用される状況を提供しており、また、それに応じて、本出願は、以下の実施形態を通じて上記の方法を適用するための手段も提供する。
【００４９】
図４は、前処理サーバの一実施形態を示すブロック図である。前処理サーバは、クライアント端末によって入力された検索クエリを取得し、クライアント端末によって事前設定又は選択された検索ラベルに基づいて、検索クエリの処理のための実行順序を決定するために使用される、取得モジュール４１０と、実行順序に対応する順序で前処理機能を実行し、前処理済みクエリを取得し、該前処理済みクエリの精度のレベルに基づいて検索プランを生成するために使用される、実行モジュール４２０と、検索プランにしたがって検索を行い、検索結果を得るために使用される、検索モジュール４３０とを含む。
【００５０】
このようなシステムでは、コンフリクトを生じるかもしれない実行モジュールに対し、それらの実行モジュールの実行結果の精度に基づいて調整が行われる。システムは、検索パラメータの向こうにあるユーザの意図をより迅速に且つ正確に捉え、それらユーザ意図を、検索エンジンが理解することができ、元の実行モジュールを変更しないという前提条件下で実行モジュールの管理を促すことができ、より適切な検索ワードを出力することができる、マシン言語及び実行方針に変換することができる。
【００５１】
図５は、前処理サーバの別の一実施形態を示すブロック図である。前処理サーバは、クライアント端末によって入力されたクエリを取得し、クライアント端末によって事前設定又は選択された検索ラベルに基づいてクエリ入力の処理のための実行順序を決定するために使用される、取得モジュール５１０を含む。
【００５２】
前処理サーバは、更に、前処理機能を実行し、前処理済みクエリを生成し、該前処理済みクエリの精度のレベルに基づいて検索プランを生成するために使用される、実行モジュール５２０を含む。実行モジュールは、具体的には、処理済みクエリの精度のレベルが第１の精度要件を満たすかどうかを決定するために使用される。実行モジュールは、また、第１の精度要件を満たす前処理済みクエリ結果の間でコンフリクトがあるか否かを決定するためにも使用され、コンフリクトがあるならば、最高の精度レベルを持つ前処理済みクエリが選択される。
【００５３】
実行モジュール５２０は、具体的には、第１の精度要件を満たす２つ又は３つ以上の前処理済みクエリがあるか否かを決定するために使用される。あるならば、第１の精度要件を満たす前処理済みクエリの間でコンフリクトがあると決定され、ないならば、第１の精度要件を満たす上記実行モジュールの間で相互のコンフリクトはないと決定される。
【００５４】
一部の実施形態では、実行モジュール５２０は、また、実行順序における後続の前処理機能モジュールを通知して、それら後続の前処理機能モジュールに、既存の前処理済みクエリに基づいて前処理済みクエリを生成させるためにも使用される。
【００５５】
サーバは、更に、実行モジュールによって生成された検索プランに基づく検索クエリを決定し、その前処理済みクエリにしたがって検索を行い、検索結果を得るために使用される、検索モジュール５３０を含む。
【００５６】
上記前処理機能モジュールの出力結果は、上記前処理機能モジュールの実行結果も含み、上述の検索モジュール５３０は、上記前処理機能モジュールの出力結果が第２の精度要件を満たし且つ上記検索パラメータが既定の複雑性要件を満たすときに上記前処理機能モジュールの実行結果にしたがって検索を行って、検索結果を得るためにも使用される。
【００５７】
サーバは、更に、上記実行順序に含まれる各前処理機能モジュールのための統一されたインターフェースをセットアップし、上記実行モジュール５２０によって使用される、上記各前処理機能モジュールの出力結果のための統一された精度レベルを、上記インターフェースを通じてセットアップするために使用される、セットアップモジュール５４０を含む。
【００５８】
この分野の技術者は、これらの実施形態の手段におけるモジュールの分布が、これらの実施形態の説明にしたがってこれらの実施形態の手段においてなせること、並びに本実施形態と異ならない１つ又は複数の手段において対応する変更をなせることを理解することができる。上述の実施形態のモジュールは、集結させることも、分けて配備することもでき、また、１つのモジュールとしてまとめることはもちろん、更に分解して複数のサブモジュールに分けることもできる。本出願の実施形態の通し番号は、単に説明のためであり、実施形態の利点又は欠点を表すものではない。
【００５９】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明の実現には、多くの代替的手法がある。開示された実施形態は、例示のためであって、限定的なものではない。
適用例１：検索結果を提供するための方法であって、検索クエリを受信し、前記検索クエリに対応する検索ラベルに少なくとも部分的に基づいて、前記検索クエリに対して実行されるべき複数の前処理機能を決定し、複数の前処理済み検索クエリを得るために、前記検索クエリに対して前記複数の前処理機能を実行し、前記複数の前処理済み検索クエリに関係付けられている精度レベルに少なくとも部分的に基づいて、選択された前処理済み検索クエリを含む検索プランを生成し、前記検索結果を得るために、前記検索プランを前記検索エンジンに入力すること、を備える方法。
適用例２：適用例１に記載の方法であって、前記検索プランの生成は、前記複数の前処理済み検索クエリの中から精度要件を満たす前処理済み検索クエリを選択することを含む、方法。
適用例３：適用例１に記載の方法であって、前記精度要件は、過去データに基づいて決定される、方法。
適用例４：適用例２に記載の方法であって、前記検索プランの生成は、更に、前記精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かを決定することを含む、方法。
適用例５：適用例４に記載の方法であって、前記第１の精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かの決定は、２つ又は３つ以上の前処理済み検索クエリが前記精度要件を満たすか否かを決定することを含む、方法。
適用例６：適用例４に記載の方法であって、コンフリクトがある場合に、最も高い精度レベルを有する前処理済み検索クエリを選択する方法。
適用例７：適用例４に記載の方法であって、コンフリクトがある場合に、前記検索プランの生成は、更に、前記複数の前処理済み検索クエリが信頼度レベル要件を満たすと決定することを含む、方法。
適用例８：適用例１に記載の方法であって、前記複数の前処理機能は、統一されたインターフェースを有する、方法。
適用例９：検索結果を提供するためのシステムであって、１つ又は２つ以上のプロセッサと、前記１つ又は２つ以上のプロセッサに接続され、前記１つ又は２つ以上のプロセッサに命令を提供するように構成されている１つ又は２つ以上のメモリと、を備え、
前記１つ又は２つ以上のプロセッサは、検索クエリを受信し、前記検索クエリに対応する検索ラベルに少なくとも部分的に基づいて、前記検索クエリに対して実行されるべき複数の前処理機能を決定し、複数の前処理済み検索クエリを得るために、前記検索クエリに対して前記複数の前処理機能を実行し、前記複数の前処理済み検索クエリに関係付けられている精度レベルに少なくとも部分的に基づいて、選択された前処理済み検索クエリを含む検索プランを生成し、前記検索結果を得るために、前記検索プランを前記検索エンジンに入力するように構成されている、システム。
適用例１０：適用例９に記載のシステムであって、前記検索プランの生成は、前記複数の前処理済み検索クエリの中から精度要件を満たす前処理済み検索クエリを選択することを含む、システム。
適用例１１：適用例９に記載のシステムであって、前記精度要件は、過去データに基づいて決定される、システム。
適用例１２：適用例１０に記載のシステムであって、前記検索プランの生成は、更に、前記精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かを決定することを含む、システム。
適用例１３：適用例１２に記載のシステムであって、前記第１の精度要件を満たす前記前処理済み検索クエリの間でコンフリクトがあるか否かの決定は、２つ又は３つ以上の前処理済み検索クエリが前記精度要件を満たすか否かを決定することを含む、システム。
適用例１４：適用例１２に記載のシステムであって、コンフリクトがある場合に、最も高い精度レベルを有する前処理済み検索クエリを選択するシステム。
適用例１５：適用例１２に記載のシステムであって、コンフリクトがある場合に、前記検索プランの生成は、更に、前記複数の前処理済み検索クエリが信頼度レベル要件を満たすと決定することを含む、システム。
適用例１６：適用例１２に記載のシステムであって、前記複数の前処理機能は、統一されたインターフェースを有する、システム。
適用例１７：検索結果を提供するためのコンピュータプログラム製品であって、コンピュータ可読記憶媒体に実装され、検索クエリを受信するためのコンピュータ命令と、前記検索クエリに対応する検索ラベルに少なくとも部分的に基づいて、前記検索クエリに対して実行されるべき複数の前処理機能を決定するためのコンピュータ命令と、複数の前処理済み検索クエリを得るために、前記検索クエリに対して前記複数の前処理機能を実行するためのコンピュータ命令と、前記複数の前処理済み検索クエリに関係付けられている精度レベルに少なくとも部分的に基づいて、選択された前処理済み検索クエリを含む検索プランを生成するためのコンピュータ命令と、前記検索結果を得るために、前記検索プランを前記検索エンジンに入力するためのコンピュータ命令と、を備えるコンピュータプログラム製品。
【図１】
0005481570.tif 000002
【図２】
0005481570.tif 000003
【図３】
0005481570.tif 000004
【図４】
0005481570.tif 000005
【図５】
0005481570.tif 000006