(57)【特許請求の範囲】
【請求項１】
少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定手段と、
前記判定手段により前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索手段と、
前記検索手段による検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供手段と、
を備えることを特徴とする検索装置。
【請求項２】
請求項１に記載の検索装置において、
前記検索手段は、前記複数の属性語のうち少なくとも１つをキーワードとして、検索対象に関する文字情報を検索対象ごとに記憶する文字情報記憶手段に記憶された前記文字情報が該キーワードを含むことを検索条件とすることを特徴とする検索装置。
【請求項３】
請求項１又は２に記載の検索装置において、
前記検索手段は、前記複数の属性語のうち少なくとも１つが表す内容を、検索対象の属性の検索条件として用いることを特徴とする検索装置。
【請求項４】
請求項１乃至３の何れか１項に記載の検索装置において、
前記複数の入力語のそれぞれごとに、前記入力語が、検索対象が有する属性の複数の区分のうち所定区分の属性の内容を表す所定区分属性語であるか否かを、該入力語に基づいて判定する第２判定手段を更に備え、
前記検索手段は、前記第２判定手段により前記所定区分属性語であると判定された入力語が表す内容を、前記所定区分の属性の検索条件として用いることを特徴とする検索装置。
【請求項５】
請求項４に記載の検索装置において、
少なくとも１つの前記所定区分は、予め定められた単位の値を内容とする属性の区分であり、
前記第２判定手段は、前記入力語が前記単位を表す語を含むことを少なくとも条件として、該入力語が前記所定区分属性語であると判定することを特徴とする検索装置。
【請求項６】
請求項５に記載の検索装置において、
前記検索手段は、前記第２判定手段により前記所定区分属性語であると判定された入力語が、値の範囲を指定する表現を含む場合、該入力語が表す値の範囲に前記所定区分の属性の値が含まれる検索対象を検索することを特徴とする検索装置。
【請求項７】
請求項４乃至６の何れか１項に記載の検索装置において、
前記第２判定手段は、前記入力語が前記所定区分属性語であるか否かを前記所定区分ごとに判定することにより、該入力語が内容を表す前記所定区分の属性を判別し、
前記検索手段は、前記第２判定手段により前記所定区分の属性が判別された入力語を、判別された前記所定区分の属性の検索条件として用いることを特徴とする検索装置。
【請求項８】
請求項４乃至７の何れか１項に記載の検索装置において、
前記検索手段は、前記第２判定手段により前記所定区分属性語であるとは判定されなかった入力語をキーワードとして、検索対象に関する文字情報を検索対象ごとに記憶する文字情報記憶手段に記憶された前記文字情報が該キーワードを含むことを検索条件として用いることを特徴とする検索装置。
【請求項９】
請求項１乃至８の何れか１項に記載の検索装置において、
前記検索手段は、ある入力語が除外の表現を含む場合、該入力語に応じた条件の否定を検索条件として用いることを特徴とする検索装置。
【請求項１０】
コンピュータにより実行される検索方法であって、
少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定ステップと、
前記判定ステップにより前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索ステップと、
前記検索ステップによる検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供ステップと、
を含むことを特徴とする検索方法。
【請求項１１】
コンピュータを、
少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定手段、
前記判定手段により前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索手段、及び、
前記検索手段による検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供手段、
として機能させることを特徴とする検索プログラム。
【請求項１２】
コンピュータを、
少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定手段、
前記判定手段により前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索手段、及び、
前記検索手段による検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供手段、
として機能させる検索プログラムがコンピュータ読み取り可能に記録されていることを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザにより入力された語を用いて検索対象を検索する検索装置及び検索方法の技術分野に関する。
【背景技術】
【０００２】
従来、キーワードが入力される入力領域にユーザにより入力されたキーワードを用いて検索を行う検索装置が知られている。検索装置による検索の対象となるものとしては、例えば、Ｗｅｂページ、商品、サービス等がある。以下、検索の対象となるものを、「検索対象」という。一般的に、検索対象は、何らかの属性を有する場合がある。また、検索対象の属性は、複数の区分に分類されている。例えば、検索対象が商品である場合、属性の区分としては、価格、ジャンル等がある。ユーザは、ある区分の属性に対して検索条件を指定したい場合がある。ここで、キーワードが入力される入力領域に、検索条件として指定したい属性の内容を表す語をユーザが入力したとしても、ユーザが期待する検索結果が得られない場合がある。例えば、ユーザが、価格が１０００円以下である商品を検索したいとする。そこで、ユーザが、価格の内容として、金額を表す「１０００円以下」を入力した場合、キーワード検索によって、例えば商品を説明する文章が「１０００円以下」という語を含む商品を検索することはできる。しかしながら、検索された商品の価格が、必ずしも１０００円以下であるとは限らない。そこで、属性の区分ごとに、属性の内容を指定するためのウィジェットを画面に表示させ、ユーザによるウィジェットの操作によって指定された内容の属性を有する検索対象を検索する方法がある。
【０００３】
ここで、特許文献１には、属性の区分ごとの内容の指定に関連する技術が開示されている。特許文献１には、支援装置が、利用者端末において入力フォームに入力されたキーワードに基づいて検索エンジンに検索させた提供情報に含まれるカテゴリーや要件ごとに詳細情報や詳細条件をまとめ、各要件に対応付けられている詳細情報や詳細条件に対応付けされた単語を再検索キーワードとして選択するためのリストボックスを含むＷｅｂページを利用者端末に送信し、各リストボックスから選択された再検索キーワードを検索エンジンに与えて提供情報を再検索させることが記載されている。例えば、キーワードとして「テレビ」が入力フォームに入力された場合には、再検索キーワードの選択が可能な要件として、例えば、メーカ、型、方式、支払い方法、金額等がある。この各要件が、属性の区分に対応する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第０３／０４２８６９号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、ユーザは、入力フォームに対する入力操作とは別に、リストボックスに対する操作を行う必要がある。また、リストボックスが、要件ごとに存在する。従って、ユーザが再検索キーワードを選択したいリストボックス自体を選択する操作や、選択したリストボックスから再検索キーワードを選択するための操作が必要となる。そのため、このような操作が、ユーザにとっては面倒である。また、検索条件として属性の内容を表す語を入力するための入力領域を属性ごとに設けるようにした場合も、入力領域の選択操作が面倒である。
【０００６】
また、入力領域に、「価格：１０００  ジャンル：ミネラルウォーター」というように、属性の区分を表す語を、属性の内容を表す語とともに入力することが考えられる。そして、検索装置が、属性の区分を表す語から、属性の内容を表す語が、如何なる区分の属性の内容を表しているかを判別し、属性の内容を表す語を、判別された区分の属性の検索条件として用いて検索を行うことが考えられる。しかしながら、この場合、ユーザは、属性の内容を表す語以外に、属性の区分を表す語も入力しなければならない。そのため、入力操作が面倒となる。
【０００７】
本発明は、以上の点に鑑みてなされたものであり、ユーザが属性の区分を指定する操作をしなくても、ユーザが所望する区分の属性に対する検索条件の指定を可能とする検索装置、検索方法、検索プログラム及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定手段と、前記判定手段により前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索手段と、前記検索手段による検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供手段と、を備えることを特徴とする。
【０００９】
この発明によれば、互いに兄弟の関係にある複数の語のそれぞれに応じた検索結果が分かれて表示される。そのため、兄弟の関係にある語の間で検索結果の比較が容易となる。
【００１０】
請求項２に記載の発明は、請求項１に記載の検索装置において、前記検索手段は、前記複数の属性語のうち少なくとも１つをキーワードとして、検索対象に関する文字情報を検索対象ごとに記憶する文字情報記憶手段に記憶された前記文字情報が該キーワードを含むことを検索条件とすることを特徴とする。
【００１１】
この発明によれば、検索対象の属性の内容を表す入力語を文字情報が含む検索対象が検索される。そのため、検索対象が本来有する属性の内容が、検索対象の情報として実際には検索対象と対応付けられていない場合であっても、入力語が表す内容の属性を有する検索対象を検索することができる。
【００１２】
請求項３に記載の発明は、請求項１又は２に記載の検索装置において、前記検索手段は、前記複数の属性語のうち少なくとも１つが表す内容を、検索対象の属性の検索条件として用いることを特徴とする。
【００１３】
この発明によれば、入力語が表す内容の属性を有する検索対象を検索することができる。
【００１４】
請求項４に記載の発明は、請求項１乃至３の何れか１項に記載の検索装置において、前記複数の入力語のそれぞれごとに、前記入力語が、検索対象が有する属性の複数の区分のうち所定区分の属性の内容を表す所定区分属性語であるか否かを、該入力語に基づいて判定する第２判定手段を更に備え、前記検索手段は、前記第２判定手段により前記所定区分属性語であると判定された入力語が表す内容を、前記所定区分の属性の検索条件として用いることを特徴とする。
【００１５】
この発明によれば、入力語が所定区分の属性の内容を表す語であるか否かがその入力語自体に基づいて判定される。そして、複数の入力語の中に所定区分の属性の内容を表す入力語がある場合、その入力語が表す内容が所定区分の属性の検索条件として用いて検索が行われる。そのため、ユーザは、所定区分の属性の内容を表す語を含む複数の語を１つの入力領域に入力することで、属性の区分を指定する操作をしなくても、所定区分の属性の検索条件を指定することができる。
【００１６】
請求項５に記載の発明は、請求項４に記載の検索装置において、少なくとも１つの前記所定区分は、予め定められた単位の値を内容とする属性の区分であり、前記第２判定手段は、前記入力語が前記単位を表す語を含むことを少なくとも条件として、該入力語が前記所定区分属性語であると判定することを特徴とする。
【００１７】
この発明によれば、ユーザは、単位を表す語を含む語を入力することにより、所定区分の属性の検索条件を指定することができる。
【００１８】
請求項６に記載の発明は、請求項５に記載の検索装置において、前記検索手段は、前記第２判定手段により前記所定区分属性語であると判定された入力語が、値の範囲を指定する表現を含む場合、該入力語が表す値の範囲に前記所定区分の属性の値が含まれる検索対象を検索することを特徴とする。
【００１９】
この発明によれば、ユーザは、単位を表す語及び範囲を指定する表現を含む語を入力することにより、所定区分の属性の検索条件として、属性の内容の範囲を指定することができる。
【００２０】
請求項７に記載の発明は、請求項４乃至６の何れか１項に記載の検索装置において、前記第２判定手段は、前記入力語が前記所定区分属性語であるか否かを前記所定区分ごとに判定することにより、該入力語が内容を表す前記所定区分の属性を判別し、前記検索手段は、前記第２判定手段により前記所定区分の属性が判別された入力語を、判別された前記所定区分の属性の検索条件として用いることを特徴とする。
【００２１】
この発明によれば、ユーザは、複数の区分の属性に対して検索条件を指定することができる。
【００２２】
請求項８に記載の発明は、請求項４乃至７の何れか１項に記載の検索装置において、前記検索手段は、前記第２判定手段により前記所定区分属性語であるとは判定されなかった入力語をキーワードとして、検索対象に関する文字情報を検索対象ごとに記憶する文字情報記憶手段に記憶された前記文字情報が該キーワードを含むことを検索条件として用いることを特徴とする。
【００２３】
この発明によれば、ユーザは、所定区分の属性の内容を表す語と、所定区分の属性の内容を表さない語とを含む複数の語を入力することにより、所定区分の属性の検索条件とキーワードとを指定することができる。
【００２４】
請求項９に記載の発明は、請求項１乃至８の何れか１項に記載の検索装置において、前記検索手段は、ある入力語が除外の表現を含む場合、該入力語に応じた条件の否定を検索条件として用いることを特徴とする。
【００２５】
この発明によれば、ユーザは、除外を表す表現を含む語を入力することにより、否定の検索条件を指定することができる。
【００３２】
請求項１０に記載の発明は、コンピュータにより実行される検索方法であって、少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定ステップと、前記判定ステップにより前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索ステップと、前記検索ステップによる検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供ステップと、を含むことを特徴とする。
【００３３】
請求項１１に記載の発明は、コンピュータを、少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定手段、前記判定手段により前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索手段、及び、前記検索手段による検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供手段、として機能させることを特徴とする。
【００３４】
請求項１２に記載の発明は、コンピュータを、少なくともキーワードが入力可能な１つの入力領域にユーザにより入力された複数の入力語の中に、検索対象の属性の内容を表す複数の語を木構造におけるノードとして階層的に記憶する語記憶手段に記憶された前記複数の語のうちの何れかの語と一致する属性語が複数存在する場合、複数の前記属性語の中に、前記木構造において兄弟関係にある２以上の兄弟属性語が存在するか否かを判定する判定手段、前記判定手段により前記２以上の兄弟属性語が存在すると判定された場合、前記２以上の兄弟属性語のそれぞれごとに、該兄弟属性語に応じた検索条件と、前記複数の入力語のうち前記２以上の兄弟属性語以外の入力語に応じた検索条件との論理積を検索式として用いて、検索対象を検索する検索手段、及び、前記検索手段による検索結果が、前記２以上の兄弟属性語のそれぞれに分かれて表示されるように、前記検索結果を提供する提供手段、として機能させる検索プログラムがコンピュータ読み取り可能に記録されていることを特徴とする。
【発明の効果】
【００３５】
本発明によれば、入力語が第１区分の属性の内容を表す語であるか否かがその入力語自体に基づいて判定される。そして、複数の入力語の中に第１区分の属性の内容を表す入力語がある場合、その入力語が表す内容が第１区分の属性の検索条件として用いて検索が行われる。そのため、ユーザは、第１区分の属性の内容を表す語を含む複数の語を１つの入力領域に入力することで、属性の区分を指定する操作をしなくても、第１区分の属性の検索条件を指定することができる。
【図面の簡単な説明】
【００３６】
【図１】一実施形態に係るショッピングシステムＳの概要構成の一例を示す図である。
【図２】電子商店街のトップページの画面表示例を示す図である。
【図３】ジャンルを表す複数の検索ワードが入力された場合の検索式の生成例を示す図である。
【図４】検索式の生成例を示す図である。
【図５】検索結果ページの画面表示例を示す図である。
【図６】一実施形態に係る電子商店街サーバ１の概要構成の一例を示すブロック図である。
【図７】（ａ）は、会員情報ＤＢ１２ａに登録される内容の一例を示す図であり、（ｂ）は、ジャンル情報ＤＢ１２ｂに登録される内容の一例を示す図であり、（ｃ）は、商品情報ＤＢ１２ｃに登録される内容の一例を示す図であり、（ｄ）は、除外指定語ＤＢ１２ｄに登録される内容の一例を示す図であり、（ｅ）は、単位語ＤＢ１２ｅに登録される内容の一例を示す図であり、（ｆ）は、範囲指定語ＤＢ１２ｆに登録される内容の一例を示す図である。
【図８】一実施形態に係る電子商店街サーバ１のシステム制御部１４の検索リクエスト受信時処理における処理例を示すフローチャートである。
【図９】一実施形態に係る電子商店街サーバ１のシステム制御部１４の属性判定処理における処理例を示すフローチャートである。
【図１０】一実施形態に係る電子商店街サーバ１のシステム制御部１４の属性判定処理における処理例を示すフローチャートである。
【図１１】一実施形態に係る電子商店街サーバ１のシステム制御部１４の検索式生成処理における処理例を示すフローチャートである。
【図１２】一実施形態に係る電子商店街サーバ１のシステム制御部１４の検索処理における処理例を示すフローチャートである。
【図１３】一実施形態に係る電子商店街サーバ１のシステム制御部１４の検索メイン処理における処理例を示すフローチャートである。
【図１４】一実施形態に係る電子商店街サーバ１のシステム制御部１４の検索メイン処理における処理例を示すフローチャートである。
【図１５】一実施形態の変形例に係る電子商店街サーバ１のシステム制御部１４の検索メイン処理における処理例を示すフローチャートである。
【発明を実施するための形態】
【００３７】
以下、図面を参照して本発明の実施形態について詳細に説明する。なお、以下に説明する実施の形態は、ショッピングシステムに対して本発明を適用した場合の実施形態である。
【００３８】
［１．ショッピングシステムの構成及び機能概要］
先ず、本実施形態に係るショッピングシステムＳの構成について、図１を用いて説明する。図１は、本実施形態に係るショッピングシステムＳの概要構成の一例を示す図である。
【００３９】
図１に示すように、ショッピングシステムＳは、電子商店街サーバ１と、複数の店舗端末２と、複数のユーザ端末３と、を含んで構成されている。そして、電子商店街サーバ１と、各店舗端末２及び各ユーザ端末３とは、ネットワークＮＷを介して、例えば、通信プロトコルにＴＣＰ／ＩＰ等を用いて相互にデータの送受信が可能になっている。なお、ネットワークＮＷは、例えば、インターネット、専用通信回線（例えば、ＣＡＴＶ（Community Antenna Television）回線）、移動体通信網（基地局等を含む）、及びゲートウェイ等により構築されている。
【００４０】
電子商店街サーバ１は、商品の購入が可能な電子商店街に関する各種処理を実行するサーバ装置である。電子商店街サーバ１は、本発明における検索装置の一例である。ユーザは、電子商店街を利用することにより、所望の店舗から所望の商品を購入することができる。電子商店街サーバ１は、ユーザ端末３からのリクエストに応じて、例えば、電子商店街のＷｅｂページを送信したり、商品の検索や購入等に関する処理を行ったりする。なお、商品は、本発明における検索対象の一例である。
【００４１】
店舗端末２は、電子商店街に出店している店舗の従業員等により利用される端末装置である。店舗端末２は、従業員等からの操作に基づいて電子商店街サーバ１等のサーバ装置にアクセスする。これにより、店舗端末２は、サーバ装置からＷｅｂページを受信して表示する。店舗端末２には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。従業員は、店舗端末２を利用することにより、例えば、販売する商品の情報を電子商店街に登録したり、商品の注文内容を確認したりする。
【００４２】
ユーザ端末３は、電子商店街を利用するユーザの端末装置である。ユーザ端末３は、ユーザからの操作に基づいて電子商店街サーバ１にアクセスすることにより、電子商店街サーバ１からＷｅｂページを受信して表示する。ユーザ端末３には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。ユーザ端末３としては、例えば、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、スマートフォン等の携帯情報端末、携帯電話機等が用いられる。
【００４３】
［２．検索条件の指定］
次に、電子商店街における商品の検索に用いられる検索条件をユーザが指定する方法について、図２乃至図５を用いて説明する。図２は、電子商店街のトップページの画面表示例を示す図である。トップページは、電子商店街において最上位に位置するＷｅｂページである。
【００４４】
図２に示すように、トップページは、検索条件設定領域１１０を含む。検索条件設定領域１１０は、検索条件を指定するためのウィジェット等が表示される領域である。ウィジェットは、Ｗｅｂページを構成する要素または部品である。具体的に、検索条件設定領域１１０には、１つの検索ワード入力欄１１１と、検索ボタン１１２とが表示される。
【００４５】
検索ワード入力欄１１１は、検索ワードを入力するための領域である。この検索ワード入力欄１１１は、本発明における入力領域の一例である。検索ワードは、商品の検索条件を示す語等である。検索ワード入力欄１１１に入力された検索ワードは、本発明における入力語の一例である。なお、図２では、検索ワード入力欄１１１に対してユーザにより検索ワードが入力された状態である。
【００４６】
検索ボタン１１２は、検索ワード入力欄１１１に入力された検索ワードを電子商店街サーバ１に送信するためのボタンである。また、検索ボタン１１２は、電子商店街サーバ１に商品を検索させるためのボタンである。なお、ユーザは、検索ワード入力欄１１１に検索ワードを入力した後に、例えば、Enterキー、実行キー等を押すことにより、入力された検索ワードを電子商店街サーバ１に送信することができる。そして、検索ワードに基づいて電子商店街サーバ１が商品を検索する。
【００４７】
ユーザは、各検索ワードの間に空白を入れることにより、複数の検索ワードを検索ワード入力欄１１１に入力することができる。そして、ユーザは、複数の検索ワードを入力することにより、詳細な検索条件を指定することができる。以下では、検索条件の指定方法について説明する。なお、ユーザは、検索ワード入力欄１１１に検索ワードを１つのみ入力して、電子商店街サーバ１に商品を検索させることも可能である。
【００４８】
［２−１．キーワード］
ユーザは、キーワード検索に用いられるキーワードを、検索ワードとして入力することができる。キーワード検索では、各商品の情報として電子商店街に登録されている文字情報に、入力されたキーワードを含む商品が検索される。この文字情報としては、例えば、商品名、商品説明がある。この場合、商品名または商品説明の少なくとも何れか一方に、入力されたキーワードを含むことが、検索条件となる。
【００４９】
また、ユーザは、「除く」、「以外」、「含まない」、「除外」、「ではない」等、除くことを表す文字を、検索ワードに含めることができる。このような文字を、「除外指定語」という。検索ワードに除外指定語が含まれている場合、検索ワードのうち、除外指定語を除いた部分が、キーワードとなる。しかしながら、この場合は、商品名及び商品説明の何れにも、除外指定語が除かれたキーワードを含まないことが、検索条件である。つまり、検索条件に対して否定の論理演算が行われる。例えば、検索ワードが、「ＸＸＸを除く」である場合、商品名及び商品説明の何れにも「ＸＸＸ」を含まない商品が検索される。なお、「除く」の前にある「を」は、キーワードと除外指定語とを接続する助詞であるので、このような助詞も除かれる。除外指定語は、本発明における除外を表す表現の一例である。
【００５０】
［２−２．商品価格］
ユーザは、ユーザが検索したい商品が有するべき属性の内容を表す語を、検索ワードとして入力することができる。各商品は、複数の属性を有する。そして、商品の属性は、複数の区分に分類されている。属性の区分としては、例えば、商品名、販売元の店舗、商品価格、ジャンル等がある。属性の区分を、属性の項目ともいう。
【００５１】
ユーザは、日本の通貨単位を表す文字である「円」を含む数字を、検索ワードとして入力することにより、検索ワードが表す金額が、商品価格に対する検索条件として指定される。例えば、検索ワードが「1000円」である場合、商品価格が1000円であることが、検索条件となる。このとき、ユーザは、例えば、「価格1000円」というように、属性の区分を表す語を入力しなくてもよい。金額と商品価格とが予め関連付けられているので、商品価格以外に金額で表される属性を商品が有していたとしても、「円」を含む金額の検索ワードは、商品価格を表すと自動的に判定される。商品価格は、本発明における第１区分の一例である。また、「1000円」は、本発明における第１属性語の一例である。
【００５２】
また、ユーザは、金額を表す語を検索ワードとして入力するとき、「以上」、「以下」、「未満」等、範囲を指定する語または大小関係を示す語を検索ワードに含めることができる。このような語を、「範囲指定語」という。検索ワードが、金額を表す語と範囲指定語とを含む場合、検索ワードが表す金額の範囲に商品価格が含まれていることが、検索条件となる。範囲指定語は、本発明における値の範囲を指定する表現の一例である。
【００５３】
なお、本実施形態においては、検索条件を指定可能な属性の区分を商品価格としているが、他の区分の属性についても検索条件の指定が可能となっていてもよい。
【００５４】
［２−３．ジャンル］
商品は、商品のジャンルを属性として有する。各商品は、それぞれ何らかのジャンルに分類されている。ユーザは、商品のジャンルの名称を、検索ワードとして入力することができる。ジャンルの名称を、「ジャンル名」という。しかしながら、検索ワードとしてジャンル名が入力された場合であっても、ジャンル名が表すジャンルが、商品のジャンルに対する検索条件としては用いられない。この場合、検索ワードは、キーワード検索におけるキーワードとして用いられる。その理由は、以下の通りである。
【００５５】
店舗が、電子商店街に商品の情報を登録するとき、ジャンルの情報も登録する。このとき、店舗は、任意のジャンルを設定することができる。従って、実際にはあるジャンルに属する商品が、必ずしもそのジャンルが設定されて登録されるとは限らない。つまり、ジャンルが検索条件として指定されたとしても、ユーザが望むジャンルに属する商品が全て検索されるとは限らない。その一方で、商品名や商品説明には、実際のジャンルの名称が含まれている場合が多い。そこで、ジャンル名を表す検索ワードが、キーワードとして用いられる。また、検索ワードが表すジャンルに関連する商品を検索することもできる。なお、検索ワードが表すジャンルを、商品のジャンルに対する検索条件として用いられてもよい。この場合についての詳細については後述する。ジャンルは、本発明における第２区分の属性の一例である。また、ジャンル名は、本発明における第２属性語の一例である。
【００５６】
ただし、ジャンルを表す検索ワードと、ジャンルを表さない単なるキーワードとしての検索ワードとでは、区別して処理される部分がある。それは、各検索ワードに対応する検索条件を組み合わせるときに用いられる論理演算の方法である。
【００５７】
ここで、商品のジャンルの詳細について説明する。商品のジャンルは、商品を、例えば種類、性質、用途等で分類したときに、同じような種類、性質、用途等の商品が属する範囲、区分またはカテゴリーである。商品のジャンルは、木構造で階層的に定義されている。この木構造を、「ジャンル木」という。具体的に、ジャンル木の各ノードが、ジャンルに相当する。ノードの深さが、そのノードに相当するジャンルのレベル（階層）に相当する。ノードの深さは、根に位置するノードからの距離である。
【００５８】
根に位置するノードを、「根ノード」という。ジャンル木において、根ノードには、ジャンルトップというジャンルが便宜的に定義されている。レベルの値が大きいほど、レベルとしての深さが深く、レベルの値が小さいほど、レベルとしての深さが浅い。ジャンルトップは、レベル０のジャンルである。ジャンルトップに対して、子ノードに相当するジャンルがレベル１のジャンルである。レベル１のジャンルが、実質的に最上位のジャンルである。レベル１のジャンルとしては、例えば、「水・ソフトドリンク」、「美容・コスメ・香水」、「ペット・ペットグッズ」、「レディースファッション」、「メンズファッション」等がある。レベル１の各ジャンルに対しては、子ノードに相当するジャンルが、レベル２のジャンルとして定義されている。ここで、あるジャンルＧ１の子ノードに相当するジャンルＧ１１を、ジャンルＧ１の「子ジャンル」という。子ジャンルを、サブジャンルともいう。また、このときのジャンルＧ１を、ジャンルＧ１１の「親ジャンル」という。子ジャンルは、親ジャンルを更に複数に区分したときに、同じような商品が属する範囲である。従って、子ジャンルは親ジャンルに属する。
【００５９】
また、あるジャンルに対して、子孫のノードに相当するジャンルを、「子孫ジャンル」という。例えば、ジャンルＧ１１１がジャンルＧ１１の子ジャンルであるとする。この場合、ジャンルＧ１１及びＧ１１１は、ジャンルＧ１の子孫ジャンルである。なお、ジャンルＧ１自身は、ジャンルＧ１の子孫ジャンルではないものとする。また、あるジャンルに対して、祖先のノードに相当するジャンルを、「祖先ジャンル」という。ジャンルＧ１及びジャンルＧ１１は、ジャンルＧ１１１の祖先ジャンルである。なお、ジャンルＧ１１１自身は、ジャンルＧ１１１の祖先ジャンルではないものとする。
【００６０】
あるジャンルが子ジャンルを有するとき、通常複数の子ジャンルが定義されている。例えば、「水・ミネラルウォーター」の子ジャンルとして、例えば、「水・ミネラルウォーター」、「ソフトドリンク」及び「コーヒー・ココア」等が定義されている。同一の親ジャンルに属するジャンル同士を、兄弟ジャンルという。例えば、「水・ミネラルウォーター」、「ソフトドリンク」及び「コーヒー・ココア」は、互いに兄弟ジャンルである。レベル２以降のジャンルについては、必要に応じて子ジャンルが定義されている。
【００６１】
また、各レベルのジャンルは、それぞれ商品の属性の内容を表すともいえる。そして、互いに兄弟である複数のジャンルは、同一の区分の属性において互いに異なる内容を示すともいえる。例えば、レベル１のジャンルは、商品の大枠のジャンルという属性の区分を示していると考えることができる。また、「水・ミネラルウォーター」、「ソフトドリンク」及び「コーヒー・ココア」は、それぞれ、飲料の種類という区分の属性の内容である。また、「水・ミネラルウォーター」の子ジャンルとして、例えば、「ＡＡＡＡＡ」、「ＢＢＢＢＢ」、「ＣＣＣＣＣ」という銘柄が定義されている。これらは、水またはミネラルウォーターの銘柄という区分の属性の内容である。そして、例えば、「ＡＡＡＡＡ」のジャンルに属する商品は、水またはソフトドリンクであるという属性と、水またはミネラルウォーターであるという属性と、銘柄がＡＡＡＡＡであるという属性と、を有すると考えることができる。各レベルのジャンルが如何なる区分の属性に対応するかは、例えば、ジャンルごとに定められている。
【００６２】
［２−４．複数の検索条件の組み合わせ］
電子商店街サーバ１は、入力された各検索ワードに対応する検索条件を組み合わせて、最終的な検索条件を示す検索式を生成する。検索式においては、検索ワードに対応する検索条件同士が論理演算子で結合される。各検索ワードに対応する検索条件が組み合わせられるとき、通常は、論理積で組み合わせられる。例えば、検索条件Ｃ１と検索条件Ｃ２とがある場合、検索条件Ｃ１とＣ２との両方を満たすことが、検索条件となる。しかしながら、ジャンル名を表す検索ワードが複数ある場合、その複数の検索ワードの間では、ジャンル木において、検索ワードが表すジャンル同士の位置関係に基づいて、論理演算の方法が決定される。
【００６３】
ある１つの検索ワードが表すジャンルが、他の少なくとも１つの検索ワードが表すジャンルの祖先である場合、検索条件同士が論理積で組み合わせられる。このような関係の複数の検索ワードをユーザが指定した場合、ユーザは、祖先の方のジャンルに属する商品の中から、子孫の方のジャンルに属する商品を検索したいと考えている蓋然性があるからである。つまり、ユーザは、複数のジャンルで商品を絞り込みたいと考えている蓋然性がある。なお、親子の関係にある検索ワード同士も、祖先と子孫との関係にある。
【００６４】
複数の検索ワードがそれぞれ表すジャンル同士が兄弟の関係にある場合、検索条件同士が論理和で組み合わせられる。つまり、検索条件Ｃ３と検索条件Ｃ４とがある場合、検索条件Ｃ３とＣ４とのうち少なくとも何れか一方を満たすことが、検索条件となる。互いに兄弟の関係にある複数のジャンルは、同一の区分の属性において互いに異なる属性の内容を示す。従って、互いに兄弟の関係にあるジャンル同士は、検索条件としては並列または対等の関係にあることを示す。従って、兄弟の関係にあるジャンルのそれぞれに属する商品をそれぞれ検索する必要性があると考えられる。また、このような関係の複数の検索ワードをユーザが指定した場合、ユーザは、各検索ワードが表すジャンルのうち少なくとも何れかのジャンルに属する商品を検索したいと考えている蓋然性があるからである。
【００６５】
ある２つの検索ワードがそれぞれ表すジャンル同士が、祖先と子孫との関係ではなく、且つ、兄弟の関係でもない場合、検索条件同士が論理和で組み合わせられる。これは、ジャンル同士に関連性が見られないため、それぞれのジャンルに属する商品をそれぞれ検索する必要性があると考えられるからである。なお、この場合については、検索条件同士が論理積で組み合わせられてもよい。
【００６６】
以下に、ジャンルを表す検索ワードが複数入力された場合に生成される検索式の具体例を説明する。ここで、論理積の演算子を「＊」とし、論理和の演算子を「−」とし、否定の演算子を「−」とする。なお、ここで説明する検索式は、実際に用いられる検索式を簡略化した検索式である。
【００６７】
図３（ａ）は、ジャンル木の一例を示す図である。図３（ａ）に示すように、レベル１のジャンルとして、複数のＧｉ（ｉ＝１、２、３・・・）がある。例えば、Ｇ１とＧ２はレベル１のジャンルである。また、Ｇ１とＧ２とは互いに兄弟である。レベル２のジャンルとして、複数のＧｉｊ（ｊ＝１、２、３・・・）がある。Ｇｉｊは、ジャンルｉの子ジャンルである。例えば、Ｇ１１は、Ｇ１の子ジャンルである。また、例えば、Ｇ２３は、Ｇ２の子ジャンルである。レベル３のジャンルとして、複数のＧｉｊｋ（ｋ＝１、２、３・・・）がある。Ｇｉｊｋは、Ｇｉｋの子ジャンルである。なお、レベル４以降のジャンルも存在していてもよい。
【００６８】
ここで、ユーザが入力した検索ワードが、図３（ｂ）に示すように、「Ｇ１  Ｇ１３  Ｇ１１３を除く  Ｇ２１１  Ｇ２１２  Ｇ２２２」であるとする。この場合、各検索ワードが表すジャンルのうち最下位のレベルであるレベル３のジャンルが特定されて、それぞれのジャンルに対応する検索式としての単項式が生成される。Ｇ１１３、Ｇ２１１、Ｇ２１２及びＧ２２２が、レベル３のジャンルである。ここで、「Ｇ１１３を除く」から、検索式「−Ｇ１１３」が生成される。その他のジャンルについては、ジャンルそのものが検索式となる。例えば、Ｇ１１３の検索式は、「Ｇ１１３」となる。次に、兄弟関係が調べられる。Ｇ２１１とＧ２１２とは兄弟の関係にある。従って、「Ｇ２１１」と「Ｇ２１２」とが論理和で結合されて、検索式「Ｇ２１１＋Ｇ２１２」が生成される。
【００６９】
次に、レベル２のジャンルが特定される。Ｇ１３が、レベル２のジャンルである。また、Ｇ１１３、Ｇ２１１、Ｇ２１２及びＧ２２２のそれぞれの親ジャンルが特定される。Ｇ１１３の親ジャンルはＧ１１である。Ｇ２１１及びＧ２１２の親ジャンルはＧ２１である。Ｇ２２２の親ジャンルはＧ２２である。ここで、レベル２のジャンルとレベル３のジャンルとの間で親子関係が調べられる。ここでは、親子関係にあるジャンルはない。次に、レベル２のジャンルの間で兄弟関係が調べられる。Ｇ１１とＧ１３とは、兄弟の関係にある。そこで、Ｇ１１に対応する「−Ｇ１１３」と「Ｇ１３」とが論理和で結合されて、検索式「−Ｇ１１３＋Ｇ１３」が生成される。このように処理されることで、祖先と子孫との関係でもなく且つ兄弟の関係でもないＧ１１３とＧ１３とが論理和で組み合わせられる。また、Ｇ２１とＧ２２とが兄弟の関係にある。そのため、Ｇ２１に対応する「Ｇ２１１＋Ｇ２１２」と、Ｇ２２に対応する「Ｇ２２２」とが論理和で結合されて、検索式「（Ｇ２１１＋Ｇ２１２）＋Ｇ２２２」が生成される。この場合も、祖先と子孫との関係でもなく且つ兄弟の関係でもないＧ２１１及びＧ２１２とＧ２２２とが論理和で組み合わせられる。多項式と単項式、または、多項式と多項式とが結合される場合、多項式に対して、デリミタである“（”、“）”が補われる。
【００７０】
次に、レベル１のジャンルが特定される。Ｇ１が、レベル１のジャンルである。また、Ｇ１１及びＧ１３の親ジャンルとして、Ｇ１が特定され、Ｇ２１及びＧ２２の親ジャンルとして、Ｇ２が特定される。ここで、レベル１のジャンルとレベル２のジャンルとの間で親子関係が調べられる。Ｇ１は、Ｇ１１及びＧ１３の親ジャンルである。そのため、「Ｇ１」とＧ１１及びＧ１３に対応する「−Ｇ１１３＋Ｇ１３」とが論理積で結合されて、検索式「（−Ｇ１１３＋Ｇ１３）＊Ｇ１」が生成される。「（−Ｇ１１３＋Ｇ１３）＊Ｇ１」は「−Ｇ１１３＊Ｇ１＋Ｇ１３＊Ｇ１」と等価である。従って、親子の関係にあるＧ１とＧ１３とが論理積で組み合わせられるとともに、祖先と子孫との関係にあるＧ１とＧ１１３とが論理積で組み合わせられる。次に、レベル１のジャンルの間で兄弟関係が調べられる。Ｇ１とＧ２とは兄弟の関係にある。そのため、Ｇ１に対応する「（−Ｇ１１３＋Ｇ１３）＊Ｇ１」と、Ｇ２に対応する「（Ｇ２１１＋Ｇ２１２）＋Ｇ２２２」とが論理和で結合されて、図３（ｃ）に示すように、検索式「（（−Ｇ１１３＋Ｇ１３）＊Ｇ１）＋（（Ｇ２１１＋Ｇ２１２）＋Ｇ２２２）」が生成される。これが、ジャンルに関しての最終的な検索式となる。
【００７１】
［２−５．検索式の生成］
次に、実際に検索に用いられる検索式の生成方法について、検索ワードの入力例とともに説明する。電子商店街サーバ１は、入力された複数の検索ワードのそれぞれを、ラベルを付した検索ワードに変換する。そして、電子商店街サーバ１は、ラベルを付した検索ワード同士を論理演算子で結合して、検索式を生成する。
【００７２】
ラベルとしては、検索ワードの属性を示す属性ラベルがある。属性ラベルとして、キーワードを示す「kw:」と、商品価格を示す「pr:」とがある。また、ラベルとして、検索ワードに付加された条件を示す付加条件ラベルがある。付加条件ラベルとして、否定を示す「nt:」がある。つまり、否定は、論理演算子ではなく、ラベルで表される。また、付加条件ラベルとして、範囲指定を示すラベルがある。範囲指定を示すは、「〜以上」を示す「mn:」、「〜以下」を示す「mx:」、「〜より大きい」を示す「:gt」、及び、「〜小さい」を示す「lt:」がある。
【００７３】
［例１］
図４（ａ）は、検索ワードの入力例である。また、図４（ｂ）は、生成される検索式の一例である。ユーザは、品種がコシヒカリであり、産地がＡＡ以外である米を検索したいとする。また、ユーザは、この条件に追加して、商品価格が2000円以上であり且つ5000円以下である米を検索したいとする。また、ユーザは、上記の条件に追加して、商品説明に「ＸＸＸ」を含む商品を検索したいとする。そこで、ユーザは、図４（ａ）に示すように、検索ワード入力欄１１１に、「コシヒカリ  ＡＡ産を除く  ＸＸＸ  2000円〜5000円」と入力する。
【００７４】
ここで、商品のジャンルとして、「米」、「コシヒカリ」及び「ＡＡ産」があり、「コシヒカリ」は「米」の子ジャンルであり、「ＡＡ産」は、「コシヒカリ」の子ジャンルであるとする。つまり、正確には、米のジャンルと、品種がコシヒカリである米のジャンルと、産地がＡＡであり且つ品種がコシヒカリである米のジャンルとがある。また、「コシヒカリ」の子ジャンルとして、「ＢＢ産」、「ＣＣ産」等がある。一方、「ＸＸＸ」はジャンル名ではないとする。
【００７５】
先ず、検索ワード「コシヒカリ」がジャンル名であるため、「kw:コシヒカリ」が生成される。検索ワード「ＡＡ産を除く」は、除外指定語である「除く」を含む。そのため、「ＡＡ産を除く」から「を除く」が削除される。また、「ＡＡ産」がジャンル名である。従って、「kw:nt:ＡＡ産」が生成される。また、「ＸＸＸ」から「kw:ＸＸＸ」が生成される。
【００７６】
検索ワード「2000円〜5000円」は、日本の通貨の単位語である「円」と、「〜」を含む。単位語を含む検索ワードが、「〜」を含む場合、検索ワードは、「〜」よりも前の部分と「〜」よりも後の部分に分割される。そして、分割後の各検索ワードから「円」が除かれる。また、各検索ワードに、単位語に対応するラベルと、「〜」に対する検索ワードの位置に応じた付加条件ラベルとが付される。ここでは、「pr:mn:2000」と「pr:mx:5000」とが生成される。
【００７７】
次に、ジャンル名の検索ワード同士を結合するための論理演算子が決定される。「コシヒカリ」と「ＡＡ産」とは親子関係であるため、論理演算子は、「*」である。従って、「kw:コシヒカリ*kw:nt:ＡＡ産」が生成される。次に、ジャンル名の検索ワードと、ジャンル名ではない検索ワードとが「*」で結合される。これは、ユーザが、検索ワードとしてジャンルを指定しなかった場合、そのキーワードで商品を絞り込みたいと考えている蓋然性があるからである。従って、「(kw:コシヒカリ*kw:nt:ＡＡ産)*kw:ＸＸＸ」が生成される。なお、ジャンル名の検索ワードと、ジャンル名ではない検索ワードとが「+」で接続されてもよい。
【００７８】
そして、ジャンル名の検索ワード及びジャンル名ではない検索ワードと、他の検索ワードとが「*」で結合される。これにより、図４（ｂ）に示すように、「((kw:コシヒカリ*kw:nt:ＡＡ産)*kw:ＸＸＸ)*pr:mn:2000*pr:mx:5000」が生成される。これが、検索に用いられる検索式となる。この検索式は、商品名または商品説明の少なくとも何れか一方に「コシヒカリ」及び「ＡＡ産」を含む商品であり、且つ、商品名及び商品説明の何れにも「ＸＸＸ」を含まない商品であり、なお且つ、商品価格が2000円以上であって5000円未満である商品を検索することを意味する。
【００７９】
［例２］
図４（ｃ）は、検索ワードの入力例である。また、図４（ｄ）乃至（ｆ）は、生成される検索式の一例である。ユーザは、Ａ社が製造したデジタルカメラ及びＢ社が製造したデジタルカメラの両方を検索したいとする。また、ユーザは、この条件に追加して、商品価格が１万円未満であるデジタルカメラを検索したいとする。そこで、ユーザは、図４（ｃ）に示すように、検索ワード入力欄１１１に、「デジタルカメラ  Ａ社  Ｂ社  １万円未満」と入力する。
【００８０】
ここで、商品のジャンルとして、「デジタルカメラ」、「Ａ社」及び「Ｂ社」があり、「Ａ社」及び「Ｂ社」は、それぞれ「デジタルカメラ」の子ジャンルであるとする。つまり、正確には、デジタルカメラのジャンルと、デジタルカメラのうちＡ社が製造したデジタルカメラのジャンルと、デジタルカメラのうちＢ社が製造したデジタルカメラのジャンルとがある。
【００８１】
先ず、「kw:デジタルカメラ」、「kw:Ａ社」、「kw:Ｂ社」及び「pr:lt:１万」が生成される。次に、「Ａ社」と「Ｂ社」とが兄弟関係にあるため、「kw:Ａ社+kw:Ｂ社」が生成される。次に、「デジタルカメラ」と、「Ａ社」及び「Ｂ社」とが親子関係にあるため、「kw:デジタルカメラ*(kw:Ａ社+kw:Ｂ社)」が生成される。そして、図４（ｄ）に示すように、「kw:デジタルカメラ*(kw:Ａ社+kw:Ｂ社)*pr:lt:１万」が生成される。
【００８２】
通常は、この検索式が検索に用いられる。しかしながら、複数の検索ワードが表すジャンルの中に兄弟関係にある複数のジャンルが存在する場合には、分配法則に基づいて検索式が分割される。そして、兄弟関係にある複数のジャンルのそれぞれごとに、検索に用いられる検索式が生成される。そして、生成された検索式ごとに検索が行われ、検索式ごとに検索結果が表示される。
【００８３】
図４（ｄ）の検索式においては、「kw:Ａ社」を含む検索式と、「kw:Ｂ社」を含む検索式とに分割される。従って、図４（ｅ）に示すように、「kw:デジタルカメラ*kw:Ａ社*pr:lt:１万」が生成されるとともに、図４（ｆ）に示すように、「kw:デジタルカメラ*kw:Ｂ社*pr:lt:１万」が生成される。
【００８４】
図４（ｅ）の検索式は、商品名または商品説明の少なくとも何れか一方に「デジタルカメラ」及び「Ａ社」を含む商品であり、且つ、商品価格が１万円未満である商品を検索することを意味する。また、図４（ｆ）の検索式は、商品名または商品説明の少なくとも何れか一方に「デジタルカメラ」及び「Ｂ社」を含む商品であり、且つ、商品価格が１万円未満である商品を検索することを意味する。図４（ｄ）の検索式による検索結果と、図４（ｅ）及び図４（ｆ）の検索式による検索結果とは基本的には同じになる。ただし、商品名または商品説明の少なくとも何れか一方に「Ａ社」及び「Ｂ社」を含む商品は、図４（ｅ）の検索式による検索結果と、図４（ｆ）の検索式による検索結果との両方に表れる。
【００８５】
図５は、検索結果ページの画面表示例を示す図である。検索結果ページは、商品の検索結果を示すＷｅｂページである。図５に示すように、検索結果ページは、検索条件設定領域１１０、検索結果表示領域１２０ａ及び検索結果表示領域１２０ｂを含む。
【００８６】
検索条件設定領域１１０の検索ワード入力欄１１１には、トップページで入力された検索ワードが入力されている状態で表示されている。ユーザは、検索ワード入力欄１１１において検索ワードを編集することにより、検索条件を再指定して商品の検索を行うことができる。
【００８７】
検索結果表示領域１２０ａ及び１２０ｂには、それぞれ、検索された商品の情報の一覧が検索結果として表示される。具体的に、検索結果表示領域１２０ａ及び１２０ｂには、検索された商品の画像、商品名、価格、店舗名等が商品ごとに表示される。通常、検索結果表示領域は１つのみ表示されるが、複数の検索式を用いて検索が行われた場合、検索結果表示領域が複数表示される。具体的に、検索結果表示領域１２０ａには、図４（ｅ）の検索式による検索結果が表示される。また、検索結果表示領域１２０ｂには、図４（ｆ）の検索式による検索結果が表示される。このように、デジタルカメラの製造者別に検索結果が表示される。つまり、デジタルカメラの製造者という区分の属性において、検索結果が製造者ごとに分かれて同時に表示される。そのため、ユーザは、検索結果を製造者間で比較することができる。
【００８８】
ただし、属性の内容別に検索結果表示領域が表示されるには条件がある。例えば、図３（ａ）に示すように、Ｇ２１１とＧ２１２とが兄弟関係にある。しかしながら、図３（ｃ）の検索式では、商品名及び商品説明が「Ｇ２１１」及び「Ｇ２１２」の何れも含まない商品も検索される。これは、Ｇ２１１及びＧ２１２に対して祖先でも子孫でもないジャンルがあるからである。そこで、兄弟関係にあるジャンルに対して、祖先でも子孫でもないジャンルのジャンル名が検索ワードとして入力されなかった場合に、複数の検索結果表示領域が表示される。つまり、検索式の中に、兄弟関係にあるジャンルのジャンル名の検索ワードを結合する部分以外で、論理和演算子である「+」が表れていない場合に限り、複数の検索結果表示領域が表示される。
【００８９】
このように、ユーザは、検索ワード入力欄１１１に、商品の属性の内容を表す検索ワードを入力するだけで、詳細な検索条件を指定することができる。このとき、ユーザは、各検索ワードについて、属性の区分を表す語を付加して入力する必要はない。
【００９０】
なお、ジャンル木においては、互いに異なる複数のジャンルに対して、互いに同一のジャンル名が付与される場合がある。例えば、「Ａ社」は、「デジタルカメラ」の子ジャンルであるとともに、「プリンター」の子ジャンルであるとする。この場合、ジャンルとしては、Ａ社が製造したデジタルカメラのジャンルと、Ａ社が製造したプリンターのジャンルとで、明確に区別される。しかしながら、ユーザが検索ワードとして「Ａ社」と入力した場合、「Ａ社」だけでは、「Ａ社」に対応する１つのジャンルを判別することができない。
【００９１】
そこで、例えば、複数の検索ワードがそれぞれ表すジャンル同士の位置関係に応じて、各検索ワードにジャンルが割り当てられるようにしてもよい。例えば、複数の検索ワードがそれぞれ表すジャンルの間で兄弟関係ができるようなジャンルが優先的に割り当てられる。次に、複数の検索ワードがそれぞれ表すジャンルの間で親子関係ができるようなジャンルが優先的に割り当てられる。次に、複数の検索ワードがそれぞれ表すジャンルの間で祖先と子孫との関係ができるようなジャンルが優先的に割り当てられる。
【００９２】
例えば、検索ワードとして「Ａ社  Ｂ社」と入力されたとする。また、「Ｂ社」は、「プリンター」の子ジャンルではないとする。「Ａ社」と「Ｂ社」とは「デジタルカメラ」の子ジャンルとして互いに兄弟の関係にある。そこで、「Ａ社」に対して、Ａ社が製造するデジタルカメラのジャンルが割り当てられる。また、検索ワードとして「プリンター  Ａ社」と入力されたとする。「プリンター」と「Ａ社」とは互いに親子の関係にある。そこで、「Ａ社」に対して、Ａ社が製造するプリンターのジャンルが割り当てられる。
【００９３】
また、「Ａ社  ミネラルウォーター」が入力されたとする。「ミネラルウォーター」は、ジャンルを表すが、「Ａ社」と「ミネラルウォーター」とは、兄弟でもなく且つ祖先と子孫でもないとする。この場合、例えば、「Ａ社」に対して、Ａ社が製造するデジタルカメラのジャンルと、Ａ社が製造するプリンターのジャンルとのうち、何れか一方が割り当てられてもよいし、両方が割り当てられてもよい。両方が割り当てられる場合、電子商店街サーバ１は、例えば、互いに異なるジャンルを表す２つの「Ａ社」が入力されたものとみなして処理を行ってもよい。
【００９４】
［３．電子商店街サーバの構成］
次に、電子商店街サーバ１の構成について、図６及び図７を用いて説明する。
【００９５】
図６は、本実施形態に係る電子商店街サーバ１の概要構成の一例を示すブロック図である。図６に示すように、電子商店街サーバ１は、通信部１１と、記憶部１２と、入出力インターフェース１３と、システム制御部１４と、を備えている。そして、システム制御部１４と入出力インターフェース１３とは、システムバス１５を介して接続されている。
【００９６】
通信部１１は、ネットワークＮＷに接続して、ユーザ端末３等との通信状態を制御するようになっている。
【００９７】
記憶部１２は、例えば、ハードディスクドライブ等により構成されている。記憶部１２は、本発明における語記憶手段及び文字情報記憶手段の一例である。この記憶部１２には、会員情報ＤＢ１２ａ、ジャンル情報ＤＢ１２ｂ、商品情報ＤＢ１２ｃ、除外指定語ＤＢ１２ｄ、単位語ＤＢ１２ｅ、範囲指定語ＤＢ１２ｆ等のデータベースが構築されている。
【００９８】
図７（ａ）は、会員情報ＤＢ１２ａに登録される内容の一例を示す図である。会員情報ＤＢ１２ａには、ショッピングシステムＳに会員登録しているユーザに関する会員情報が登録される。具体的に、会員情報ＤＢ１２ａには、ユーザＩＤ、パスワード、ニックネーム、氏名、生年月日、性別、郵便番号、住所、電話番号、電子メールアドレス等のユーザの属性の情報が、ユーザごとに対応付けて登録される。ユーザＩＤは、ユーザの識別情報である。
【００９９】
図７（ｂ）は、ジャンル情報ＤＢ１２ｂに登録される内容の一例を示す図である。ジャンル情報ＤＢ１２ｂには、商品のジャンルに関するジャンル情報が登録されている。具体的に、ジャンル情報ＤＢ１２ｂには、ジャンルＩＤ、ジャンル名、ジャンルのレベル、親ジャンルＩＤ及び子ジャンルＩＤリスト等のジャンルの属性の情報が、ジャンルごとに対応付けて登録される。ジャンルＩＤは、ジャンルの識別情報である。親ジャンルＩＤは、ジャンル情報によって定義されるジャンルの親ジャンルのジャンルＩＤである。子ジャンルＩＤリストは、ジャンル情報によって定義されるジャンルの子ジャンルのジャンルＩＤのリストである。子ジャンルＩＤリストは、ジャンル情報によって定義されるジャンルが子ジャンルを有する場合に設定される。こうして、複数のジャンル情報が木構造で記憶される。ジャンル情報によって、各ジャンルが親ジャンル及び子ジャンルと関連付けられるからである。ジャンル情報は、例えば、電子商店街の管理者等により設定される。具体的に、管理者等が、如何なるジャンルを設けるかや、ジャンルの構造等を決定し、決定された内容に従ってジャンル情報を設定する。
【０１００】
図７（ｃ）は、商品情報ＤＢ１２ｃに登録される内容の一例を示す図である。商品情報ＤＢ１２ｃには、電子商店街で販売されている商品に関する商品情報が登録される。具体的に、商品情報ＤＢ１２ｃには、商品ＩＤ、店舗ＩＤ、商品コード、ジャンルＩＤ、商品名、商品画像のＵＲＬ（Uniform Resource Locator）、商品説明、商品価格等の商品の属性値が、店舗が販売する商品ごとに対応付けて登録される。属性値は、商品の属性の内容を示す情報である。属性値は、例えば、数値や文字等によって表される情報である。属性値は、属性の区分ごとに登録される。商品ＩＤは、店舗等が、販売する商品を管理するための商品の識別情報である。店舗ＩＤは、商品の販売元の店舗を示す。商品コードは、商品を識別するコード番号である。商品コードとしては、例えば、ＪＡＮ（Japanese Article Number Code）コード等がある。ジャンルＩＤは、商品が属するジャンルのジャンルＩＤである。商品情報には、レベルが最も低いジャンルのジャンルＩＤが設定される。つまり、最も細分化されたジャンルのジャンルＩＤが設定される。なお、本実施形態では、ジャンル名として入力された検索ワードは、キーワード検索で用いられる。そのため、ジャンルＩＤは商品の検索に用いられないので、ジャンルＩＤは商品情報に含まれていなくてもよい。商品名及び商品説明は、それぞれ一文字以上の文字で表される情報である。商品名及び商品説明は、本発明における文字情報の一例である。
【０１０１】
図７（ｄ）は、除外指定語ＤＢ１２ｄに登録される内容の一例を示す図である。除外指定語ＤＢ１２ｄには、除外指定語が複数登録されている。例えば、除外指定語ＤＢ１２ｄには、「除く」、「以外」、「含まない」、「除外」等が登録されている。
【０１０２】
図７（ｅ）は、単位語ＤＢ１２ｅに登録される内容の一例を示す図である。単位語ＤＢ１２ｅには、単位語が登録される。具体的に、単位語ＤＢ１２ｅには、単位語及び単位語に対応する属性ラベルが単位語ごとに対応付けて登録されている。例えば、「円」と「pr」とが対応付けて登録されている。このように、単位指定語は、属性の区分と関連付けられる。
【０１０３】
図７（ｆ）は、範囲指定語ＤＢ１２ｆに登録される内容の一例を示す図である。範囲指定語ＤＢ１２ｆには、範囲指定語が複数登録されている。具体的に、範囲指定語ＤＢ１２ｆには、範囲指定語及び範囲指定語に対応する付加条件ラベルが範囲指定語ごとに対応付けて登録されている。例えば、「以上」と「mn」、「以下」と「mx」、「より高い」と「gt」、「より安い」と「lt」、「未満」と「lt」、「〜」と「mn;mx」が、それぞれ対応付けて登録されている。なお、「mn;mx」は、検索ワードが２つに分割され、「〜」の前方の検索ワードに「mn」が付加され、「〜」の後方の検索ワードに「mx」が付加されることを示す。
【０１０４】
次に、記憶部１２に記憶されるその他の情報について説明する。記憶部１２には、Ｗｅｂページを表示するためのＨＴＭＬ（HyperText Markup Language）文書、ＸＭＬ（Extensible Markup Language）文書、画像データ、テキストデータ、電子文書等の各種データが記憶されている。また、記憶部１２には、管理者等により設定された各種の設定値が記憶されている。
【０１０５】
また、記憶部１２には、オペレーティングシステム、ＷＷＷ（World Wide Web）サーバプログラム、ＤＢＭＳ（Database Management System）、電子商取引管理プログラム、検索制御プログラム等の各種プログラムが記憶されている。電子商取引管理プログラムは、電子商店街のＷｅｂページの生成、商品の注文に関する処理等の電子商店街に関する処理を実行するためのプログラムである。検索制御プログラムは、本発明における検索プログラムの一例である。検索制御プログラムは、ユーザにより入力された検索ワードに基づいて検索式を生成し、検索式に基づいて商品を検索するためのプログラムである。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークＮＷを介して取得されるようにしてもよいし、ＤＶＤ（Digital Versatile Disc）等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。
【０１０６】
入出力インターフェース１３は、通信部１１及び記憶部１２とシステム制御部１４との間のインターフェース処理を行うようになっている。
【０１０７】
システム制御部１４は、ＣＰＵ１４ａ、ＲＯＭ（Read Only Memory）１４ｂ、ＲＡＭ（Random Access Memory）１４ｃ等により構成されている。そして、システム制御部１４は、ＣＰＵ１４ａが、各種プログラムを読み出し実行することにより、本発明における第１判定手段、検索手段、第２判定手段、決定手段及び提供手段として機能するようになっている。
【０１０８】
なお、電子商店街サーバ１が、複数のサーバ装置で構成されてもよい。例えば、商品の検索を行うサーバ装置、商品の注文等に関する処理を行うサーバ装置、ユーザ端末３からのリクエストに応じてＷｅｂページを送信するサーバ装置、及びデータベースを管理するサーバ装置等が、互いにＬＡＮ等で接続されてもよい。
【０１０９】
［４．ショッピングシステムの動作］
次に、ショッピングシステムＳの動作について、図８乃至図１４用いて説明する。
【０１１０】
図８は、本実施形態に係る電子商店街サーバ１のシステム制御部１４の検索リクエスト受信時処理における処理例を示すフローチャートである。
【０１１１】
ユーザ端末３の画面にトップページまたは検索結果ページが表示されている状態において、ユーザは、検索ワード入力欄１１１に、１または複数の検索ワードを入力する。そして、ユーザは、Enterキー等を入力するか、または、検索ボタン１１２を選択する。すると、ユーザ端末３は、入力された検索ワードを含む検索リクエストを電子商店街サーバ１へ送信する。検索リクエストは、検索の要求を示すメッセージである。検索リクエスト受信時処理は、電子商店街サーバ１が検索リクエストを受信したときに開始される。
【０１１２】
図８に示すように、システム制御部１４は、属性判定処理を実行する（ステップＳ１）。属性判定処理では、検索リクエストに含まれる各検索ワードが表す内容に対応する属性の区分が判定される。属性判定処理の詳細については後述する。
【０１１３】
次いで、システム制御部１４は、検索式生成処理を実行する（ステップＳ２）。検索式生成処理では、検索リクエストに含まれる各検索ワードと、属性判定処理における属性の区分の判定結果とに基づいて、検索式が生成される。検索式生成処理の詳細については後述する。
【０１１４】
次いで、システム制御部１４は、検索処理を実行する（ステップＳ３）。検索処理では、生成された検索式に基づいて商品の検索が行われる。そして、検索結果を示す検索結果リストが生成される。検索結果リストには、検索された商品の商品ＩＤが登録されている。検索処理の詳細については後述する。
【０１１５】
次いで、システム制御部１４は、検索結果ページのＨＴＭＬ文書を生成する（ステップＳ４）。具体的に、システム制御部１４は、検索結果リストに登録されている商品ＩＤに対応する商品情報を、商品ＩＤごとに商品情報ＤＢ１２ｃから取得する。次いで、システム制御部１４は、商品情報に基づいて、検索結果表示領域を表示するためのデータを生成する。そして、システム制御部１４は、検索結果表示領域用のデータを含むＨＴＭＬ文書を生成する。ここで、システム制御部１４は、検索メイン処理において複数の検索結果リストが生成された場合には、検索結果リストごとに検索結果表示領域用のデータを生成し、生成した各データを含むＨＴＭＬ文書を生成する。ユーザが兄弟関係にある複数のジャンルのジャンル名をそれぞれ検索ワードとして入力した場合に、検索結果リストが複数生成される。例えば、システム制御部１４は、検索結果リストごとに、別々のtableタグ内に、検索された各商品の商品名、商品価格、店舗名等の情報を設定する。これらの情報は、本発明における検索対象情報の一例である。
【０１１６】
システム制御部１４は、検索結果ページのＨＴＭＬ文書を生成すると、このＨＴＭＬ文書を、検索リクエストの送信元のユーザ端末３へ送信する（ステップＳ５）。システム制御部１４は、この処理を終えると、検索リクエスト受信時処理を終了させる。ユーザ端末３は、受信したＨＴＭＬ文書に基づいて、検索結果ページを画面に表示させる。複数の検索結果リストに基づいてＨＴＭＬ文書が生成された場合、例えば、図５に示すように、検索結果ページには、複数の検索結果表示領域が表示される。システム制御部１４は、ステップＳ４及びＳ５を実行することにより、提供手段として、ジャンル木において互いに兄弟の関係にある複数の検索ワードのそれぞれに応じた検索条件ごとに、検索された商品の情報が分かれて表示されるように、検索された商品の情報をユーザ端末３へ提供する。
【０１１７】
図９は、本実施形態に係る電子商店街サーバ１のシステム制御部１４の属性判定処理における処理例を示すフローチャートである。
【０１１８】
図９に示すように、システム制御部１４は、検索リクエストから検索ワードを１つ取得する（ステップＳ１１）。次いで、システム制御部１４は、取得した検索ワードの属性区分及び付加条件を初期化する。（ステップＳ１２）。
【０１１９】
次いで、システム制御部１４は、取得した検索ワードと一致するジャンル名を、ジャンル情報ＤＢ１２ｂから検索する（ステップＳ１３）。なお、ジャンル名の中には、「・」で複数の名称を結合したジャンル名がある。この場合、システム制御部１４は、複数の名称のうち何れか１つが検索ワードと一致するジャンル名も、検索ワードと一致するジャンル名として検索する。例えば、ジャンル名が「美容・コスメ・香水」である場合、検索ワードが「美容」、「コスメ」、「香水」の何れかであれば、検索ワードとジャンル名とが一致する。
【０１２０】
次いで、システム制御部１４は、第２判定手段として、検索結果に基づいて、取得した検索ワードと一致するジャンル名があるか否かを判定する（ステップＳ１４）。なお、システム制御部１４は、検索ワードに除外指定語が含まれていたとしても、除外指定語が含まれている状態で、検索を行う。これは、除外指定語が含まれるジャンル名がジャンル情報ＤＢ１２ｂに登録されている可能性があるからである。また、同様に理由により、システム制御部１４は、検索ワードに単位語が含まれていたとしても、単位語が含まれている状態で、検索を行う。
【０１２１】
システム制御部１４は、検索ワードと一致するジャンル名があると判定した場合には（ステップＳ１４：ＹＥＳ）、取得した検索ワードの属性区分として、ジャンルを設定する（ステップＳ１５）。次いで、システム制御部１４は、検索ワードと一致するジャンル名を含むジャンル情報から、ジャンルＩＤ及びレベルを取得する（ステップＳ１６）。そして、システム制御部１４は、取得したジャンルＩＤ及びレベルを、取得した検索ワードに対応付けてＲＡＭ１４ｃに記憶させる。なお、システム制御部１４は、検索ワードが複数のジャンルのジャンル名と一致する場合、それぞれのジャンルＩＤ及びレベルを、ＲＡＭ１４ｃに記憶させる。
【０１２２】
ステップＳ１４において、システム制御部１４は、検索ワードと一致するジャンル名がないと判定した場合には（ステップＳ１４：ＮＯ）、検索ワードから、除外指定語ＤＢ１２ｄに登録されている各除外指定語を検索する（ステップＳ１７）。次いで、システム制御部１４は、検索結果に基づいて、検索ワードに何れかの除外指定語が含まれているか否かを判定する（ステップＳ１８）。このとき、システム制御部１４は、除外指定語が含まれていると判定した場合には（ステップＳ１８：ＹＥＳ）、取得した検索ワードの付加条件として、否定を設定する（ステップＳ１９）。次いで、システム制御部１４は、取得した検索ワードから除外指定語を削除する（ステップＳ２０）。次いで、システム制御部１４は、除外指定語が削除された検索ワードと一致するジャンル名を、ジャンル情報ＤＢ１２ｂから検索する（ステップＳ２１）。そして、システム制御部１４は、第２判定手段として、検索結果に基づいて、除外指定語が削除された検索ワードと一致するジャンル名があるか否かを判定する（ステップＳ２２）。このとき、システム制御部１４は、除外指定語が削除された検索ワードと一致するジャンル名があると判定した場合には（ステップＳ２２：ＹＥＳ）、ステップＳ１５に移行する。
【０１２３】
システム制御部１４は、ステップＳ１８において除外指定語が含まれていないと判定した場合（ステップＳ１８：ＮＯ）、または、ステップＳ２２において検索ワードと一致するジャンル名がないと判定した場合には（ステップＳ２２：ＮＯ）、図１０に示すように、取得した検索ワードから、単位指定語ＤＢ１２ｅに登録されている単位指定語を検索する（ステップＳ５１）。なお、単位指定語ＤＢ１２ｅには、「円」が登録されているので、システム制御部１４は、検索ワードから「円」を検索する。次いで、システム制御部１４は、検索結果に基づいて、検索ワードからに「円」が含まれているか否かを判定する（ステップＳ５２）。これにより、システム制御部１４は、第１判定手段として、検索ワードが商品価格を表す語であるか否かを判定する。このとき、システム制御部１４は、検索ワードに「円」が含まれていると判定した場合には（ステップＳ５２：ＹＥＳ）。取得した検索ワードの属性区分として、商品価格を設定する（ステップＳ５３）。実際には、単位指定語ＤＢ１２ｅにおいて「円」と対応付けられている属性ラベル「pr」が設定される。
【０１２４】
なお、本実施形態においては、理解の容易のため、「円」を含む検索ワードが、商品価格の内容としての金額を表す検索ワードと判定されている。しかしながら、システム制御部１４は、検索ワードをより詳細に解析することによって、金額を表す検索ワードであるか否かを判定してもよい。つまり、システム制御部１４は、検索ワードが「円」を含むことを、検索ワードが商品価格を表す語であると判定するための最小限の条件としつつも、他の条件も用いて判定を行ってもよい。例えば、システム制御部１４は、検索ワードが、「円」とともに数字を含むか否かを判定してもよい。また、システム制御部１４は、検索ワードの文字の形式が、商品価格の表現形式と一致するか否かを判定してもよい。例えば、システム制御部１４は、検索ワードが、「０」〜「９」の何れかの文字で始まり、次いで、「０」〜「９」、「千」、「万」等の文字が０回以上続き、その後に「円」が表れる場合に、商品価格を表すと判定してもよい。
【０１２５】
次いで、システム制御部１４は、取得した検索ワードから「円」を削除する（ステップＳ５４）。次いで、システム制御部１４は、「円」を削除した検索ワードから、範囲指定語ＤＢ１２ｆに登録されている各範囲指定語を検索する（ステップＳ５５）。次いで、システム制御部１４は、検索結果に基づいて、検索ワードに何れかの範囲指定語が含まれているか否かを判定する（ステップＳ５６）。このとき、システム制御部１４は、範囲指定語が含まれていると判定した場合には（ステップＳ５６：ＹＥＳ）、取得した検索ワードの付加条件として、検索ワードに含まれる範囲指定語に対応する大小関係を設定する（ステップＳ５７）。実際には、範囲指定語ＤＢ１２ｆにおいて、検索ワードに含まれる範囲指定語に対応付けられている付加条件ラベルが設定される。次いで、システム制御部１４は、検索ワードから範囲指定語を削除する（ステップＳ５８）。
【０１２６】
なお、システム制御部１４は、範囲指定語が「〜」である場合、検索ワードを「〜」の前の部分と後の部分とに分割し、前の部分の付加条件ラベルとして「mn」を設定し、後の部分の付加条件ラベルとして「mx」を設定する。
【０１２７】
ステップＳ５２において、システム制御部１４は、検索ワードに「円」が含まれていないと判定した場合には（ステップＳ５２：ＮＯ）、取得した検索ワードの属性区分として、キーワードを設定する（ステップＳ５９）。
【０１２８】
システム制御部１４は、ステップＳ５６において検索ワードに範囲指定語が含まれていないと判定した場合（ステップＳ５６：ＮＯ）、あるいは、ステップＳ１６、Ｓ５８またはＳ５９の処理を終えると、検索リクエストの中にまだ取得していない検索ワードがあるか否かを判定する（ステップＳ６０）。このとき、システム制御部１４は、まだ取得していない検索ワードがあると判定した場合には（ステップＳ６０：ＹＥＳ）、まだ取得していない検索ワードのうち１つを取得する（ステップＳ６１）。次いで、システム制御部１４は、ステップＳ１２に移行する。システム制御部１４は、ステップＳ１２〜Ｓ６１の処理を繰り返すことにより、検索リクエストに含まれる各検索ワードに対して属性区分を判定する。そして、システム制御部１４は、全ての検索ワードを取得したと判定した場合には（ステップＳ６０：ＮＯ）、属性判定処理を終了させる。
【０１２９】
図１１は、本実施形態に係る電子商店街サーバ１のシステム制御部１４の検索式生成処理における処理例を示すフローチャートである。
【０１３０】
図１１に示すように、システム制御部１４は、属性区分が判定された検索ワードの中に、属性区分がジャンルである検索ワードがあるか否かを判定する（ステップＳ１０１）。このとき、システム制御部１４は、属性区分がジャンルである検索ワードがあると判定した場合には（ステップＳ１０１：ＹＥＳ）、属性区分がジャンルである検索ワードに対応付けられたレベルのうち、最下位のレベルを、レベル番号Ｌに設定する（ステップＳ１０２）。図３の例では、レベル３が最下位のレベルである。
【０１３１】
次いで、システム制御部１４は、属性区分がジャンルである検索ワードのうち、対応付けられているレベルがＬである検索ワードがあるか否かを判定する（ステップＳ１０３）。なお、レベル番号Ｌが最下位のレベルの番号である場合、対応付けられているレベルの番号がＬである検索ワードは必ず存在する。図３の例では、「Ｇ１１３」、「Ｇ２１１」、「Ｇ２１２」及び「Ｇ２２２」に対して、最下位のレベルが対応付けられている。このとき、システム制御部１４は、対応付けられているレベルがＬである検索ワードがあると判定した場合には（ステップＳ１０３：ＹＥＳ）、対応付けられているレベルの番号がＬである各検索ワードに、キーワードを示す属性ラベルと、属性判定処理で設定された付加条件に対応する付加条件ラベルとを接続して、単項式を生成する（ステップＳ１０４）。例えば、入力された検索ワードが「ＡＡ産を除く」であるとする。この場合、検索ワードから「を除く」が削除されて、付加条件は否定となる。そのため、単項式は、「kw:nt:ＡＡ産」となる。入力された検索ワードが「ＡＡ産」である場合、単項式は、「kw:ＡＡ産」となる。
【０１３２】
次いで、システム制御部１４は、生成した各単項式について、単項式の元となった検索ワードに対応付けられたジャンルＩＤを、レベルＬのジャンルＩＤとして単項式に対応付ける（ステップＳ１０５）。次いで、システム制御部１４は、レベル番号Ｌが、属性区分がジャンルである検索ワードに対応付けられたレベルのうち最下位のレベルを示すか否かを判定する（ステップＳ１０６）。このとき、システム制御部１４は、レベル番号Ｌが最下位のレベルを示すと判定した場合には（ステップＳ１０６：ＹＥＳ）、各式に対応付けられたレベルＬのジャンルＩＤが示すジャンルの親ジャンルのジャンルＩＤを取得する（ステップＳ１０７）。具体的に、システム制御部１４は、ジャンル情報ＤＢ１２ｂから、ジャンルＩＤに対応する親ジャンルＩＤを取得する。次いで、システム制御部１４は、親のジャンルのジャンルＩＤが互いに一致する複数の式があるか否かを判定する（ステップＳ１０８）。このとき、システム制御部１４は、親のジャンルのジャンルＩＤが互いに一致する複数の式があると判定した場合には（ステップＳ１０８：ＹＥＳ）、その複数の式を論理和演算子で結合して新しい式を生成する（ステップＳ１０９）。親ジャンルが一致する複数のジャンルは、互いに兄弟の関係にあるからである。そして、システム制御部１４は、新しい式を検索式の生成に用いる式とし、新しい式の生成元となった複数の式を検索式の生成に用いる式から除外する。図３の例では、Ｇ２１１とＧ２１２の親ジャンルが一致するので、「Ｇ２１１＋Ｇ２１２」が新しく生成される。
【０１３３】
次いで、システム制御部１４は、ステップＳ１０７において各式について取得した親ジャンルのジャンルＩＤを、それぞれレベルＬ−１のジャンルＩＤとして、対応する式に対応付ける（ステップＳ１１０）。図３の例では、「−Ｇ１１３」にＧ１１のジャンルＩＤ、「Ｇ２１１＋Ｇ２１２」にＧ２１のジャンルＩＤ、「Ｇ２２２」にＧ２２のジャンルＩＤが対応付けられる。
【０１３４】
次いで、システム制御部１４は、レベル番号Ｌが１であるか否かを判定する（ステップＳ１１１）。このとき、システム制御部１４は、レベル番号Ｌが１ではないと判定した場合には（ステップＳ１１１：ＮＯ）、レベル番号Ｌから１を減算する（ステップＳ１１２）。次いで、システム制御部１４は、ステップＳ１０３に移行する。
【０１３５】
ステップＳ１０３〜Ｓ１０５において、システム制御部１４は、レベル番号Ｌが最下位のレベルを示す場合と同様に処理を行う。図３の例では、「Ｇ１３」に対して、レベル２が対応付けられている。そのため、単項式「Ｇ１３」が生成される。また、「Ｇ１３」に、Ｇ１３のジャンルＩＤが対応付けられる。
【０１３６】
次いで、システム制御部１４は、ステップＳ１０６において、レベル番号Ｌが最下位のレベルを示さないと判定した場合には（ステップＳ１０６：ＮＯ）、今回生成した単項式と、以前に生成済みの式との間で、対応付けられているレベルＬのジャンルＩＤが一致するものがあるか否かを判定する（ステップＳ１１３）。つまり、システム制御部１４は、生成済みの式に対応するレベルＬ＋１のジャンルの中に、今回生成した単項式に対応するレベルＬのジャンルを親ジャンルとするものがあるか否かを判定する。図３の例において、レベル２の段階では、そのような式は存在しない。このとき、システム制御部１４は、今回生成した単項式と、以前に生成済みの式との間で、対応付けられているレベルＬのジャンルＩＤが一致するものがあると判定した場合には（ステップＳ１１３：ＹＥＳ）、今回生成した単項式と、以前に生成済みの式との間で、レベルＬのジャンルＩＤが互いに一致する複数の式を論理積演算子で結合して新しい式を生成する（ステップＳ１１４）。そして、システム制御部１４は、新しい式を検索式の生成に用いる式とし、新しい式の生成元となった複数の式を検索式の生成に用いる式から除外する。
【０１３７】
システム制御部１４は、今回生成した単項式と、以前に生成済みの式との間で、対応付けられているレベルＬのジャンルＩＤが一致するものがないと判定した場合（ステップＳ１１３：ＮＯ）、または、ステップＳ１１４の処理を終えた場合には、ステップＳ１０７に移行する。
【０１３８】
なお、システム制御部１４は、ステップＳ１０３において、対応付けられているレベルがＬである検索ワードがないと判定した場合には（ステップＳ１０３：ＮＯ）、ステップＳ１０４〜Ｓ１０６の処理を実行せずに、ステップＳ１０７に移行する。
【０１３９】
ステップＳ１０７〜Ｓ１１１において、システム制御部１４は、レベル番号Ｌが最下位のレベルを示す場合と同様に処理を行う。図３の例では、「−Ｇ１１３」に対して、Ｇ１３の親ジャンルであるＧ１のジャンルＩＤが取得される。また、「Ｇ２１１＋Ｇ２１２」に対して、Ｇ２１の親ジャンルであるＧ２のジャンルＩＤが取得される。また、「Ｇ２２２」に対して、Ｇ２２の親ジャンルであるＧ２のジャンルＩＤが取得される。また、「Ｇ１３」に対して、Ｇ１３の親ジャンルであるＧ１のジャンルＩＤが取得される。そして、「−Ｇ１１３」と「Ｇ１３」とで、取得されたジャンルＩＤが一致するため、「−Ｇ１１３＋Ｇ１３」が生成される。この式のレベル１のジャンルＩＤとして、Ｇ１のジャンルＩＤが対応付けられる。また同様に、「（Ｇ２１１＋Ｇ２１２）＋Ｇ２２２」が生成される。この式のレベル１のジャンルＩＤとして、Ｇ２のジャンルＩＤが対応付けられる。
【０１４０】
このようにして、システム制御部１４は、レベル番号Ｌが１になるまで、ステップＳ１０２〜１１４の処理を繰り返す。図３の例では、レベル番号Ｌが１となったとき、ステップＳ１０３〜Ｓ１０５において、単項式「Ｇ１」が生成される。また、「Ｇ１」に、Ｇ１のジャンルＩＤが対応付けられる。また、ステップＳ１１３において、今回生成された単項式である「Ｇ１」と、生成済みの式である「−Ｇ１１３＋Ｇ１３」とで、レベル１のジャンルＩＤが一致する。従って、ステップＳ１１４において、「（−Ｇ１１３＋Ｇ１３）＊Ｇ１」が生成される。また、レベル１の親ジャンルであるレベル０のジャンルは、ジャンルトップのみである。従って、ステップＳ１０８においては、全ての式において親ジャンルのジャンルＩＤが一致するため、ステップＳ１０９において、「（（−Ｇ１１３＋Ｇ１３）＊Ｇ１）＋（（Ｇ２１１＋Ｇ２１２）＋Ｇ２２２）」が生成される。
【０１４１】
このように、システム制御部１４は、決定手段として、ジャンルを表す検索ワードが複数ある場合、ジャンル木におけるこれらの検索ワード同士の位置関係に基づいて、各検索ワードに応じた検索条件を組み合わせる方法を決定する。具体的に、システム制御部１４は、ステップＳ１０８及びＳ１０９において、ある複数の検索ワードがジャンル木において互いに兄弟の関係である場合、その複数の検索ワードのそれぞれに応じた検索条件を互いに論理和で組み合わせることを決定する。また、システム制御部１４は、ある複数の検索ワードがジャンル木において互いに兄弟の関係でもなく、且つ、祖先と子孫との関係でもない場合、その複数の検索ワードのそれぞれに応じた検索条件を互いに論理和で組み合わせることを決定する。また、システム制御部１４は、ステップＳ１１３及びＳ１１４において、ある検索ワードが他の少なくとも１つの検索ワードの祖先である場合、祖先の方の検索ワードに応じた検索条件と、子孫の方の検索ワードに応じた検索条件とを論理積で組み合わせることを決定する。
【０１４２】
システム制御部１４は、ステップＳ１１１において、レベル番号Ｌが１であると判定した場合には（ステップＳ１１１：ＹＥＳ）、属性区分が判定された検索ワードのうち、属性区分がジャンルではない各検索ワードに、属性区分に対応する属性ラベルと、付加条件に対応する付加条件ラベルとを接続して、単項式を生成する（ステップＳ１１５）。例えば、入力された検索ワードが「ＸＸＸ」である場合、「kw:ＸＸＸ」が生成される。また例えば、入力された検索ワードが「１０００円より安い」である場合、「pr:lt:１０００」が生成される。
【０１４３】
次いで、システム制御部１４は、ステップＳ１１５において生成された各単項式と、ステップＳ１０２〜Ｓ１１４において最終的に生成した式とを、論理積演算子で接続して、検索式を生成する（ステップＳ１１６）。システム制御部１４は、この処理を終えると、検索式生成処理を終了させる。
【０１４４】
なお、システム制御部１４は、属性判定処理において検索ワードが複数のジャンルのジャンル名と一致する場合、上述したように、この検索ワードが表す複数のジャンルと他の検索ワードが表すジャンルとの関係が兄弟関係や親子関係等の関係になるように検索ワードにジャンルを割り当ててもよい。そして、システム制御部１４は、ジャンルの割り当てに基づいて検索式を生成してもよい。
【０１４５】
図１２は、本実施形態に係る電子商店街サーバ１のシステム制御部１４の検索処理における処理例を示すフローチャートである。
【０１４６】
図１２に示すように、システム制御部１４は、属性判定処理において属性区分が判定された検索ワードの中に、属性区分がジャンルである検索ワードがあるか否かを判定する（ステップＳ２０１）。このとき、システム制御部１４は、属性区分がジャンルである検索ワードがないと判定した場合には（ステップＳ２０１：ＮＯ）、検索メイン処理を実行する（ステップＳ２０４）。検索メイン処理では、１個の検索式に対応した検索が行われる。この場合、検索式生成処理で生成された検索式そのものが、検索メイン処理で用いられる。
【０１４７】
一方、システム制御部１４は、属性区分がジャンルである検索ワードがあると判定した場合には（ステップＳ２０１：ＹＥＳ）、属性区分がジャンルである検索ワードの中に、対応するジャンルが兄弟関係にある複数の検索ワードがあるか否かを判定する（ステップＳ２０２）。この判定は、各検索ワードに対応付けられたジャンルＩＤと、ジャンル情報ＤＢ１２ｂとに基づいて行われる。このとき、システム制御部１４は、対応するジャンルが兄弟関係にある複数の検索ワードがないと判定した場合には（ステップＳ２０２：ＮＯ）、ステップＳ２０４に移行する。
【０１４８】
一方、システム制御部１４は、対応するジャンルが兄弟関係にある複数の検索ワードがあると判定した場合には（ステップＳ２０２：ＹＥＳ）、属性区分がジャンルである検索ワードの中に、兄弟関係にある複数の検索ワードに対して祖先でも子孫でもない検索ワードがあるか否かを判定する（ステップＳ２０３）。この判定は、各検索ワードに対応付けられたジャンルＩＤと、ジャンル情報ＤＢ１２ｂとに基づいて行われる。このとき、システム制御部１４は、兄弟関係にある複数の検索ワードに対して祖先でも子孫でもない検索ワードがあると判定した場合には（ステップＳ２０３：ＹＥＳ）、ステップＳ２０４に移行する。システム制御部１４は、ステップＳ２０４を実行すると、検索処理を終了させる。
【０１４９】
一方、システム制御部１４は、兄弟関係にある複数の検索ワードに対して祖先でも子孫でもない検索ワードがないと判定した場合には（ステップＳ２０３：ＮＯ）、兄弟関係にある複数の検索ワードのうち１つを選択する（ステップＳ２０５）。次いで、システム制御部１４は、検索式生成処理において生成された検索式から、兄弟関係にある複数の検索ワードのうち選択した検索ワード以外の検索ワードを削除した検索式を生成する（ステップＳ２０６）。例えば、図４（ｄ）〜図４（ｆ）の例において、「Ａ社」が選択された場合、図４（ｅ）に示す検索式が生成される。次いで、システム制御部１４は、検索メイン処理を実行する（ステップＳ２０７）。この場合、ステップＳ２０６で生成された検索式が、検索メイン処理で用いられる。
【０１５０】
次いで、システム制御部１４は、兄弟関係にある複数の検索ワードの中にまだ選択していない検索ワードがあるか否かを判定する（ステップＳ２０８）。このとき、システム制御部１４は、まだ選択していない検索ワードがあると判定した場合には（ステップＳ２０８：ＹＥＳ）、選択していない検索ワードのうち１つを選択する（ステップＳ２０９）。次いで、システム制御部１４は、ステップＳ２０６に移行する。システム制御部１４は、ステップＳ２０６〜Ｓ２０９の処理を繰り返すことにより、兄弟関係にある複数の検索ワードのそれぞれごとに商品を検索する。そして、システム制御部１４は、全ての検索ワードを選択したと判定した場合には（ステップＳ２０８：ＮＯ）、検索処理を終了させる。
【０１５１】
図１３及び図１４は、本実施形態に係る電子商店街サーバ１のシステム制御部１４の検索メイン処理における処理例を示すフローチャートである。
【０１５２】
図１３に示すように、システム制御部１４は、検索式を、逆ポーランド記法の検索式に変換する（ステップＳ３０１）。例えば、図４（ｂ）の式は、「kw:コシヒカリkw:nt:ＡＡ産*kw:ＸＸＸ*pr:mn:2000*pr:mx:5000*」に変換される。検索式を逆ポーランド記法で表す理由は、検索の処理を簡易に行うためである。つまり、検索式の先頭から、要素を順次取得して、取得した要素の順に処理を実行すれば、検索式に応じた検索の処理が行えるからである。ここで、要素とは、単項式及び論理演算子である。単項式は、ラベルが付加された検索ワードである。図４（ｂ）の例では、始めに「kw:コシヒカリ」を用いて商品が検索され、次に「kw:nt:ＡＡ産」を用いて商品が検索される。次に、「*」に基づいて、「kw:コシヒカリ」で検索された商品の集合と、「kw:nt:ＡＡ産」で検索された商品の集合の積集合が抽出される。次に、「pr:mn:2000」を用いて商品が検索され、次に、「*」に基づいて、先に抽出された商品の集合と、「kw:nt:ＡＡ産」で検索された商品の集合との積集合が抽出される。以下、同様に処理が行われる。
【０１５３】
システム制御部１４は、検索式を変換すると、検索結果リストのスタックを初期化する（ステップＳ３０２）。このスタックは、検索結果リストを後入れ先出しで格納するためのデータ構造である。
【０１５４】
次いで、システム制御部１４は、検索式から先頭の要素を取得する（ステップＳ３０３）。次いで、システム制御部１４は、取得した要素が単項式であるか否かを判定する（ステップＳ３０４）。このとき、システム制御部１４は、単項式であると判定した場合には（ステップＳ３０４：ＹＥＳ）、取得した要素に含まれる検索ワードの属性区分がキーワードであるか否かを判定する（ステップＳ３０５）。つまり、システム制御部１４は、取得した要素が「kw:」を含むか否かを判定する。このとき、システム制御部１４は、属性区分がキーワードであると判定した場合には（ステップＳ３０５：ＹＥＳ）、取得した要素に含まれる検索ワードの付加条件が否定であるか否かを判定する（ステップＳ３０６）。つまり、システム制御部１４は、取得した要素が「nt:」を含むか否かを判定する。このとき、システム制御部１４は、付加条件が否定ではないと判定した場合には（ステップＳ３０６：ＮＯ）、商品名または商品説明の少なくとも何れか一方に、取得した要素に含まれる検索ワードを含む商品情報を、商品情報ＤＢ１２ｃから検索する（ステップＳ３０７）。こうして、システム制御部１４は、検索手段として、金額を表す語であるとは判定されなかった検索ワードをキーワードとして用いて検索を行う。
【０１５５】
一方、システム制御部１４は、付加条件が否定であると判定した場合には（ステップＳ３０６：ＹＥＳ）、商品名及び商品説明の何れにも、取得した要素に含まれる検索ワードを含まない商品情報を、商品情報ＤＢ１２ｃから検索する（ステップＳ３０８）。こうして、システム制御部１４は、検索手段として、入力された検索ワードが除外指定語を含む場合、その検索ワードに応じた条件の否定を検索条件として用いて検索を行う。
【０１５６】
ステップＳ３０５において、システム制御部１４は、属性区分がキーワードではないと判定した場合には（ステップＳ３０５：ＮＯ）、取得した要素に含まれる検索ワードの属性区分が商品価格であるか否かを判定する（ステップＳ３０９）。つまり、システム制御部１４は、取得した要素が「pr:」を含むか否かを判定する。このとき、システム制御部１４は、属性区分が商品価格ではないと判定した場合には（ステップＳ３０９：ＮＯ）、ステップＳ３５８に移行する。
【０１５７】
一方、システム制御部１４は、属性区分が商品価格であると判定した場合には（ステップＳ３０９：ＹＥＳ）、取得した要素に含まれる検索ワードを数値にバイナリ変換する（ステップＳ３１０）。次いで、システム制御部１４は、取得した要素に含まれる検索ワードの付加条件が大小関係であるか否かを判定する（ステップＳ３１１）。つまり、システム制御部１４は、取得した要素が、「mn:」「mx:」、「gt:」及び「lt:」の何れかを含むか否かを判定する。このとき、システム制御部１４は、付加条件が大小関係ではないと判定した場合には（ステップＳ３１１：ＮＯ）、商品価格が、変換された数値と一致する商品情報を、商品情報ＤＢ１２ｃから検索する（ステップＳ３１２）。こうして、システム制御部１４は、検索手段として、金額を表す語であると判定された検索ワードを商品価格の検索条件として用いて、商品を検索する。
【０１５８】
一方、システム制御部１４は、付加条件が大小関係であると判定した場合には、商品価格が、変換された数値と、取得した要素に含まれる付加条件ラベルが示す大小関係とに応じた範囲内である商品情報を、商品情報ＤＢ１２ｃから検索する（ステップＳ３１３）。例えば、数値がＫであるとする。また、付加条件ラベルが「mn:」であるとする。この場合、システム制御部１４は、商品価格がＫ円以上である商品情報を検索する。また、システム制御部１４は、付加条件ラベルが「mx:」である場合、商品価格がＫ円以下である商品情報を検索する。また、システム制御部１４は、付加条件ラベルが「gt:」である場合、商品価格がＫ円よりも高い商品情報を検索する。また、システム制御部１４は、付加条件ラベルが「lt:」である場合、商品価格がＫ円よりも安い商品情報を検索する。こうして、システム制御部１４は、入力された検索ワードが範囲指定語を含む場合には、検索手段として、入力された検索ワードが表す金額の範囲に商品価格が含まれる商品を検索する。
【０１５９】
システム制御部１４は、ステップＳ３０７、Ｓ３０８、Ｓ３１２またはＳ３１３の処理を終えると、検索した各商品情報から商品ＩＤを取得し、取得した商品ＩＤを登録した検索結果リストを生成する。そして、システム制御部１４は、検索リストをスタックに格納する（ステップＳ３１４）。次いで、システム制御部１４は、ステップＳ３５８に移行する。
【０１６０】
ステップＳ３０４において、システム制御部１４は、取得した要素が単項式ではないと判定した場合には（ステップＳ３０４：ＮＯ）、図１４に示すように、取得した要素が論理和演算子であるか否かを判定する（ステップＳ３５１）。このとき、システム制御部１４は、取得した要素が論理和演算子であると判定した場合には（ステップＳ３５１：ＹＥＳ）。スタックから検索結果リストを２つ取得する（ステップＳ３５２）。次いで、システム制御部１４は、取得した２つの検索結果リストのうち少なくとも何れか一方に登録されている商品ＩＤを抽出する。そして、システム制御部１４は、抽出した各商品ＩＤを登録した検索リストを新しく生成する（ステップＳ３５３）。
【０１６１】
一方、システム制御部１４は、取得した要素が論理和演算子ではないと判定した場合には（ステップＳ３５１：ＮＯ）、取得した要素が論理積演算子であるか否かを判定する（ステップＳ３５４）。このとき、システム制御部１４は、取得した要素が論理積演算子であると判定した場合には（ステップＳ３５４：ＹＥＳ）。スタックから検索結果リストを２つ取得する（ステップＳ３５５）。次いで、システム制御部１４は、取得した２つの検索結果リストの何れにも登録されている商品ＩＤを抽出する。そして、システム制御部１４は、抽出した各商品ＩＤを登録した検索リストを新しく生成する（ステップＳ３５６）。
【０１６２】
システム制御部１４は、ステップＳ３５３または３５６の処理を終えると、新しく生成された検索結果リストをスタックに格納する（ステップＳ３５７）。次いで、システム制御部１４は、検索式からまだ取得していない要素があるか否かを判定する（ステップＳ３５８）。このとき、システム制御部１４は、まだ取得していない要素があると判定した場合には（ステップＳ３５８：ＹＥＳ）、検索式から次の要素を取得する（ステップＳ３５９）。次いで、システム制御部１４は、ステップＳ３０４に移行する。システム制御部１４は、ステップＳ３０４〜Ｓ３１４、Ｓ３５１〜Ｓ３５９の処理を繰り返すことにより、検索式の先頭から順次要素を取得し、取得した要素に応じた処理を実行する。そして、システム制御部１４は、全ての要素を取得したと判定した場合には（ステップＳ３５８：ＮＯ）、スタックから検索結果リストを取得する（ステップＳ３６０）。この検索結果リストが、最終的な検索結果を示す。システム制御部１４は、この処理を終えると、検索メイン処理を終了させる。
【０１６３】
以上説明したように、本実施形態によれば、電子商店街サーバ１のシステム制御部１４が、検索ワード入力欄１１１に入力された複数の検索ワードのそれぞれごとに、検索ワードが、予め定められた区分の属性の内容を表す語であるか否かを、その検索ワード自体に基づいて判定し、予め定められた区分の属性の内容を表す語であると判定された検索ワードが表す内容を、予め定められた区分の属性の検索条件として用いて、商品を検索する。従って、ユーザは、属性の内容を表す検索ワードを含む複数の検索ワードを１つの検索ワード入力欄１１１に入力することで、属性の区分を指定する操作をしなくても、予め定められた区分の属性の検索条件を指定することができる。
【０１６４】
また、システム制御部１４が、検索ワードが「円」を含むことを少なくとも条件として、その検索ワードが金額を表す語であると判定し、金額を表す語であると判定された検索ワードが表す金額を、商品価格の検索条件として用いる。従って、ユーザは、「円」を含む検索ワードを入力することにより、商品価格の検索条件を指定することができる。
【０１６５】
また、システム制御部１４が、金額を表す語であると判定された検索ワードが範囲指定語を含む場合には、入力された検索ワードが表す金額の範囲に商品価格が含まれる商品を検索する。従って、ユーザは、「円」及び範囲を指定する表現を含む検索ワードを入力することにより、商品価格の検索条件として、商品価格の範囲を指定することができる。
【０１６６】
また、システム制御部１４が、検索ワード入力欄１１１に入力された複数の検索ワードのそれぞれの検索ワードが、ジャンル名をジャンルごとに木構造で記憶する記憶部１２に記憶された複数のジャンル名のうち少なくとも１つのジャンル名と一致するか否かを判定し、一致すると判定された検索ワードが複数ある場合、ジャンル木におけるこれらの検索ワード同士の位置関係に基づいて、各検索ワードに応じた検索条件を組み合わせる方法を決定する。従って、ユーザは、ジャンル名を複数入力することで、各ジャンル名に応じた検索条件の組み合わせ方法を指定することができる。つまり、ユーザは、検索ワード入力欄１１１への入力操作とは別の操作を行わなくても、検索条件の組み合わせ方法を指定することができる。
【０１６７】
また、システム制御部１４が、ある複数の検索ワードがジャンル木において互いに兄弟の関係である場合、その複数の検索ワードのそれぞれに応じた検索条件を互いに論理和で組み合わせることを決定する。従って、ユーザは、互いに兄弟の関係にある複数のジャンル名を入力することにより、検索条件を論理和で組み合わせることを指定することができる。
【０１６８】
また、システム制御部１４が、ジャンル木において互いに兄弟の関係にある複数の検索ワードのそれぞれに応じた検索条件ごとに商品を検索し、検索された商品の情報が兄弟の関係にある複数の検索ワードのそれぞれの検索ワードごとに分かれて表示されるように、検索された商品の情報を含むＨＴＭＬ文書をユーザ端末３へ送信する。従って、互いに兄弟の関係にある複数のジャンル名のそれぞれに応じた検索結果が分かれて表示される。そのため、兄弟の関係にあるジャンル名の間で検索結果の比較が容易となる。
【０１６９】
また、システム制御部１４が、ある検索ワードが他の少なくとも１つの検索ワードの祖先である場合、祖先の方の検索ワードに応じた検索条件と、子孫の方の検索ワードに応じた検索条件とを論理積で組み合わせることを決定する。従って、ユーザは、互いに祖先と子孫との関係にある複数のジャンル名を入力することにより、検索条件を論理積で組み合わせることを指定することができる。
【０１７０】
また、システム制御部１４が、ジャンル名と一致すると判定された検索ワードをキーワードとして、商品名及び商品説明を商品ごとに記憶する記憶部１２に記憶された商品名及び商品説明の少なくとも何れか一方にキーワードを含むことを検索条件とする。従って、商品情報に含まれているジャンルＩＤが示すジャンルが、商品の本来のジャンルとは異なる場合であっても、ユーザが検索ワードとして入力したジャンル名が表すジャンルに属する商品を検索することができる。つまり、店舗が商品情報の登録時に商品のジャンルを正確に設定していなかったとしても、検索ワードが表すジャンルに属する商品を検索することができる。また、商品情報がジャンルＩＤを含まないように商品情報を構成した場合であっても、検索ワードが表すジャンルに属する商品を検索することができる。
【０１７１】
また、システム制御部１４が、入力された検索ワードが除外指定語を含む場合、その検索ワードに応じた条件の否定を検索条件として用いて検索を行う。従って、ユーザは、除外の表現を含む検索ワードを入力することにより、否定の検索条件を指定することができる。具体的に、検索ワードから除外指定語を除いた部分をキーワードとして、商品名及び商品説明の何れにもそのキーワードを含まない商品を検索することができる。
【０１７２】
また、システム制御部１４が、予め定められた区分の属性の内容を表す語であるとは判定されなかった検索ワードをキーワードとして、記憶部１２に記憶された商品名及び商品説明の少なくとも何れか一方にキーワードを含むことを検索条件とする。従って、ユーザは、予め定められた区分の属性の内容を表す検索ワードと、予め定められた区分の属性の内容を表さない検索ワードとを含む複数の検索ワードを入力することにより、予め定められた区分の属性の検索条件とキーワードとを指定することができる。
【０１７３】
なお、上記実施形態において、電子商店街サーバ１は、ジャンル情報ＤＢ１２ｂに登録されたジャンル情報に基づいて、木構造における検索ワード同士の位置関係を調べていた。つまり、電子商店街の管理者等が決めたジャンルの木構造に基づいて、検索ワード同士の位置関係が調べられていた。しかしながら、電子商店街以外のＷｅｂサイトのＷｅｂページに基づいて、ジャンル情報が生成され、生成されたジャンル情報が、例えば、ジャンル情報ＤＢ１２ｂに、または、ジャンル情報ＤＢ１２ｂとは別のデータベースに登録されてもよい。そして、システム制御部１４は、この登録されたジャンル情報に基づいて、木構造における検索ワード同士の位置関係を調べてもよい。この場合、ジャンル情報の生成及び登録は、例えば、電子商店街サーバ１が行ってもよいし、電子商店街サーバ１以外の情報処理装置が行ってもよい。Ｗｅｂページの取得先としては、例えば、百科事典のＷｅｂサイトがある。百科事典のＷｅｂサイトでは、例えば、各Ｗｅｂページに、そのＷｅｂページで説明されている事項に対して、関連する事項のＷｅｂページへのリンクが埋め込まれている。この場合、例えば、Ｗｅｂページで説明されている事項を、その事項に関連する事項の親ジャンルであるとする。そして、百科事典のＷｅｂサイトにおける各Ｗｅｂページのリンクに基づいて、ジャンルの木構造が特定される。また、電子商店街の管理者等が決めたジャンルの木構造に基づいて生成されたジャンル情報では足りない部分が、他のＷｅｂサイトから取得されたＷｅｂページに基づいて生成されたジャンル情報で補われるようになっていてもよい。
【０１７４】
また、上記実施形態において、電子商店街サーバ１は、ユーザがジャンル名を検索ワードとして入力した場合であっても、その検索ワードをキーワード検索におけるキーワードとして用いていた。しかしながら、電子商店街サーバ１は、ジャンル名が検索ワードとして複数入力された場合、少なくとも１つの検索ワードが表すジャンルを、商品のジャンルに対する検索条件として用いてもよい。これにより、検索ワードが表すジャンルに属する商品を検索することができる。
【０１７５】
例えば、電子商店街サーバ１は、２つの検索ワードがそれぞれ表すジャンル同士が祖先と子孫との関係にある場合、祖先の方の検索ワードが表すジャンルを、商品のジャンルに対する検索条件とし、子孫の方の検索ワードをキーワードとして用いてもよい。つまり、電子商店街サーバ１は、祖先のジャンルに属する商品のうち、商品名または商品説明の少なくとも何れか一方に子孫のジャンルを表す検索ワードを含む商品を検索する。具体的に、システム制御部１４は、図１１に示す検索式生成処理のＳ１１４の処理において、今回生成した単項式と生成済みの式とを論理積演算子で結合するとき、今回生成した単項式に含まれる属性ラベルを、ジャンルを示す属性ラベルに変更する。また、単項式に含まれる検索ワードを、検索ワードが表すジャンルのジャンルＩＤに変換する。例えば、「kw:コシヒカリ」と「kw:ＡＡ産」とを結合して新しい式が生成される場合、「gl:12345689*kw:ＡＡ産」が生成される。「gl:」は、ジャンルを示す属性ラベルである。また、「12345689」は、「コシヒカリ」のジャンルＩＤである。
【０１７６】
図１５は、本実施形態の変形例に係る電子商店街サーバ１のシステム制御部１４の検索メイン処理における処理例を示すフローチャートである。図１５において図１３と同様の処理については同様の符号を付してある。
【０１７７】
システム制御部１４は、図１５に示す検索メイン処理のステップＳ３０９において、属性区分が商品価格ではないと判定した場合には（ステップＳ３０９：ＮＯ）、取得した要素の属性区分がジャンルであるか否かを判定する（ステップＳ３３１）。つまり、システム制御部１４は、取得した要素が「gl:」を含むか否かを判定する。このとき、システム制御部１４は、属性区分がジャンルではないと判定した場合には（ステップＳ３３１：ＮＯ）、ステップＳ３５８に移行する。一方、システム制御部１４は、属性区分がジャンルであると判定した場合には（ステップＳ３３１：ＹＥＳ）、取得した要素に含まれるジャンルＩＤが示すジャンルに属する商品を検索する。先ず、システム制御部１４は、取得した要素に含まれるジャンルＩＤと同一のジャンルＩＤを含む商品情報を、商品情報ＤＢ１２ｃから検索する（ステップＳ３３２）。つまり、システム制御部１４は、ユーザが入力したジャンル名が表すジャンルと同一のジャンルに属する商品を検索する。次いで、システム制御部１４は、取得した要素に含まれるジャンルＩＤが示すジャンルの子孫のジャンルのジャンルＩＤを含む商品情報を、商品情報ＤＢ１２ｃから検索する（ステップＳ３３３）。つまり、システム制御部１４は、ユーザが入力したジャンル名が表すジャンルの子孫のジャンルに属する商品を検索する。具体的に、システム制御部１４は、商品情報に含まれるジャンルＩＤが示すジャンルの全ての祖先のジャンルＩＤを取得する。ジャンル情報ＤＢ１２ｂに登録されているジャンル情報には、親ジャンルＩＤが登録されている。そのため、システム制御部１４は、親ジャンルのジャンルＩＤを取得することができる。また、システム制御部１４は、親ジャンルのジャンル情報から、親の更に親のジャンルＩＤを取得することができる。こうして、システム制御部１４は、祖先のジャンルＩＤを取得する。次いで、システム制御部１４は、取得された全ての祖先のジャンルＩＤのうち何れかが、取得した要素に含まれるジャンルＩＤと一致するか否かを判定する。このとき、何れかの祖先のジャンルＩＤが要素に含まれるジャンルＩＤと一致する商品情報は、取得した要素に含まれるジャンルＩＤが示すジャンルの子孫のジャンルのジャンルＩＤを含む商品情報である。システム制御部１４は、このような処理を、商品情報ＤＢ１２ｃに登録されている各商品情報について実行する。次いで、システム制御部１４は、ステップＳ３３２及びＳ３３３においてそれぞれ検索した各商品情報から商品ＩＤを取得し、取得した商品ＩＤを登録した検索結果リストを生成する。そして、システム制御部１４は、検索リストをスタックに格納する（ステップＳ３１４）。なお、ステップＳ３５１以降の処理は、図１４と同様である。
【０１７８】
また、電子商店街サーバ１は、ユーザがジャンル名として入力した検索ワードの全部について、検索ワードが表すジャンルを、商品のジャンルに対する検索条件として用いてもよい。具体的に、システム制御部１４は、図１１に示す検索式生成処理のステップＳ１０４において単項式を生成する場合、ジャンルを示す属性ラベルと、検索ワードが表すジャンルのジャンルＩＤとを接続して単項式を生成する。検索メイン処理は、図１４及び図１５の処理と同様でよい。このようにした場合、商品のジャンルと商品価格とに対して検索条件の指定が可能となる。つまり、検索条件の指定が可能な商品の属性が複数になる。従って、属性判定処理において、システム制御部１４は、第１判定手段として、入力された検索ワードが属性値を表すか否かを、検索条件の指定が可能な複数の属性のそれぞれごとに判定していることになる。つまり、システム制御部１４は、入力された検索ワードが属性値を表す属性を判別する。
【０１７９】
また、上記実施形態において、電子商店街サーバ１は、検索ワードが表す属性の内容を、商品の属性に対する検索条件とすることと、検索ワードが表すジャンルのジャンル木における位置関係に基づく論理演算の決定と、の両方を行っていた。しかしながら、電子商店街サーバ１は、何れか一方のみを行ってもよい。
【０１８０】
また、上記実施形態においては、検索条件設定領域１１０には、検索ワード入力欄１１１及び検索ボタン１１２という、検索ワードの入力に必要なウィジェットのみが表示されるようになっていた。しかしながら、検索条件設定領域１１０には、詳細な検索条件を指定するために必要なウィジェットが表示されてもよい。例えば、検索する商品をジャンルで絞り込むためのプルダウンメニューが表示されてもよい。また、検索ワード入力欄１１１に複数の検索ワードが入力された場合に、商品名や商品説明が、複数の検索ワードを全て含む商品を検索するか、または、複数の検索ワードの少なくとも１つを含む商品を検索するかを選択するためのプルダウンメニューが表示されてもよい。また、商品価格の上限値と下限値とをそれぞれ指定するための入力欄が表示されてもよい。ユーザが検索条件を指定するためのウィジェットを操作して検索条件を指定した場合、電子商店街サーバ１は、例えば、指定された検索条件を用いるとともに、検索ワード入力欄１１１に入力された検索ワードを全てキーワードとして用いて商品を検索してもよい。一方、ユーザが検索条件を指定するためのウィジェットを操作せずに検索ワード入力欄１１１に検索ワードを入力した場合、電子商店街サーバ１は、上記実施形態のように、各検索ワードが属性値を表すか否かを判定し、判定結果に応じて検索ワードを商品の属性に対する検索条件として用いて、検索を行ってもよい。つまり、検索条件を指定するための複数のウィジェットのうち検索ワード入力欄１１１に対して複数の検索ワードが入力された場合は、本発明の範囲内である。
【０１８１】
また、複数の検索条件の組み合わせ方法は、論理積及び論理和に限られるものではない。例えば、排他的論理和が用いられてもよい。
【０１８２】
また、上記実施形態においては、電子商店街で販売される商品の検索に本発明が適用されていた。しかしながら、例えば、オークションに出品される商品の検索に本発明が適用されてもよい。また、サービス、Ｗｅｂページ、画像、動画、音声、地図、ニュース、ブログ等の検索に、本発明が適用されてもよい。
【０１８３】
また、上記実施形態においては、商品価格が、何らかの単位の数値で表される属性の一例として説明されていた。しかしながら、検索対象の属性に応じて、例えば、日本以外の国の通貨の単位や、重量、長さ、体積、時間、データ量等の単位に本発明が適用されてもよい。単位語としては、例えば、「g」、「m」、「l」、「秒」、「B」等がある。また、このような属性は、複数あってもよい。単位語ＤＢ１２ｅには、例えば、単位語と、単位語に予め関連付けられた属性の区分を示すラベルとが対応付けて登録される。
【０１８４】
また、上記実施形態においては、ジャンルに対して、木構造で階層的に定義される属性が適用されていた。しかしながら、ジャンル以外の属性に対して、本発明が適用されてもよい。また、このような属性は、複数あってもよい。
【０１８５】
また、検索対象の属性の中には、互いに異なる複数の候補の中から選択された１つの候補が属性の内容として設定される属性がある。例えば、オークションに出品される商品の状態として、新品と中古とがある。このような属性については、各候補を表す語がデータベースに登録されてもよい。例えば、「新品」及び「中古」が登録される。そして、検索ワードが、データベースに登録されている複数の語のうち何れかの名称に一致する場合に、その検索ワードが、その区分の属性の内容を表すと判定されるように、本発明の検索装置が構成されてもよい。つまり、ユーザは、検索ワードとして、「新品」または「中古」を入力することにより、商品の状態に対する検索条件を指定することができる。
【符号の説明】
【０１８６】
１  電子商店街サーバ
２  店舗端末
３  ユーザ端末
１１  通信部
１２  記憶部
１２ａ  会員情報ＤＢ
１２ｂ  ジャンル情報ＤＢ
１２ｃ  商品情報ＤＢ
１２ｄ  除外指定語ＤＢ
１２ｅ  単位語ＤＢ
１２ｆ  範囲指定語ＤＢ
１３  入出力インターフェース
１４  システム制御部
１４ａ  ＣＰＵ
１４ｂ  ＲＯＭ
１４ｃ  ＲＡＭ
１５  システムバス
ＮＷ  ネットワーク
Ｓ  ショッピングシステム
【図１】
0005697256.tif 000002
【図２】
0005697256.tif 000003
【図３】
0005697256.tif 000004
【図４】
0005697256.tif 000005
【図５】
0005697256.tif 000006
【図６】
0005697256.tif 000007
【図７】
0005697256.tif 000008
【図８】
0005697256.tif 000009
【図９】
0005697256.tif 000010
【図１０】
0005697256.tif 000011
【図１１】
0005697256.tif 000012
【図１２】
0005697256.tif 000013
【図１３】
0005697256.tif 000014
【図１４】
0005697256.tif 000015
【図１５】
0005697256.tif 000016