以下、図面を参照して本発明の実施形態について詳細に説明する。
[1.第1実施形態]
以下に説明する第1実施形態は、宿泊施設の予約を行うための情報提供システムに対して本発明を適用した場合の実施形態である。
[1−1.情報提供システムの構成及び機能概要]
先ず、本実施形態に係る情報提供システムS1の構成について、図1を用いて説明する。図1は、本実施形態に係る情報提供システムS1の概要構成の一例を示す図である。
図1に示すように、情報提供システムS1は、宿泊施設予約サーバ1と、複数の宿泊施設端末2と、複数のユーザ端末3と、を含んで構成されている。そして、宿泊施設予約サーバ1と各宿泊施設端末2及び各ユーザ端末3とは、ネットワークNWを介して、例えば、通信プロトコルにTCP/IP等を用いて相互にデータの送受信が可能になっている。なお、ネットワークNWは、例えば、インターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
宿泊施設予約サーバ1は、宿泊施設予約サイトに関する各種処理を実行するサーバ装置である。宿泊施設予約サーバ1は、本発明における検索装置の一例である。宿泊施設予約サイトは、宿泊施設の宿泊の予約の受け付けを行うWebサイトである。宿泊施設予約サイトは、複数の宿泊施設から予約の受け付けを委託されている。宿泊施設予約サーバ1は、ユーザ端末3からのリクエストに応じて、例えば、宿泊施設予約サイトのWebページを送信したり、宿泊施設の検索や、宿泊の予約等に関する処理を行ったりする。なお、宿泊施設は、本発明における検索対象の一例である。
宿泊施設端末2は、宿泊施設予約サイトに予約の委託をしている宿泊施設の従業員等により利用される端末装置である。宿泊施設端末2は、従業員等からの操作に基づいて宿泊施設予約サーバ1等のサーバ装置にアクセスする。これにより、宿泊施設端末2は、サーバ装置からWebページを受信して表示する。宿泊施設端末2には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。従業員は、宿泊施設端末2を利用することにより、例えば、宿泊施設の情報を宿泊施設予約サイトに登録したり、宿泊施設の予約状況を確認したりする。
ユーザ端末3は、宿泊施設予約サイトを利用するユーザの端末装置である。ユーザ端末3は、ユーザからの操作に基づいて宿泊施設予約サーバ1にアクセスすることにより、宿泊施設予約サーバ1からWebページを受信して表示する。ユーザ端末3には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。ユーザ端末3としては、例えば、パーソナルコンピュータ、PDA(Personal Digital Assistant)、スマートフォン等の携帯情報端末、携帯電話機等が用いられる。
ユーザは、ユーザが利用する宿泊施設を宿泊施設予約サイトで探すために、検索条件を指定することができる。例えば、検索条件として、キーワードの指定が可能である。ユーザは、例えば、ユーザが所望する宿泊施設の条件を簡潔に表す語を、キーワードとして入力する。検索条件が指定されると、宿泊施設予約サーバ1は、検索条件を満たす宿泊施設を検索する。具体的に、宿泊施設予約サーバ1は、指定されたキーワードを宿泊施設名や宿泊施設の詳細情報に含む宿泊施設を検索する。そして、宿泊施設予約サーバ1は、検索結果ページをユーザ端末3へ送信する。
検索結果ページは、検索された宿泊施設の一覧が表示されるWebページである。例えば、検索結果ページは、宿泊施設名、宿泊施設の画像、宿泊施設の簡単な説明、宿泊プランの情報等が、宿泊施設ごとに表示される。宿泊プランは、例えば、宿泊施設により企画された宿泊サービスである。宿泊プランの情報は、1つの宿泊施設につき複数表示される場合がある。また、検索結果ページには、検索された宿泊施設の宿泊施設ページへのハイパーリンク(以下、「リンク」という)が埋め込まれている。宿泊施設ページは、1つの宿泊施設に関する情報が表示されるWebページである。宿泊施設ページは、宿泊施設ごとに複数種類存在する。例えば、宿泊施設のトップページ、宿泊施設の詳細情報が表示されるWebページ、宿泊プランの一覧が表示されるWebページ等がある。ユーザは、宿泊施設ページにおいて、予約の操作を行うことにより、宿泊施設の予約を行うことができる。
[1−2.指定された複数のキーワードの分割]
ユーザは、検索したい宿泊施設に対して要求する条件を複数持っている場合がある。例えば、条件としては、宿泊施設から提供を受けたいサービス、利用したい設備、ユーザがやりたいこと等がある。サービス及び施設は、本発明において、ユーザに提供される提供対象の一例である。また、ユーザがやりたいことを実現するサービス、設備、場所等も、本発明における提供対象の一例である。ユーザが、要求する条件ごとにその条件に関連するキーワードを入力すると、検索条件として複数のキーワードが指定されることになる。複数のキーワードが指定された場合、宿泊施設予約サーバ1は、指定された複数のキーワードの全てに合致する宿泊施設を検索する。そのため、指定されたキーワードの数が多くなるほど、全てのキーワードに合致する宿泊施設の数が少なくなったり、全てのキーワードに合致する宿泊施設が存在する蓋然性が低くなったりする。そうすると、ユーザが望む十分な数の検索結果をユーザが得ることができなくなる。
望むような十分な数の検索結果を得ることができなかった場合、ユーザは、指定するキーワードの数を減らして宿泊施設予約サーバ1に再検索を要求することはできる。つまり、ユーザは、最初に指定した複数のキーワードの中から一部のキーワードを除外することによって、検索条件を再指定する。あるいは、宿泊施設予約サーバ1が、自動的にキーワードを減らして、再検索を行うことも考えられる。ところが、この場合、最初に指定された検索条件と、新しく指定された検索条件とは同一ではなくなる。そのため、ユーザが望む検索結果が得られない場合がある。新しい検索条件で検索された宿泊施設の中には、ユーザが最初に望んだ全ての条件を満たす宿泊施設が含まれていない蓋然性が高いからである。
そこで、宿泊施設予約サーバ1は、宿泊施設と地域とを組み合わせた場合に、ユーザが指定した複数のキーワードの全てに合致する組み合わせを検索する。そして、宿泊施設予約サーバ1は、検索した組み合わせを、検索結果としてユーザ端末3によりユーザへ提示させる。
具体的に、宿泊施設予約サーバ1は、検索条件として指定された複数のキーワードを、それぞれ少なくとも1つ以上のキーワードを含む2つの検索条件に分割する。2つの検索条件のうちの一方は、宿泊施設検索条件である。宿泊施設検索条件は、宿泊施設の検索に用いられる検索条件である。宿泊施設検索条件は、本発明における第1の子検索条件の一例である。2つの検索条件のうちの他方は、地域検索条件である。地域検索条件は、宿泊施設の検索に用いられない検索条件である。代わりに、地域検索条件は、地域の検索に用いられる。地域検索条件は、本発明における第2の子検索条件の一例である。宿泊施設予約サーバ1は、宿泊施設検索条件を満たす宿泊施設を検索するとともに、地域検索条件を満たす地域を検索する。そして、宿泊施設予約サーバ1は、検索された宿泊施設の何れかと、検索された地域の何れかと、の組み合わせの中から、関連を有する宿泊施設と地域との組み合わせを抽出する。ここで、宿泊施設予約サーバ1は、施設がある場所が、地域に対して予め定められた範囲内にある場合、その施設とその地域とは、関連を有するもの判定する。なお、地域は、本発明における検索対象の一例である。
あるキーワードによって表された対象またはそのキーワードに関連する対象を提供するスポットが宿泊施設の近くにあるのであれば、その対象を宿泊施設が提供することができなくてもよいと考えられる。ユーザは、その宿泊施設を利用するときに、そのスポットに行くことによって、ユーザの要求を満足させることができるからである。各地域には、それぞれユーザの要求を満たすかもしれないスポットがある。従って、ユーザが指定した複数のキーワードのうち一部のキーワードを含む宿泊施設検索条件を宿泊施設が満たし、残りのキーワードを含む地域検索条件を地域が満たすような、宿泊施設と地域の組み合わせであれば、全体としてユーザの要求は満たされる。
なお、宿泊施設予約サーバ1は、最初に、ユーザにより指定された複数のキーワードの全てに合致する宿泊施設を検索する。そして、宿泊施設予約サーバ1は、検索された宿泊施設の数が閾値未満である場合に、宿泊施設と地域との組み合わせを検索する。ユーザの要求を全て満たす宿泊施設が、ある程度の数存在するのであれば、宿泊施設と地域との組み合わせを検索する必要がないからである。これにより、宿泊施設予約サーバ1が不要な検索処理を実行しないで済ますことができる。また、宿泊施設と地域との組み合わせでユーザの要求を満たすよりも、1つの宿泊施設でユーザの要求を満たす方が、ユーザにとって便利である。ユーザは、自分の要求を満たすために、いろいろな場所へ行かなくてもよいからである。このときに用いられる閾値を、T1とする。T1は、本発明における第1数の一例である。
図2(a)は、宿泊施設と地域との組み合わせの検索例を示す図である。宿泊施設予約サーバ1は、ユーザにより指定された複数のキーワードを、宿泊施設検索条件と地域検索条件とに分割する。分割の基準は、例えば、キーワードが、宿泊施設によって提供可能な対象に関連するか否かである。つまり、宿泊施設予約サーバ1は、複数のキーワードのそれぞれを、宿泊施設によって提供される対象に関連するキーワードと、宿泊施設によって提供されない対象に関連するキーワードと、の何れかに分類する。
例えば、ユーザは、露天風呂及び岩盤浴を利用したいと思い、且つ、登山、ダイビング及び花火を楽しみたいと思ったとする。更に、ユーザは、蟹を食べたいと思い、且つ、飲み物が飲み放題である食事をとりたいと思ったとする。そこで、ユーザは、例えば、図2(a)に示すように、複数のキーワードとして、「露天風呂 登山 蟹 飲み放題 ダイビング 花火 岩盤浴」を指定したとする。空白で分けられたそれぞれの語が、キーワードである。そして、この複数のキーワードが、「露天風呂 蟹 飲み放題 岩盤浴」を含む宿泊施設検索条件と、「登山 ダイビング 花火」を含む宿泊施設検索条件と、に分割される。「露天風呂 蟹 飲み放題 岩盤浴」の中のそれぞれのキーワードが表す対象は、宿泊施設による提供が可能な対象である。一方、「登山 ダイビング 花火」の中のそれぞれのキーワードが表す対象は、一般的には宿泊施設で提供されない対象である。
次いで、宿泊施設予約サーバ1は、宿泊施設検索条件に含まれる全てのキーワードに合致する宿泊施設を検索するとともに、地域検索条件に含まれる全てのキーワードに合致する地域を検索する。検索された宿泊施設を要素とする集合を、「該当宿泊施設集合」という。また、検索された地域を要素とする集合を、「該当地域集合」という。そして、宿泊施設予約サーバ1は、該当宿泊施設集合と該当地域集合とから、互いに関連を有する宿泊施設と地域との組み合わせを抽出する。
ある宿泊施設Aとある地域Bとが互いに関連するか否かの基準は、宿泊施設Aがある場所が、地域Bに対して予め定められた範囲内にあるか否かである。例えば、この範囲は、ユーザが旅先での旅行中に、宿泊施設Aから地域Bにユーザが行くことができる範囲とされる。例えば、宿泊施設予約サーバ1は、宿泊施設がある地域を、宿泊施設と関連する地域であると判定する。また、宿泊施設予約サーバ1は、宿泊施設がある地域に隣接する地域にまで、宿泊施設と関連する対象を広げてもよい。また、宿泊施設予約サーバ1は、宿泊施設がある地域に近接する地域にまで、宿泊施設と関連する対象を広げてもよい。また、宿泊施設予約サーバ1は、宿泊施設がある場所から予め設定された距離までの範囲内にある地域を、宿泊施設と関連する地域としてもよい。
例えば、図2(a)に示すように、「露天風呂 蟹 飲み放題 岩盤浴」に合致する宿泊施設として、AAA旅館、BBBホテル及びCCC旅館が検索されたとする。これらの宿泊施設は、それぞれ、露天風呂、蟹、飲み放題及び岩盤浴を提供可能である蓋然性がある。また、AAA旅館は、奥多摩にある。また、BBBホテルは、箱根にある。また、CCC旅館は、内房にある。一方、「登山 ダイビング 花火」に合致する地域として、つくば、内房及び湘南が検索されたとする。これらの地域内には、登山、ダイビング及び花火が提供されるそれぞれのスポットがある蓋然性がある。なお、奥多摩、箱根、内房、つくば及び湘南は、互いに隣接する地域ではない。また、これらの地域は、互いに近接する地域ではないものとする。
この場合、CCC旅館は、検索された地域の1つである内房にある。そのため、検索結果として、CCC旅館と内房との組み合わせが抽出される。
図3は、検索結果ページの表示例を示す図である。宿泊施設と地域との組み合わせが検索された場合、例えば、図3に示すように、検索結果ページが表示される。検索結果ページには、組み合わせ表示領域100が表示される。組み合わせ表示領域100は、検索された組み合わせごとに表示される。図3は、CCC旅館と内房との組み合わせに対応する組み合わせ表示領域100の表示例である。組み合わせ表示領域100には、宿泊施設情報表示領域110と、地域情報表示領域120とが、表示される。
宿泊施設情報表示領域110には、1つの組み合わせに含まれる宿泊施設に関する情報が表示される。具体的に、宿泊施設情報表示領域110には、例えば、宿泊施設名、宿泊施設の画像、宿泊施設の紹介、宿泊施設へのアクセス方法、宿泊施設の住所、宿泊プランの情報等が表示される。宿泊プランの情報としては、例えば、宿泊プランの名称、宿泊プランの説明の一部、宿泊料金等が表示される。情報が表示される宿泊プランは、例えば、ユーザにより指定されたキーワードに対応する宿泊プランである。図3が示す宿泊施設情報表示領域110には、CCC旅館が、露天風呂及び岩盤浴の設備を有することが表示されている。また、図3が示す宿泊施設情報表示領域110には、食事で出される料理に蟹が含まれており且つ飲み物が飲み放題である宿泊プランの情報が表示されている。ユーザが宿泊施設名を選択すると、宿泊施設のトップページが画面に表示される。また、ユーザが宿泊プランの名称を選択すると、宿泊プランの一覧のWebページが画面に表示される。
地域情報表示領域120は、1つの組み合わせに含まれる地域に関する情報が表示される。具体的に、地域情報表示領域120には、例えば、地域名、地域の画像、地域の紹介、地域内にあるスポットの情報等が表示される。スポットの情報としては、例えば、スポット名、スポットの説明等が表示される。スポットとしては、例えば、名所、観光スポット、施設等がある。情報が表示されるスポットは、例えば、ユーザにより指定されたキーワードに対応するスポットである。図3が示す地域情報表示領域120には、スポットの情報として、ダイビングが可能であり且つ花火大会が開催される海水浴場の情報と、登山が可能な山の情報とが表示されている。ユーザが地域名を選択すると、地域情報ページが画面に表示される。地域情報ページは、1つの地域に関する情報が表示されるWebページである。また、ユーザがスポットの名称を選択すると、スポット情報ページが画面に表示される。スポット情報ページは、1つのスポットに関する情報が表示されるWebページである。
このように、検索結果ページには、ユーザにより指定されたキーワードの全てに合致する組み合わせが、検索結果として表示される。なお、検索結果ページには、如何なるキーワードが宿泊施設の検索に用いられ、如何なるキーワードが地域の検索に用いられたかを示す情報が表示されてもよい。
ところで、複数のキーワードを、宿泊施設検索条件と地域検索条件とに分割して検索を行っても、ユーザの望む検索結果が得られないこともある。そこで、宿泊施設予約サーバ1は、ユーザの望む検索結果が得られるように、検索処理を行う。
ユーザの望む検索結果を得るための第1の処理として、宿泊施設予約サーバ1は、宿泊施設検索条件を用いて検索された宿泊施設の数が閾値未満であるか否かを判定する。そして、宿泊施設予約サーバ1は、検索された宿泊施設の数が閾値未満である場合、宿泊施設検索条件を検索条件1と検索条件2とに分割する。検索条件1及び2は、それぞれ少なくとも1つ以上のキーワードを含む。検索条件1及び検索条件2は、本発明における孫検索条件の一例である。そして、宿泊施設予約サーバ1は、検索条件1を宿泊施設検索条件とし、検索条件2を地域検索条件に統合する。宿泊施設に対するキーワードの数を減らして、地域に対するキーワードの数を増やす理由は、ユーザの望む検索結果が得られる蓋然性が高くなる場合があるからである。一般的に、1つ地域内には、スポットが複数ある。そのため、検索条件を満たす可能性があるスポットを複数有する地域の方が、1つの宿泊施設よりも、検索条件を満たす蓋然性が高い場合がある。また、検索条件を統合する理由として、検索条件が増加しないことが挙げられる。検索条件が増加すると、検索される組み合わせに含まれる宿泊施設または地域の数が増加する。組み合わせに含まれる宿泊施設と地域との数が少ない方が、ユーザにとって便利である。また、閾値を用いて判定を行う理由は、検索された宿泊施設の数が少なくなると、検索された宿泊施設と地域との中から互いに関連する宿泊施設と地域との組み合わせが抽出される蓋然性が低くなるからである。このときに用いられる閾値を、T2とする。T2は、本発明における第2数の一例である。
図2(b)は、宿泊施設検索条件と地域検索条件との変更例を示す図である。宿泊施設予約サーバ1は、宿泊施設検索条件を、キーワードに関連する対象の種類に応じて、検索条件1と検索条件2とに分割する。検索条件1は、例えば、風呂に関連するキーワードを含む。また、検索条件2は、例えば、食事に関連するキーワードを含む。ユーザに提供される対象の種類でキーワードが分類される理由は、例えば、対象の種類ごとに、適した場所があると考えられるからである。あるいは、例えば、同一の種類に属する複数の対象は同一の場所で提供される方が、ユーザにとって便利であると考えられる。
例えば、図2(b)に示すように、「露天風呂 蟹 飲み放題 岩盤浴」は、「露天風呂 岩盤浴」という検索条件1と、「蟹 飲み放題」という検索条件2と、に分割される。検索条件1は、新たな宿泊施設検索条件となる。宿泊施設予約サーバ1は、新たな宿泊施設検索条件に含まれる全てのキーワードに対応する宿泊施設を検索する。一方、検索条件2が地域検索条件に統合される。そして、地域検索条件は、「登山 ダイビング 花火 蟹 飲み放題」となる。宿泊施設予約サーバ1は、新たな地域検索条件に含まれる全てのキーワードに合致する地域を検索する。そして、宿泊施設予約サーバ1は、新たに検索された宿泊施設と地域との中から、互いに関連する宿泊施設と地域との組み合わせを抽出する。
ただし、宿泊施設予約サーバ1は、新たな宿泊施設検索条件を用いて検索された宿泊施設の数が閾値以上であるか否かを判定し、閾値以上である場合にのみ、検索条件2を地域検索条件に含める。この判定を行う理由は、T2を用いて判定を行う理由と同様である。このときの閾値を、T3とする。この場合、宿泊施設予約サーバ1は、検索条件2の方を、新たな宿泊施設検索条件とする。そして、宿泊施設予約サーバ1は、この新たな宿泊施設検索条件を用いて検索された宿泊施設の数がT3以上である場合、検索条件1の方を、地域検索条件に統合する。このとき、検索された宿泊施設の数がT3未満である場合の処理内容は任意である。例えば、宿泊施設予約サーバ1は、該当する宿泊施設がない旨を表示する検索結果ページをユーザ端末3へ送信してもよい。
ユーザの望む検索結果を得るための第2の処理として、宿泊施設予約サーバ1は、地域検索条件を用いて検索された地域の数が閾値未満である場合には、検索対象とする地域を、これまで検索対象としていた地域の面積よりも広い地域に変更する。そして、宿泊施設予約サーバ1は、新たに検索対象となった複数の地域の中から地域検索条件に含まれる全てのキーワードに合致する地域を検索する。地域を変更する理由は、広い地域ほど、スポットを多く含むからである。従って、広い地域ほど、地域検索条件に含まれる全てのキーワードに合致する蓋然性が高くなる。また、閾値を用いて判定を行う理由は、検索された地域の数が少なくなると、検索された宿泊施設と地域との中から互いに関連する宿泊施設と地域との組み合わせが抽出される蓋然性が低くなるからである。このときに用いられる閾値を、T4とする。T4は、本発明における第3数の一例である。
宿泊施設予約サーバ1においては、検索対象とされる地域の集合が、階層別に定義されている。例えば、第1階層の地域の集合は、市区町村からなる集合である。また、第2階層の地域の集合は、複数の市区町村を統合してできる地域の集合である。この場合の各地域は、都道府県よりも狭い。そして、第3階層の地域の集合は、都道府県からなる集合である。階層の番号が小さいほど、下層にある階層である。また、階層の番号が小さいほど、1つの地域の面積が小さくなる傾向にある。なお、階層の数を何個にするかは任意である。また、各階層において如何なる基準で地域の集合を定義するかも任意である。
宿泊施設予約サーバ1は、最初に、第1階層の地域の集合に対して検索を行う。最初に最も狭い地域を検索対象とする理由は、狭い地域ほど、宿泊施設から、その宿泊施設と組み合わせられた地域にあるスポットに行くまでに要する時間が短くなる蓋然性が高くなるからである。このときに検索された地域の数がT4未満である場合、宿泊施設予約サーバ1は、第2階層の地域の集合に対して検索を行う。この検索の結果、検索された地域の数がT4未満である場合、宿泊施設予約サーバ1は、第3階層の地域の集合に対して検索を行う。こうして、宿泊施設予約サーバ1は、T4以上の数の地域が検索されるまで、検索対象とする地域を変更しながら検索を繰り返す。そして、宿泊施設予約サーバ1は、T4以上の数の地域が検索された場合、そのときの検索結果を用いて、宿泊施設と地域との組み合わせを抽出する。なお、最上層の地域の集合に対して検索を行ってもT4未満の数の地域しか検索されなかった場合の処理内容は任意である。例えば、宿泊施設予約サーバ1は、該当する宿泊施設がない旨を表示する検索結果ページをユーザ端末3へ送信してもよい。
これまでの説明において、判定に用いられる閾値であるT1〜T4は、例えば、宿泊施設予約サイトの管理者により予め設定される。各閾値に如何なる値を設定するかは管理者の任意である。例えば、各閾値に1が設定されてもよい。また、T2及びT3は、検索された宿泊施設の数の閾値である。そのため、T2とT3とが同一であってもよい。
なお、宿泊施設予約サーバ1は、検索条件としてユーザにより当初指定された複数のキーワードを、3つ以上の検索条件に分割してもよい。この場合、宿泊施設検索条件の数と地域検索条件の数とをそれぞれ何個にするかは任意である。宿泊施設予約サーバ1は、宿泊施設検索条件が複数ある場合、宿泊施設検索条件ごとに宿泊施設を検索する。また、宿泊施設予約サーバ1は、地域検索条件が複数ある場合、地域検索条件ごとに地域を検索する。そして、宿泊施設予約サーバ1は、互いに関連する1つ以上の宿泊施設と1つ以上の地域との組み合わせを抽出する。例えば、宿泊施設検索条件が2つであり、地域検索条件が1つである場合、宿泊施設予約サーバ1は、宿泊施設検索条件の一方により検索された宿泊施設の何れかと、宿泊施設検索条件の他方により検索された宿泊施設の何れかと、地域検索条件により検索された地域の何れかと、の組み合わせの中から、互いに関連する2つの宿泊施設と1つの地域との組み合わせを抽出する。組み合わせの中に複数の宿泊施設が含まれていてもよい理由は、ユーザは、旅行や出張している間に、例えば、1日目はある宿泊施設、2日目は別の宿泊施設、というように、組み合わせに含まれる複数の宿泊施設を利用するとともに、その組み合わせに含まれる地域のそれぞれにあるユーザの要求を満たすスポットへ行くことができればよいからである。また、組み合わせの中に複数の地域が含まれていてもよい理由は、ユーザは、旅行や出張している間に、組み合わせに含まれる宿泊施設を利用するとともに、その組み合わせに含まれる複数の地域のそれぞれにあるユーザの要求を満たすスポットへ行くことができればよいからである。
[1−3.宿泊施設予約サーバの構成]
次に、宿泊施設予約サーバ1の構成について、図4及び図5を用いて説明する。
図4は、本実施形態に係る宿泊施設予約サーバ1の概要構成の一例を示すブロック図である。図4に示すように、宿泊施設予約サーバ1は、通信部11と、記憶部12と、入出力インターフェース13と、システム制御部14と、を備えている。そして、システム制御部14と入出力インターフェース13とは、システムバス15を介して接続されている。
通信部11は、ネットワークNWに接続して、宿泊施設端末2やユーザ端末3等との通信状態を制御するようになっている。
記憶部12は、例えば、ハードディスクドライブ等により構成されている。この記憶部12には、会員情報DB12a、宿泊施設情報DB12b、地域情報DB12c、スポット情報DB12d、宿泊施設キーワード情報DB12e等のデータベースが構築されている。「DB」は、データベースの略語である。
図5(a)は、会員情報DB12aに登録される内容の一例を示す図である。会員情報DB12aには、情報提供システムS1に会員登録しているユーザに関する会員情報が登録される。具体的に、会員情報DB12aには、ユーザID、パスワード、ニックネーム、氏名、生年月日、性別、郵便番号、住所、電話番号、電子メールアドレス等のユーザの属性が、ユーザごとに対応付けて登録される。ユーザIDは、ユーザの識別情報である。
図5(b)は、宿泊施設情報DB12bに登録される内容の一例を示す図である。宿泊施設情報DB12bには、宿泊施設に関する宿泊施設情報が登録される。具体的に、宿泊施設情報DB12bには、施設ID、宿泊施設名、地域ID、郵便番号、住所、電話番号、FAX番号、電子メールアドレス、宿泊施設の画像、宿泊施設詳細情報等の宿泊施設の属性が、宿泊施設ごとに対応付けて登録される。施設IDは、宿泊施設の識別情報である。地域IDは、宿泊施設がある地域の識別情報である。宿泊施設情報に設定される地域IDは、例えば、最下層の地域の地域IDである。宿泊施設詳細情報は、宿泊施設に関する詳細な情報を示す文字情報である。例えば、宿泊施設詳細情報は、宿泊施設の紹介、宿泊施設が有する設備、宿泊施設で提供されるサービス、客室にある設備や備品、宿泊施設へのアクセス方法、温泉に関する情報、客室に関する情報等を含む。また、宿泊施設詳細情報は、宿泊プランの情報を含む。宿泊プランの情報は、宿泊プランの名称、宿泊プランの詳細な説明等を含む。
図5(c)は、地域情報DB12cに登録される内容の一例を示す図である。地域情報DB12cには、地域に関する地域情報が登録される。具体的に、地域情報DB12cには、地域ID、階層番号、地域名、地域の説明、位置情報及び地域の画像と、スポットリストまたは地域リストの何れか一方とが、地域ごとに対応付けて登録される。地域IDは、地域の識別情報である。階層番号は、地域が位置する階層の番号である。位置情報は、例えば、地域の中心地の経緯度である。スポットリストは、階層番号が1である場合に登録される。スポットリストは、地域内にあるスポットの一覧である。具体的に、スポットリストには、地域内にある各スポットのスポットIDが登録されている。スポットIDは、スポットの識別情報である。地域リストは、階層番号が2以上である場合に登録される。地域リストは、階層番号が示す階層よりも1つ下の階層にある地域のうち、地域情報により定義される地域内にある地域のリストである。具体的に、地域リストには、地域情報により定義される地域内にある各地域の地域IDが登録されている。第1階層よりも上層にある地域の地域情報には、地域内にあるスポットの一覧が定義されていない。しかしながら、下層にある地域の一覧が定義されている。そのため、下層にある地域の地域情報に基づいて、第1階層よりも上層にある地域についても、地域内にあるスポットを特定することができる。
図5(d)は、スポット情報DB12dに登録される内容の一例を示す図である。スポット情報DB12dには、スポットに関するスポット情報が登録される。具体的に、スポット情報DB12dには、スポットID、スポット名、住所、電話番号、スポットの画像、スポット詳細情報等のスポットの属性が、スポットごとに対応付けて登録される。スポットIDは、スポットの識別情報である。スポット詳細情報は、スポットに関する詳細な情報を示す文字情報である。例えば、スポット詳細情報は、スポットの説明、スポットで提供されるサービス、スポットで購入可能な商品、スポットにある設備、スポットでユーザができること等を含む。
図5(e)は、宿泊施設キーワード情報DB12eに登録される内容の一例を示す図である。宿泊施設キーワード情報DB12eには、宿泊施設で提供される対象に関連するキーワードに関する宿泊施設キーワード情報が登録される。具体的に、宿泊施設キーワード情報DB12eには、キーワード及び提供対象種別等がキーワードごとに対応付けて登録される。キーワードは、宿泊施設で提供される対象に関連するものである。提供対象種別は、キーワードに関連する対象の種類を示す。提供対象種別としては、例えば、食事、風呂、客室等がある。
次に、記憶部12に記憶されるその他の情報について説明する。記憶部12には、Webページを表示するためのHTML(HyperText Markup Language)文書、XML(Extensible Markup Language)文書、画像データ、テキストデータ、電子文書等の各種データが記憶されている。また、記憶部12には、管理者等により設定された各種の設定値が記憶されている。設定値としては、例えば、T1〜T4等の閾値がある。
また、記憶部12には、オペレーティングシステム、WWW(World Wide Web)サーバプログラム、DBMS(Database Management System)、宿泊施設予約処理プログラム等の各種プログラムが記憶されている。宿泊施設予約処理プログラムは、宿泊施設や地域の検索、宿泊施設の予約等の処理を実行するためのプログラムである。宿泊施設予約処理プログラムは、本発明における検索プログラムの一例である。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしてもよいし、DVD(Digital Versatile Disc)等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。
入出力インターフェース13は、通信部11及び記憶部12とシステム制御部14との間のインターフェース処理を行うようになっている。
システム制御部14は、CPU14a、ROM(Read Only Memory)14b、RAM(Random Access Memory)14c等により構成されている。そして、システム制御部14は、CPU14aが、各種プログラムを読み出し実行することにより、本発明における分割手段、検索手段、抽出手段及び変更手段として機能するようになっている。
なお、宿泊施設予約サーバ1が、複数のサーバ装置で構成されてもよい。例えば、宿泊施設や地域の検索を行うサーバ装置、宿泊施設の予約の処理を行うサーバ装置、ユーザ端末3からのリクエストに応じてWebページを送信するサーバ装置、及びデータベースを管理するサーバ装置等が、互いにLAN等で接続されてもよい。
[1−4.情報提供システムの動作]
次に、情報提供システムS1の動作について、図6乃至図8を用いて説明する。
図6は、本実施形態に係る宿泊施設予約サーバ1のシステム制御部14の検索処理における処理例を示すフローチャートである。宿泊施設予約サイトにおいて、ユーザは、ユーザ端末3を操作して、宿泊施設を検索するためのキーワードを1つ以上指定する。すると、ユーザ端末3は、検索リクエストを宿泊施設予約サーバ1へ送信する。検索リクエストは、指定されたキーワードを含む。検索処理は、宿泊施設予約サーバ1が、検索リクエストを受信したときに開始される。
図6に示すように、システム制御部14は、受信した検索リクエストから、指定されたキーワードを全て取得する(ステップS11)。次いで、システム制御部14は、指定された全てのキーワードに合致する宿泊施設を検索する(ステップS12)。具体的に、システム制御部14は、宿泊施設情報DB12bに登録されている宿泊施設情報のうち、宿泊施設名及び宿泊施設詳細情報の少なくとも何れか一方に、指定されたキーワードを含む宿泊施設情報を検索する。キーワードが複数指定されている場合、システム制御部14は、全てのキーワードのそれぞれを、宿泊施設名及び宿泊施設詳細情報の少なくとも何れか一方に含む宿泊施設情報を検索する。
システム制御部14は、ステップS12の処理を終えると、検索された宿泊施設の数がT1以上であるか否かを判定する(ステップS13)。このとき、システム制御部14は、検索された宿泊施設の数がT1以上であると判定した場合には(ステップS13:YES)、検索された宿泊施設の一覧を表示する検索結果ページを、検索リクエストの送信元のユーザ端末3へ送信する(ステップS14)。システム制御部14は、この処理を終えると、検索処理を終了させる。
一方、システム制御部14は、検索された宿泊施設の数がT1未満であると判定した場合には(ステップS13:NO)、指定されたキーワードが複数あるか否かを判定する(ステップS15)。このとき、システム制御部14は、指定されたキーワードが1つであると判定した場合には(ステップS15:NO)、該当する宿泊施設がない旨を表示する検索結果ページを、検索リクエストの送信元のユーザ端末3へ送信する(ステップS30)。システム制御部14は、この処理を終えると、検索処理を終了させる。
なお、システム制御部14は、T1に2以上の値が設定されている場合であって、ユーザにより指定された複数のキーワードの全てに合致する宿泊施設が1つ以上検索された場合には、検索された宿泊施設の一覧を表示する検索結果ページをユーザ端末3へ送信してもよい。
一方、システム制御部14は、指定されたキーワードが複数あると判定した場合には(ステップS15:YES)、指定された複数のキーワードのうち1つを選択する(ステップS16)。次いで、システム制御部14は、選択したキーワードが、宿泊施設で提供される対象に関連するキーワードであるか否かを判定する(ステップS17)。具体的に、システム制御部14は、宿泊施設キーワード情報DB12eから、選択したキーワードと一致するキーワードを検索する。このとき、システム制御部14は、選択したキーワードと一致するキーワードが宿泊施設キーワード情報DB12eに登録されている場合には、選択したキーワードは、宿泊施設で提供される対象に関連するキーワードであると判定する(ステップS17:YES)。この場合、システム制御部14は、選択されたキーワードを、宿泊施設検索条件に含める(ステップS18)。一方、システム制御部14は、選択したキーワードと一致するキーワードが宿泊施設キーワード情報DB12eに登録されていない場合には、選択したキーワードは、宿泊施設で提供される対象に関連するキーワードではないと判定する(ステップS17:NO)。この場合、システム制御部14は、選択されたキーワードを、地域検索条件に含める(ステップS19)。
システム制御部14は、ステップS18またはS19の処理を終えると、指定された複数のキーワードの中に、まだ選択していないキーワードがあるか否かを判定する(ステップS20)。このとき、システム制御部14は、まだ選択していないキーワードがあると判定した場合には(ステップS20:YES)、まだ選択していないキーワードのうち1つを選択する(ステップS21)。次いで、システム制御部14は、ステップS17に移行する。システム制御部14は、ステップS17〜S21の処理を繰り返すことにより、分割手段として、複数のキーワードを、宿泊施設検索条件と地域検索条件とに分割する。そして、システム制御部14は、全てのキーワードを選択したと判定した場合には(ステップS20:NO)、宿泊施設検索条件と地域検索条件のうち、少なくとも何れかの検索条件のキーワードの数が0であるか否かを判定する(ステップS22)。このとき、システム制御部14は、少なくとも何れかの検索条件のキーワードの数が0であると判定した場合には(ステップS22:YES)、ステップS30に移行する。なお、この場合、システム制御部14は、ユーザにより指定された複数のキーワードを、改めて分割し直して、ステップS23に移行してもよい。このとき、システム制御部14は、例えば、ステップS16〜S21の処理における分割方法とは異なる分割方法で、分割を行う。
一方、システム制御部14は、何れの検索条件も、キーワードの数が1以上であると判定した場合には(ステップS22:NO)、宿泊施設検索処理を実行する(ステップS23)。
図7は、本実施形態に係る宿泊施設予約サーバ1のシステム制御部14の宿泊施設検索処理における処理例を示すフローチャートである。
図7に示すように、システム制御部14は、検索手段として、宿泊施設検索条件に含まれる全てのキーワードに合致する宿泊施設を検索する(ステップS41)。このときの検索方法は、検索処理のステップS12における検索方法と基本的に同様である。次いで、システム制御部14は、検索された宿泊施設の数がT2以上であるか否かを判定する(ステップS42)。このとき、システム制御部14は、検索された宿泊施設の数がT2以上であると判定した場合には(ステップS42:YES)、検索処理に対する戻り値として、「該当あり」を設定する(ステップS51)。システム制御部14は、この処理を終えると、宿泊施設検索処理を終了させる。
一方、システム制御部14は、検索された宿泊施設の数がT2未満であると判定した場合には(ステップS42:NO)、分割手段として、宿泊施設検索条件を、検索条件1と検索条件2とに分割する(ステップS43)。具体的に、システム制御部14は、宿泊施設検索条件に含まれる各キーワードに対応する提供対象種別を、宿泊施設キーワード情報DB12eからそれぞれ取得する。次いで、システム制御部14は、提供対象種別で、各キーワードを分類する。こうして、システム制御部14は、提供対象種別が互いに同一であるキーワードで、キーワードのグループを構成する。そして、システム制御部14は、例えば、何れかのキーワードのグループを、検索条件1とし、残りのキーワードのグループを、検索条件2とする。如何なる提供対象種別のキーワードのグループを検索条件1とし、如何なる提供対象種別のキーワードのグループを検索条件2とするかは、任意である。また、キーワードのグループが3つ以上となった場合、システム制御部14は、何れか複数のグループを統合して、キーワードのグループを2つにする。また、キーワードのグループが1つのみであった場合、システム制御部14は、例えば、各キーワードを何れの検索条件に入れるかを、それぞれランダムに決定してもよい。
システム制御部14は、宿泊施設検索条件の分割を終えると、検索手段として、検索条件1に含まれる全てのキーワードに合致する宿泊施設を検索する(ステップS44)。このときの検索方法は、検索処理のステップS12における検索方法と基本的に同様である。次いで、システム制御部14は、検索された宿泊施設の数がT3以上であるか否かを判定する(ステップS45)。このとき、システム制御部14は、検索された宿泊施設の数がT3以上であると判定した場合には(ステップS45:YES)、検索条件2を、地域検索条件に統合する(ステップS46)。次いで、システム制御部14は、ステップS51に移行する。
一方、システム制御部14は、検索された宿泊施設の数がT3未満であると判定した場合には(ステップS45:NO)、検索手段として、検索条件2に含まれる全てのキーワードに合致する宿泊施設を検索する(ステップS47)。このときの検索方法は、検索処理のステップS12における検索方法と基本的に同様である。次いで、システム制御部14は、検索された宿泊施設の数がT3以上であるか否かを判定する(ステップS48)。このとき、システム制御部14は、検索された宿泊施設の数がT3以上であると判定した場合には(ステップS48:YES)、検索条件1を、地域検索条件に統合する(ステップS50)。次いで、システム制御部14は、ステップS51に移行する。
一方、システム制御部14は、検索された宿泊施設の数がT3未満であると判定した場合には(ステップS48:NO)、検索処理に対する戻り値として、「該当なし」を設定する(ステップS49)。システム制御部14は、この処理を終えると、宿泊施設検索処理を終了させる。
なお、システム制御部14は、ステップS45において、検索条件1を用いて検索された宿泊施設の数がT3未満である場合には、検索条件1を検索条件1aと検索条件1bとに更に分割してもよい。そして、システム制御部14は、検索条件1aに含まれる全てのキーワードに合致する宿泊施設を検索するとともに、検索条件1bに含まれる全てのキーワードに合致する宿泊施設を検索してもよい。如何なる基準で検索条件1を分割するかは任意である。例えば、システム制御部14は、提供対象種別に応じて分割してもよいし、ランダムに分割してもよい。システム制御部14が、検索条件1を分割して検索を行った場合、該当宿泊施設集合が複数発生することになる。そこで、システム制御部14は、組み合わせを抽出するとき、検索条件1aで検索された該当宿泊施設集合に含まれる何れかの宿泊施設と、検索条件1bで検索された該当宿泊施設集合に含まれる何れかの宿泊施設と、地域検索条件で検索された該当地域集合に含まれる何れかの地域と、の組み合わせの中から、互いに関連を有する2つの宿泊施設及び1つの地域の組み合わせを抽出する。
また、システム制御部14は、検索条件1aに含まれる全てのキーワードに合致する宿泊施設を検索するとともに、検索条件1bを検索条件2に統合してもよい。そして、システム制御部14は、検索条件1aを用いて検索された宿泊施設の数がT3以上である場合には、検索条件1bを含む検索条件2を地域検索条件に統合してもよい。
また、システム制御部14は、ステップS48において、検索条件2を用いて検索された宿泊施設の数がT3未満である場合にも、検索条件2を更に分割してもよい。分割後の処理内容は、検索条件1を分割した場合の処理内容と基本的に同様である。
システム制御部14は、宿泊施設検索処理を終えると、図6に示すように、宿泊施設検索処理において、戻り値が「該当なし」に設定されているか否かを判定する(ステップS24)。このとき、システム制御部14は、戻り値が「該当なし」に設定されていると判定した場合には(ステップS24:YES)、ステップS30に移行する。一方、システム制御部14は、戻り値が「該当なし」に設定されていないと判定した場合には(ステップS24:NO)、地域検索処理を実行する(ステップS25)。
図8は、本実施形態に係る宿泊施設予約サーバ1のシステム制御部14の地域検索処理における処理例を示すフローチャートである。
図8に示すように、システム制御部14は、階層番号Nに1を設定する(ステップS61)。次いで、システム制御部14は、検索手段として、第N階層の地域の集合から、地域検索条件に含まれる全てのキーワードに合致する地域を検索する(ステップS62)。具体的に、システム制御部14は、地域情報DB12cに登録されている地域情報の中から、階層番号がNである地域情報を1つ選択する。次いで、システム制御部14は、選択した地域情報がスポットリストを含む場合には、スポットリストに登録されている各スポットIDに対応するスポット情報を、スポット情報DB12dから取得する。このときの階層番号Nは1であるので、地域情報はスポットリストを含む。次いで、システム制御部14は、選択した地域情報に含まれる地域名及び地域説明と、取得した各スポット情報に含まれるスポット名及びスポット詳細情報とから、地域検索条件に含まれる各キーワードを検索する。ここで、システム制御部14は、地域検索条件に含まれる全てのキーワードが検索された場合には、選択された地域情報に含まれる地域IDを、地域検索条件に含まれる全てのキーワードに合致する地域の地域IDとして取得する。システム制御部14は、このような処理を、階層番号がNである全ての地域情報について実行する。
システム制御部14は、ステップS62の処理を終えると、検索された地域の数がT4以上であるか否かを判定する(ステップS63)。このとき、システム制御部14は、検索された地域の数がT4以上であると判定した場合には(ステップS63:YES)、検索処理に対する戻り値として、「該当あり」を設定する(ステップS64)。システム制御部14は、この処理を終えると、地域検索処理を終了させる。
一方、システム制御部14は、検索された地域の数がT4未満であると判定した場合には(ステップS63:NO)、階層番号Nが最上位の階層の番号と一致するか否かを判定する(ステップS65)。このとき、システム制御部14は、階層番号Nが最上位の階層の番号と一致しないと判定した場合には(ステップS65:NO)、階層番号Nに1を加算する(ステップS66)。これにより、システム制御部14は、変更手段として、検索対象とする地域の広さを、ステップS62において直前に検索が行われたときよりも広くする。次いで、システム制御部14は、ステップS62に移行する。
システム制御部14は、ステップS62〜S66の処理を繰り返すことにより、検索された地域の数がT4以上となるまで、検索対象とする地域を、徐々に広い地域に変更しながら、地域の検索を繰り返す。ここで、ステップS62においては、階層番号Nが2以上である場合、検索の処理対象とする地域情報に、スポットリストが含まれていない。この場合、システム制御部14は、地域情報に含まれている地域リストに登録されている各地域IDに対応する地域情報を、地域情報DB12cから取得する。次いで、システム制御部14は、取得した地域情報にスポットリストが含まれているか否かを判定する。このとき、システム制御部14は、取得した地域情報にスポットリストが含まれていない場合には、取得した地域情報に含まれる地域リストに登録されている各地域IDに対応する地域情報を更に取得する。システム制御部14は、スポットリストを含む地域情報を取得するまで、地域情報の取得を繰り返す。そして、システム制御部14は、取得した地域情報に含まれるスポットリストに基づいて、スポット情報を取得する。システム制御部14は、取得したスポット情報を用いてキーワードの検索を行う。
ステップS65において、システム制御部14は、階層番号Nが最上位の階層の番号と一致すると判定した場合には(ステップS65:YES)、戻り値として、「該当なし」を設定する(ステップS67)。これ以上、検索対象とする地域が存在しないからである。システム制御部14は、この処理を終えると、地域検索処理を終了させる。
なお、システム制御部14は、階層番号Nが最上位の階層の番号と一致すると判定した場合には、地域検索条件を、地域検索条件1と地域検索条件2とに更に分割してもよい。そして、システム制御部14は、地域検索条件1に含まれる全てのキーワードに合致する地域を検索するとともに、地域検索条件2に含まれる全てのキーワードに合致する地域を検索してもよい。如何なる基準で地域検索条件を分割するかは任意である。例えば、システム制御部14は、キーワードに関連する対象の種類に応じて分割してもよい。システム制御部14が、地域検索条件を分割して検索を行った場合、該当地域集合が複数発生することになる。そこで、システム制御部14は、組み合わせを抽出するとき、宿泊施設検索条件で検索された該当宿泊施設集合に含まれる何れかの宿泊施設と、地域条件1で検索された該当地域集合に含まれる何れかの地域と、地域施設条件2で検索された該当地域集合に含まれる何れかの地域と、の組み合わせの中から、互いに関連を有する1つの宿泊施設及び2つの地域の組み合わせを抽出する。
システム制御部14は、地域検索処理を終えると、図6に示すように、地域検索処理において、戻り値が「該当なし」に設定されているか否かを判定する(ステップS26)。このとき、システム制御部14は、戻り値が「該当なし」に設定されていると判定した場合には(ステップS26:YES)、ステップS30に移行する。
一方、システム制御部14は、戻り値が「該当なし」に設定されていないと判定した場合には(ステップS26:NO)、抽出手段として、宿泊施設検索処理において検索された宿泊施設の集合である該当宿泊施設集合と、地域検索処理において検索された地域の集合である該当地域集合から、互いに関連する宿泊施設と地域との組み合わせを抽出する(ステップS27)。例えば、システム制御部14は、検索された宿泊施設がある地域と、検索された地域との位置関係に基づいて、組み合わせを抽出する。宿泊施設がある地域は、宿泊施設情報に含まれる地域IDにより示される。例えば、検索された各宿泊施設について、宿泊施設がある地域が、検索された何れかの地域と同一であるか、または、検索された何れかの地域に含まれるか否かを判定する。つまり、システム制御部14は、宿泊施設が、何れかの地域内にあるか否かを判定する。そして、システム制御部14は、宿泊施設が、検索された何れかの地域内にある場合、この宿泊施設と地域とを組み合わせとして選択する。また、宿泊施設がある地域と隣接または近接する地域も、宿泊施設と関連する地域に含める場合、例えば、記憶部12に、如何なる地域と如何なる地域とが隣接するかを示す情報、または、如何なる地域と如何なる地域とが近接するかを示す情報を登録するデータベースが構築されてもよい。そして、システム制御部14は、このデータベースに基づいて、宿泊施設が、検索された何れかの地域と隣接しまたは近接する地域にある場合、この宿泊施設と地域とを組み合わせとして選択する。また、システム制御部14は、距離に基づいて組み合わせを抽出する場合、宿泊施設の住所に基づいて、宿泊施設がある場所の経緯度を取得する。そして、システム制御部14は、宿泊施設がある場所から地域の中心地までの距離を計算する。そして、システム制御部14は、計算された距離が、予め設定された距離以下である宿泊施設と地域との組み合わせを抽出する。
システム制御部14は、ステップS27の処理を終えると、抽出された組み合わせがT5以上であるか否かを判定する(ステップS28)。T5は、例えば、宿泊施設予約サイトの管理者により設定された閾値である。T5に如何なる値を設定するかは管理者の任意である。例えば、1が設定されてもよい。システム制御部14は、抽出された組み合わせがT5未満であると判定した場合には(ステップS28:NO)、ステップS30に移行する。
なお、システム制御部14は、抽出された組み合わせがT5未満であると判定した場合には、ユーザにより指定された複数のキーワードを、改めて分割し直して、ステップS23に移行してもよい。この場合、システム制御部14は、宿泊施設検索条件及び地域検索条件のそれぞれに含まれるキーワードの組み合わせが、最初の分割によってできた宿泊施設検索条件及び地域検索条件のそれぞれに含まれるキーワードの組み合わせと異なるように、分割を行う。
また、T4に2以上の値が設定されている場合、組み合わせが1つ以上抽出されたのにもかかわらず、ステップS30への移行によって、抽出された組み合わせに対応する組み合わせ表示領域120が検索結果ページに表示されない場合がある。そこで、システム制御部14は、一組以上の組み合わせが抽出された場合には、ステップS29に移行してもよい。
ステップS28において、システム制御部14は、抽出された組み合わせがT5以上であると判定した場合には(ステップS28:YES)、抽出された組み合わせを一覧表示する検索結果ページのHTML文書を、検索リクエストの送信元のユーザ端末3へ送信する(ステップS29)。具体的に、システム制御部14は、組み合わせに含まれる宿泊施設の宿泊施設情報に含まれる宿泊施設名、宿泊施設詳細情報等に基づいて、宿泊施設情報表示領域110の表示用のデータを生成する。このとき、システム制御部14は、宿泊施設検索条件に含まれるキーワードが宿泊プランに合致した場合には、その宿泊プランの情報が表示されるように、表示用のデータを生成する。また、システム制御部14は、組み合わせに含まれる地域の地域情報に含まれる地域名、地域説明に基づいて、地域情報表示領域120の表示用のデータを生成する。このとき、システム制御部14は、地域検索条件に含まれるキーワードが地域内のスポットに合致した場合には、スポットの情報が表示されるように、表示用のデータを生成する。次いで、システム制御部14は、宿泊施設情報表示領域110の表示用のデータと、地域情報表示領域120の表示用のデータとを含むHTML文書を生成する。そして、システム制御部14は、生成したHTML文書を送信する。システム制御部14は、ステップS29の処理を終えると、検索処理を終了させる。ユーザ端末3は、宿泊施設予約サーバ1から受信したHTML文書に基づいて、検索結果ページを、例えば図3に示すように表示する。
なお、T1に2以上の値が設定されている場合、ユーザにより指定された複数のキーワードの全てに合致する宿泊施設が1つ以上検索されたのにもかかわらず、宿泊施設と地域との組み合わせが検索される場合がある。この場合、システム制御部14は、検索された宿泊施設の情報と、検索された宿泊施設と地域との組み合わせの情報との両方が表示されるように、検索結果ページのHTML文書を生成してもよい。
以上説明したように、本実施形態によれば、宿泊施設予約サーバ1のシステム制御部14が、検索条件として指定された複数のキーワードを、それぞれ少なくとも1つのキーワードを含む宿泊施設検索条件と地域検索条件とに分割し、宿泊施設検索条件に含まれるキーワードの全てに合致する宿泊施設と、地域検索条件に含まれるキーワードの全てに合致する地域と、をそれぞれ検索し、宿泊施設検索条件により検索された宿泊施設の何れかと、地域検索条件により検索された地域の何れかと、の組み合わせの中から、互いに予め定められた関連を有する宿泊施設と地域との組み合わせを抽出する。従って、検索条件として指定された複数のキーワードの全てに合致する宿泊施設が満足に存在しない場合であっても、検索条件を変えることなく、ユーザが望む検索結果を、宿泊施設と地域乃組み合わせとして得ることができる。
また、システム制御部14が、検索条件として指定された複数のキーワードの全てに合致する宿泊施設の検索を行った結果、検索された宿泊施設の数がT1未満である場合に、複数のキーワードを分割する。従って、ユーザにとってより望ましい十分な数の検索結果を得ることができるとともに、不要な検索処理が実行されないようにすることができる。
また、システム制御部14が、宿泊施設検索条件により検索された宿泊施設の数がT2未満である場合に、宿泊施設検索条件を検索条件1と検索条件2とに分割するとともに、検索条件2を地域検索条件に統合し、検索条件1に含まれるキーワードの全てに合致する宿泊施設と、地域検索条件に含まれるキーワードの全てに合致する地域と、をそれぞれ検索し、検索条件1により検索された宿泊施設の何れかと、地域検索条件により検索された地域の何れかと、の組み合わせの中から、互いに関連を有する宿泊施設と地域との組み合わせを抽出する。従って、抽出される組み合わせに含まれる宿泊施設または地域の数を増やすことなく、ユーザが望む十分な数の検索結果を、より得やすくすることができる。
また、システム制御部14が、複数のキーワードのそれぞれごとに、キーワードが宿泊施設により提供される提供対象に関連するキーワードであるか否かを判定し、提供対象に関連すると判定されたキーワードを宿泊施設検索条件に含め、提供対象に関連すると判定されなかったキーワードを地域検索条件に含める。従って、ユーザが望む提供対象を提供する宿泊施設を含む組み合わせを十分な数得ることができる。
また、システム制御部14が、宿泊施設検索条件により検索された何れかの宿泊施設の場所が、地域検索条件により検索された何れかの地域に対して予め定められた範囲内にある場合に、その宿泊施設とその地域とを、互いに関連を有する施設と地域の組み合わせとして抽出する。従って、ユーザが同時期に宿泊施設と地域との両方に行きやすい組み合わせを得ることができる。
また、システム制御部14が、地域検索条件により検索された地域の数がT4未満である場合、検索対象とする地域の広さを、T4未満の数の地域が検索されたときよりも広くし、広さが変更された地域を検索対象として、地域検索条件に含まれるキーワードの全てに合致する地域を検索し、宿泊施設検索条件により検索された宿泊施設の何れかと、広さが変更された地域を検索対象として地域検索条件により検索された地域の何れかと、の組み合わせの中から、互いに関連を有する宿泊施設と地域との組み合わせを抽出する。従って、検索された地域の数がT4よりも少ない場合には、検索対象とされる地域の広さが広くなるので、地域検索条件に含まれるキーワードの全てに合致する地域が検索される蓋然性が高くなる。そのため、ユーザが望む十分な数の検索結果を、より得やすくすることができる。
[2.第2実施形態]
以下に説明する第2実施形態は、商品を購入するための情報提供システムに対して本発明を適用した場合の実施形態である。
[2−1.情報提供システムの構成及び機能概要]
先ず、本実施形態に係る情報提供システムS2の構成について、図9を用いて説明する。図9は、本実施形態に係る情報提供システムS2の概要構成の一例を示す図である。図9において、図1と同様の要素については、同様の符号を付してある。
図9に示すように、情報提供システムS2は、電子商店街サーバ4と、複数の店舗端末5と、複数のユーザ端末6と、を含んで構成されている。そして、電子商店街サーバ4と各店舗端末5及び各ユーザ端末6とは、ネットワークNWを介して相互にデータの送受信が可能になっている。
電子商店街サーバ4は、商品の購入が可能な電子商店街に関する各種処理を実行するサーバ装置である。電子商店街サーバ4は、本発明における検索装置の一例である。ユーザは、電子商店街を利用することにより、所望の店舗から所望の商品を購入することができる。電子商店街サーバ4は、ユーザ端末6からのリクエストに応じて、例えば、電子商店街のWebページを送信したり、商品の検索や購入等に関する処理を行ったりする。なお、商品は、本発明における検索対象の一例である。
店舗端末5は、電子商店街に出店している店舗の従業員等により利用される端末装置である。店舗端末5は、従業員等からの操作に基づいて電子商店街サーバ4等のサーバ装置にアクセスする。これにより、店舗端末5は、サーバ装置からWebページを受信して表示する。店舗端末5には、ブラウザや電子メールクライアント等のソフトウェアが組み込まれている。従業員は、店舗端末5を利用することにより、例えば、販売する商品の情報を電子商店街に登録したり、商品の注文内容を確認したりする。
ユーザ端末6は、電子商店街を利用するユーザの端末装置である。なお、ユーザ端末6の構成及び機能は、第1実施形態におけるユーザ端末3の構成及び機能と基本的に同一である。
ユーザは、電子商店街において購入候補となる商品を探すために、検索条件を指定することができる。例えば、検索条件として、キーワードの指定が可能である。ユーザは、例えば、ユーザが所望する商品の条件を簡潔に表す語を、キーワードとして指定することができる。検索条件が指定されると、電子商店街サーバ4は、検索条件を満たす商品を検索する。具体的に、電子商店街サーバ4は、指定されたキーワードを商品名や商品説明に含む商品を検索する。そして、電子商店街サーバ4は、商品検索結果ページをユーザ端末6へ送信する。
商品検索結果ページは、検索された商品の一覧が表示されるWebページである。例えば、商品検索結果ページは、商品名、商品の画像、商品価格、販売元の店舗名等が、商品ごとに表示される。また、商品検索結果ページには、検索された商品の商品ページへのリンクが埋め込まれている。商品検索結果ページにおいて、ユーザは、任意の商品のリンクを選択すると、対応する商品ページがユーザ端末6の画面に表示される。商品ページは、1つの商品に関する詳細な情報が表示されるWebページである。ユーザは、商品ページにおいて、商品を注文するための操作を行うことにより、商品ページに情報が表示されている商品を購入することができる。
[2−2.指定された複数のキーワードの分割]
ユーザは、商品を検索する場合にも、商品に対して要求する条件を複数持っている場合がある。複数の検索条件が指定されると、第1実施形態の場合と同様の理由で、ユーザが望む十分な数の検索結果をユーザが得ることができない場合がある。
そこで、電子商店街サーバ4は、検索条件として指定された複数のキーワードを、それぞれ少なくとも1つのキーワードを含む部分検索条件1と部分検索条件2とに分割する。部分検索条件1及び部分検索条件2は、本発明における子検索条件の一例である。次いで、電子商店街サーバ4は、部分検索条件ごとに、部分検索条件に含まれる全てのキーワードに合致する商品を検索する。部分検索条件ごとに検索された商品の集合を、「該当商品集合」という。次いで、電子商店街サーバ4は、部分検索条件1を用いて検索された該当商品集合に含まれる商品の何れかと、部分検索条件2を用いて検索された該当商品集合に含まれる商品の何れかと、の組み合わせの中から、互いに関連を有する商品の組み合わせを抽出する。そして、電子商店街サーバ4は、抽出した組み合わせを、検索結果としてユーザ端末6によりユーザへ提示させる。
如何なる商品の組み合わせを互いに関連する商品の組み合わせとするかの判断基準の一例を説明する。ユーザの要求を全て満たす理想的な商品が存在すると仮定する。そして、複数の商品を同時にまたは組み合わせて利用することで、複数の商品が、理想的な商品の代用品になるか否かで判断される。ユーザは、このような条件を満たす商品の組み合わせを購入することで、自分の要求を満たすことができる。互いに関連する商品の組み合わせとしては、例えば、メーカーが同一である複数の商品、ジャンルが同一である複数の商品、販売元の店舗が同一である複数の商品、主商品と主商品に対するオプション品との関係にある複数の商品等がある。オプション品としては、例えば、主商品である電動歯ブラシに対して替えブラシ等の消耗品、主商品であるモバイルパソコンに対してモバイルパソコンを収納するケース等のアクセサリー等がある。
図10(a)は、商品の検索例を示す図である。例えば、ユーザは、パーソナルコンピュータを購入したいと思ったとする。そして、ユーザは、X社製であり、オフィスソフトウェアがプリインストールされており、且つ、メモリの容量が4Gバイトであることを、パーソナルコンピュータに対して望んでいると思っているとする。そこで、ユーザは、例えば、図10(a)に示すように、複数のキーワードとして、「X社 パーソナルコンピュータ オフィス メモリ4Gバイト」を指定したとする。
電子商店街サーバ4は、指定された複数のキーワードの全てに対応する商品を検索し、検索された商品の数が閾値未満である場合には、複数のキーワードを、部分検索条件1と部分検索条件2とに分割する。このときに用いられる閾値を、T6とする。T6は、本発明における第1数の一例である。このとき、如何なる基準で複数のキーワードを分割するかは任意である。例えば、M個のキーワードが指定された場合、電子商店街サーバ4は、M個のキーワードを、M−1個のキーワードを含む部分検索条件1と、1個のキーワードを含む部分検索条件2とに分割してもよい。このように分割する理由は、抽出する組み合わせに含まれる商品のうち、少なくとも1つの商品を、ユーザの要求を大部分満たす商品とするためである。この場合、部分検索条件1を用いて検索される商品が、ユーザの要求を大部分満たす商品となる。また、この場合、電子商店街サーバ4は、M個のキーワードのそれぞれで検索される商品の数を取得し、検索される商品の数が最も少ないキーワードを、部分検索条件2に入れるようにしてもよい。検索される商品の数が最も少ないキーワードが、ユーザが望む十分な数の検索結果を得ることができない最大の要因となっている蓋然性があるからである。ユーザが望む十分な数の検索結果を得ることができない要因となっているキーワードを部分検索条件1から外すことによって、部分検索条件1を満たす商品を検索することができる蓋然性を高めることができる。なお、電子商店街サーバ4は、別の方法で複数のキーワードを分割してもよい。
例えば、検索される商品の数が最も少ないキーワードが「メモリ4Gバイト」であるとする。この場合、「X社 パーソナルコンピュータ オフィス メモリ4Gバイト」が、「X社 パーソナルコンピュータ オフィス」という部分検索条件1と、「メモリ4Gバイト」という部分検索条件2と、に分割される。
そして、「X社 パーソナルコンピュータ オフィス」に合致する商品として、商品A−1、A−2及びA−3が検索されたとする。商品A−1は、据え置き型のパーソナルコンピュータである。A−2及びA−3は、ノートパソコンである。また、商品A−1、A−2及びA−3は、X社製のパーソナルコンピュータであり、オフィスソフトウェアがプリインストールされている蓋然性がある。一方、「メモリ4Gバイト」に合致する商品として、商品B−1、B−2及びB−3が検索されたとする。商品B−1は、据え置き型のパーソナルコンピュータである。商品B−2は、据え置き型のパーソナルコンピュータ用の増設メモリである。商品B−3は、携帯用のメモリカードである。商品B−1、B−2及びB−3は、メモリの容量が4Gバイトである蓋然性がある。
ここで、商品A−1と商品B−2とは、主商品とオプション品との関係にある。そこで、商品A−1と商品B−2との組み合わせが、検索結果として抽出される。商品A−1に対して、商品B−2を組み込むことによって、ユーザの要求を満たすパーソナルコンピュータができあがるからである。一方、商品A−1と商品B−1とは、ジャンルが互いに同一である。しかしながら、商品A−1と商品B−1とを組み合わせることはできない。また、商品A−1と商品B−1とを同時に利用することができたとしても、ユーザの要求を満たす商品とはならない。そのため、商品A−1と商品B−1との組み合わせは抽出されない。
また、商品A−2や商品A−3に対して、商品B−2を組み込むことはできない。そのため、商品A−2と商品B−2との組み合わせ、及び商品A−3と商品B−2と組み合わせは抽出されない。また、商品B−3を、商品A−1ないしA−3に接続することができるかもしれないが、商品B−3は、パーソナルコンピュータのオプション品ではない。そのため、商品B−3を含む組み合わせは抽出されない。
如何なる商品の組み合わせを、互いに関連する商品の組み合わせとするかは、例えば、商品のジャンルに応じて変えてもよい。上述したパーソナルコンピュータの例では、ジャンルが互いに同一である複数の商品は、互いに関連する商品の組み合わせにはならなかった。しかしながら、商品のジャンルによっては、ジャンルが互いに同一である複数の商品は、互いに関連する商品の組み合わせになる場合がある。例えば、ユーザは、牡蠣、蟹及び海老が入った鍋のセットを購入したいとする。そこで、ユーザは、複数のキーワードとして、「鍋セット 牡蠣 蟹 海老」を指定したとする。「鍋セット 牡蠣 蟹 海老」に対応する商品がなかった場合、「鍋セット 牡蠣 蟹 海老」が、例えば、「鍋セット 牡蠣 蟹」と「海老」とに分割される。そして、「鍋セット 牡蠣 蟹」に対応する商品として、牡蠣及び蟹が入った鍋のセットが検索され、「海老」に対応する商品として、食用の海老が検索されたとする。牡蠣及び蟹が入った鍋に海老を入れることで、ユーザが食べたい鍋を作ることができる。鍋セット及び海老の何れも食品である。電子商店街サーバ4が、ジャンルが食品である複数の商品を組み合わせとして抽出することで、ユーザの要求を満たす商品の組み合わせを抽出することができる。
電子商店街サーバ4は、部分検索条件1を用いて検索された商品の数が閾値未満である場合、部分検索条件1を部分検索条件1aと部分検索条件1bとに更に分割してもよい。部分検索条件1a及び部分検索条件1bは、本発明における孫検索条件の一例である。次いで、電子商店街サーバ4は、部分検索条件1aに含まれる全てのキーワードに合致する商品と、部分検索条件1bに含まれる全てのキーワードに合致する商品と、検索条件2に含まれる全てのキーワードに合致する商品と、をそれぞれ検索する。そして、電子商店街サーバ4は、部分検索条件1aを用いて検索された商品の何れかと、部分検索条件1bを用いて検索された商品の何れかと、部分検索条件2を用いて検索された商品の何れかと、の組み合わせのうち、互いに関連する商品の組み合わせを抽出してもよい。このときに用いられる閾値を、T7とする。T7は、本発明における第2数の一例である。
図10(b)は、部分検索条件1の分割例を示す図である。
例えば、部分検索条件1に含まれる「X社」、「パーソナルコンピュータ」及び「オフィス」のうち、「オフィス」で検索される商品の数が最も少ないとする。この場合、「X社 パーソナルコンピュータ オフィス」が、「X社 パーソナルコンピュータ」を含む部分検索条件1と、「オフィス」を含む部分検索条件2と、に分割される。例えば、「X社 パーソナルコンピュータ」に合致する商品として、X社製のパーソナルコンピュータが検索され、「オフィス」に合致する商品としてオフィスソフトウェアが検索され、「メモリ4Gバイト」に合致する商品として、パーソナルコンピュータ用の増設メモリが検索されたとする。ここで、オフィスソフトウェアは、パーソナルコンピュータにインストールすることができるので、オフィスソフトウェアをパーソナルコンピュータのオプション品と考えることができる。また、増設メモリは、パーソナルコンピュータのオプション品である。従って、パーソナルコンピュータ、オフィスソフトウェア及び増設メモリの組み合わせが抽出される。
なお、電子商店街サーバ4は、検索条件としてユーザにより当初指定された複数のキーワードを、3つ以上の部分検索条件に分割してもよい。この場合も、電子商店街サーバ4は、部分検索条件ごとに、商品を検索する。抽出される組み合わせに含まれる商品の数は、部分検索条件の数と同数になる。また、電子商店街サーバ4は、部分検索条件を更に分割するときにも、3つ以上の部分検索条件に分割してもよい。
図11は、商品検索結果ページの表示例を示す図である。商品の組み合わせが検索された場合、例えば、図11に示すように、商品検索結果ページが表示される。商品検索結果ページには、組み合わせ表示領域200が表示される。組み合わせ表示領域200は、検索された組み合わせごとに表示される。図11は、商品A−1とB−2との組み合わせに対応する組み合わせ表示領域200の表示例である。
組み合わせ表示領域200には、複数の商品表示領域210が表示される。商品表示領域210には、組み合わせに含まれる商品に関する情報が表示される。商品表示領域210は、商品ごとに表示される。具体的に、商品情報表示領域210には、例えば、商品名、商品の画像、商品価格、販売元の店舗名等が表示される。
[2−3.電子商店街サーバの構成]
次に、電子商店街サーバ4の構成について、図12及び図13を用いて説明する。
図12は、本実施形態に係る電子商店街サーバ4の概要構成の一例を示すブロック図である。図12に示すように、電子商店街サーバ4は、通信部41と、記憶部42と、入出力インターフェース43と、システム制御部44と、を備えている。そして、システム制御部44と入出力インターフェース43とは、システムバス45を介して接続されている。
通信部41は、ネットワークNWに接続して、店舗端末5やユーザ端末6等との通信状態を制御するようになっている。
記憶部42は、例えば、ハードディスクドライブ等により構成されている。この記憶部42には、会員情報DB42a、ジャンル情報DB42b、店舗情報DB42c、商品情報DB42d、関連商品情報DB42e等のデータベースが構築されている。
図13(a)は、会員情報DB42aに登録される内容の一例を示す図である。会員情報DB42aには、情報提供システムS2に会員登録しているユーザに関する会員情報が登録される。会員情報DB42aに登録される内容は、第1実施形態における会員情報DB12aに登録される内容と基本的に同一である。
図13(b)は、ジャンル情報DB42bに登録される内容の一例を示す図である。ジャンル情報DB42bには、商品のジャンルに関するジャンル情報が登録されている。具体的に、ジャンル情報DB42bには、ジャンルID、ジャンル名、ジャンルのレベル、親ジャンルID、子ジャンルIDリスト等のジャンルの属性が、ジャンルごとに対応付けて登録される。ジャンル情報は、例えば、電子商店街の管理者等により設定される。
商品のジャンルは、木構造で階層的に定義されている。具体的に、木構造の各ノードが、ジャンルに相当する。ノードの深さが、そのノードに相当するジャンルのレベル(階層)に相当する。ノードの深さは、根に位置するノード(以下、「根ノード」という)からの距離である。レベルの値が大きいほど、レベルとしての深さが深く、レベルの値が小さいほど、レベルとしての深さが浅い。根ノードが有する子ノードに相当するジャンルがレベル1のジャンルである。レベル1のジャンルが最上位のジャンルである。レベル1の各ジャンルに対しては、子ノードに相当するジャンルが、レベル2のジャンルとして定義されている。ここで、あるジャンルC1の子ノードに相当するジャンルC2を、ジャンルC1の「子ジャンル」という。また、このときのジャンルC1を、ジャンルC2の「親ジャンル」という。子ジャンルは、親ジャンルを更に複数に区分したときに、同じような商品が属する範囲である。従って、子ジャンルは親ジャンルに属する。
ジャンルIDは、ジャンル情報によって定義されるジャンルの識別情報である。親ジャンルIDは、ジャンル情報によって定義されるジャンルの親ジャンルのジャンルIDである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルの子ジャンルのジャンルIDのリストである。子ジャンルIDリストは、ジャンル情報によって定義されるジャンルが子ジャンルを有する場合に設定される。
図13(c)は、店舗情報DB42cに登録される内容の一例を示す図である。店舗情報DB42cには、電子商店街に出店している店舗に関する店舗情報が登録される。具体的に、店舗情報DB42cには、店舗ID、店舗名、郵便番号、住所、電話番号、電子メールアドレス等の店舗の属性が、店舗ごとに対応付けて登録される。店舗IDは、店舗の識別情報である。
図13(d)は、商品情報DB42dに登録される内容の一例を示す図である。商品情報DB42dには、電子商店街で販売されている商品に関する商品情報が登録される。具体的に、商品情報DB42dには、商品ID、店舗ID、商品コード、ジャンルID、商品名、商品画像のURL(Uniform Resource Locator)、商品説明、商品価格等の商品の属性が、店舗が販売する商品ごとに対応付けて登録される。
商品IDは、店舗が、販売する商品を管理するための商品の識別情報である。店舗IDは、商品の販売元の店舗を示す。商品コードは、商品を識別するコード番号である。同一の商品に対しては同一の商品コードが付与される。商品コードとしては、例えば、JAN(Japanese Article Number Code)コードがある。商品IDは、基本的に商品ページと一対一で対応する。従って、商品コードが同一の商品であっても、商品情報が異なる複数の商品に対しては、互いに異なる商品IDが付与される。ジャンルIDは、商品が属するジャンルのジャンルIDである。基本的には、最下位のレベルに定義されているジャンル(木構造における葉ノードに相当するジャンル)のジャンルIDが設定されている。つまり、各商品は、最も細分化されたジャンルでジャンル分けされている。商品名は、店舗が付けた商品の名称である。そのため、この商品名は、商品の正式な名称とは異なる場合がある。
図13(e)は、関連商品情報DB42eに登録される内容の一例を示す図である。関連商品情報DB42eには、主商品とオプション品との関係にある複数の商品に関する関連商品情報が登録される。具体的に、関連商品情報DB42eには、主商品の商品コード及びオプション品の商品コードが、主商品とオプション品との組み合わせごとに対応付けて登録される。
また、記憶部42には、HTML文書、XML文書、画像データ、テキストデータ、電子文書等の各種データ、及び、管理者等により設定された各種の設定値が記憶されている。
また、記憶部42には、オペレーティングシステム、WWWサーバプログラム、DBMS、電子商取引管理プログラム等の各種プログラムが記憶されている。電子商取引管理プログラムは、商品の検索、商品の注文等の処理を実行するためのプログラムである。電子商取引管理プログラムは、本発明における検索プログラムの一例である。なお、各種プログラムは、例えば、他のサーバ装置等からネットワークNWを介して取得されるようにしてもよいし、DVD等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。
入出力インターフェース43は、通信部41及び記憶部42とシステム制御部44との間のインターフェース処理を行うようになっている。
システム制御部44は、CPU14a、ROM(Read Only Memory)44b、RAM(Random Access Memory)44c等により構成されている。そして、システム制御部44は、CPU44aが、各種プログラムを読み出し実行することにより、本発明における分割手段、検索手段及び抽出手段として機能するようになっている。なお、電子商店街サーバ4が、複数のサーバ装置で構成されてもよい。
[2−4.情報提供システムの動作]
次に、情報提供システムS2の動作について、図14を用いて説明する。
図14は、本実施形態に係る電子商店街サーバ4のシステム制御部44の検索処理における処理例を示すフローチャートである。電子商店街において、ユーザは、ユーザ端末6を操作してキーワードを1つ以上指定する。すると、ユーザ端末6は、検索リクエストを電子商店街サーバ4へ送信する。検索リクエストは、指定されたキーワードを含む。検索処理は、電子商店街サーバ4が、検索リクエストを受信したときに開始される。
図14に示すように、システム制御部44は、受信した検索リクエストから、指定されたキーワードを全て取得する(ステップS81)。次いで、システム制御部44は、指定された全てのキーワードに対応する商品を検索する(ステップS82)。具体的に、システム制御部44は、商品情報DB42dに登録されている商品情報のうち、商品名及び商品説明の少なくとも何れか一方に、指定されたキーワードを含む商品情報を検索する。キーワードが複数指定されている場合、システム制御部44は、全てのキーワードのそれぞれを、商品名及び商品説明の少なくとも何れか一方に含む商品情報を検索する。
システム制御部44は、ステップS82の処理を終えると、検索された商品の数がT6以上であるか否かを判定する(ステップS83)。このとき、システム制御部44は、検索された商品の数がT6以上であると判定した場合には(ステップS83:YES)、検索された商品の一覧を表示する商品検索結果ページを、検索リクエストの送信元のユーザ端末6へ送信する(ステップS84)。システム制御部44は、この処理を終えると、検索処理を終了させる。
なお、システム制御部44は、T6に2以上の値が設定されている場合であって、ユーザにより指定された複数のキーワードの全てに合致する商品が1つ以上検索された場合には、検索された商品の一覧を表示する商品検索結果ページをユーザ端末6へ送信してもよい。
一方、システム制御部44は、検索された商品の数がT6未満であると判定した場合には(ステップS83:NO)、指定されたキーワードが複数あるか否かを判定する(ステップS85)。このとき、システム制御部44は、指定されたキーワードが1つであると判定した場合には(ステップS85:NO)、該当する商品がない旨を表示する商品検索結果ページを、検索リクエストの送信元のユーザ端末6へ送信する(ステップS97)。システム制御部44は、この処理を終えると、検索処理を終了させる。
一方、システム制御部44は、指定されたキーワードが複数あると判定した場合には(ステップS85:YES)、分割手段として、指定された複数のキーワードを、部分検索条件1と部分検索条件2とに分割する(ステップS86)。具体的に、システム制御部44は、指定された複数のキーワードのそれぞれで検索される商品の数を取得する。このとき、システム制御部44は、実際に商品の検索を行ってもよい。また、システム制御部44は、定期的に様々なキーワードで商品の検索を行い、検索された商品の数をキーワードに対応付けて記憶部42に記憶させておいてもよい。そして、システム制御部44は、記憶部42から検索される商品の数を取得してもよい。システム制御部44は、検索された商品の数が最も少ないキーワードの1つを部分検索条件2に含め、残りのキーワードを部分検索条件1に含める。
システム制御部44は、ステップS86の処理を終えると、検索手段として、部分検索条件1に含まれる全てのキーワードに合致する商品を検索する(ステップS87)。この場合の検索方法は、ステップS82における検索方法と基本的に同様である。次いで、システム制御部44は、検索された商品の数がT7以上であるか否かを判定する(ステップS88)。このとき、システム制御部44は、検索された商品の数がT7未満であると判定した場合には(ステップS88:NO)、部分検索条件1を更に分割可能であるか否かを判定する(ステップS89)。例えば、部分検索条件1に含まれるキーワードの数が予め設定された数になるまで、分割可能であると定められていてもよい。また例えば、分割可能な最大の回数が予め設定されており、その回数になるまで分割可能であると定められていてもよい。システム制御部44は、更に分割可能であると判定した場合には(ステップS89:YES)、分割手段として、部分検索条件1を部分検索条件1aと部分検索条件1bとに分割する(ステップS90)。このとき、システム制御部44は、部分検索条件1に含まれるキーワードのうち、検索される商品の数が最も少ないキーワードを1つ部分検索条件1bに含め、残りのキーワードを部分検索条件1aに含める。システム制御部44は、部分検索条件1を分割すると、部分検索条件1aを最新の部分検索条件1とする(ステップS91)。次いで、システム制御部44は、ステップS87に移行して、最新の部分検索条件1に含まれる全てのキーワードに対応する商品を検索する。
システム制御部44は、ステップS87〜S91の処理を繰り返すことにより、T7以上の数の商品が検索されるか、または、分割が不可能になるまで、部分検索条件1を用いた検索及び部分検索条件1の分割を繰り返す。ステップS89において、システム制御部44は、部分検索条件1を更に分割可能ではないと判定した場合には(ステップS89:NO)、ステップS97に移行する。なお、この場合、システム制御部44は、複数のキーワードを改めて検索し直して、ステップS87に移行してもよい。この場合、システム制御部44は、ステップS86における分割方法とは異なる方法で複数のキーワードを分割する。例えば、システム制御部44は、複数のキーワードを、2つのキーワードを含む部分検索条件2と、残りのキーワードを含む部分検索条件1とに分割してもよい。
ステップS88において、システム制御部44は、検索された商品の数がT7以上であると判定した場合には(ステップS88:YES)、検索手段として、部分検索条件2に含まれる全てのキーワードに合致する商品を検索する(ステップS92)。この場合の検索方法は、ステップS82における検索方法と基本的に同様である。次いで、システム制御部44は、部分検索条件1bがあるか否かを判定する(ステップS93)。このとき、システム制御部44は、部分検索条件1bがあると判定した場合には(ステップS93:YES)、検索手段として、部分検索条件1bごとに、部分検索条件1bに含まれる全てのキーワードに対応する商品を検索する(ステップS94)。この場合の検索方法は、ステップS82における検索方法と基本的に同様である。
システム制御部44は、部分検索条件1bがないと判定した場合(ステップS93:NO)、または、ステップS94の処理を終えた場合には、抽出手段として、部分検索条件1を用いて検索された該当商品集合に含まれる何れかの商品と、部分検索条件2を用いて検索された該当商品集合に含まれる何れかの商品と、の組み合わせの中から、互いに関連する商品の組み合わせを抽出する(ステップS95)。ここで、システム制御部44は、部分検索条件1bを用いて検索を行った場合には、部分検索条件1を用いて検索された該当商品集合に含まれる何れかの商品と、部分検索条件2を用いて検索された該当商品集合に含まれる何れかの商品と、部分検索条件1bを用いて検索された該当商品集合に含まれる何れかの商品と、の組み合わせの中から、互いに関連する商品の組み合わせを抽出する。具体的に、システム制御部44は、例えば、ジャンルが互いに同一である複数の商品を抽出する場合、各商品の商品情報から、ジャンルIDを取得する。そして、システム制御部44は、該当商品集合間で、ジャンルIDが互いに一致する複数の商品を特定してもよい。この場合、最下位のレベルにおいて、ジャンルが同一であるか否かが判定される。システム制御部44は、最下位のレベルよりも上位のレベルにおけるジャンルが互いに同一である複数の商品を抽出してもよい。下位のレベルでジャンル同士が同一であるか否かが判定されると、同一のジャンルに属する商品の範囲が狭くなる場合があるからである。システム制御部44は、ジャンル情報DB42bに登録されているジャンル情報に基づいて、各商品について、最下位のレベルよりも上位のレベルにおけるジャンルのジャンルIDを取得することができる。また、例えば、販売元の店舗が互いに同一である複数の商品を抽出する場合、システム制御部44は、各商品の商品情報から、店舗IDを取得する。そして、システム制御部44は、該当商品集合間で、店舗IDが互いに一致する複数の商品を特定する。また、例えば、主商品とオプション品との関係にある複数の商品を抽出する場合、システム制御部44は、各商品の商品情報から、商品コードを取得する。そして、システム制御部44は、関連商品情報DB42eにおいて、該当商品集合間で、互いの商品コードが対応付けて登録されている複数の商品を特定する。
システム制御部44は、ステップS95の処理を終えると、抽出された組み合わせを一覧表示する商品検索結果ページのHTML文書を、検索リクエストの送信元のユーザ端末6へ送信する(ステップS96)。具体的に、システム制御部44は、組み合わせに含まれる各商品の商品情報に含まれる商品名、商品画像のURL、商品価格、商品ID等に基づいて、商品情報表示領域210の表示用の情報を生成する。次いで、システム制御部44は、商品情報表示領域210の表示用のデータを含むHTML文書を生成する。そして、システム制御部44、生成したHTML文書を送信する。システム制御部44は、この処理を終えると、検索処理を終了させる。ユーザ端末6は、電子商店街サーバ4から受信したHTML文書に基づいて、商品検索結果ページを、例えば図11に示すように表示する。
なお、T6に2以上の値が設定されている場合、ユーザにより指定された複数のキーワードの全てに合致する商品が1つ以上検索されたのにもかかわらず、複数の商品の組み合わせが検索される場合がある。この場合、システム制御部44は、検索された商品の情報と、検索された組み合わせの情報との両方が表示されるように、商品検索結果ページのHTML文書を生成してもよい。
また、システム制御部44は、ステップS91において、部分検索条件1aを最新の部分検索条件1とするとともに、部分検索条件1bを、ステップS86の分割により生成された部分検索条件2に統合してもよい。
以上説明したように、本実施形態によれば、電子商店街サーバ4のシステム制御部44が、検索条件として指定された複数のキーワードを、それぞれ少なくとも1つのキーワードを含む部分検索条件1及び2に分割し、部分検索条件ごとに部分検索条件に含まれるキーワードの全てに合致する商品と、部分検索条件に含まれるキーワードの全てに合致する商品と、をそれぞれ検索し、部分検索条件1により検索された商品の何れかと、部分検索条件2により検索された商品の何れかと、の組み合わせの中から、互いに予め定められた関連を有する商品の組み合わせを抽出する抽出する。従って、検索条件として指定された複数のキーワードの全てに合致する商品が満足に存在しない場合であっても、検索条件を変えることなく、ユーザが望む十分な数の検索結果を得ることができる。
また、システム制御部44が、検索条件として指定された複数のキーワードの全てに合致する商品の検索を行った結果、検索された商品の数がT6未満である場合に、複数のキーワードを分割する。従って、ユーザにとってより望ましい検索結果を得ることができるとともに、不要な検索処理が実行されないようにすることができる。
また、システム制御部44が、部分検索条件1により検索された商品の数がT7未満である場合に、部分検索条件1を部分検索条件1a及び1bに分割し、部分検索条件1aと部分検索条件1bとのそれぞれごとに、部分検索条件に含まれるキーワードの全てに合致する商品を検索し、部分検索条件1aにより検索された商品の何れかと、部分検索条件1bにより検索された商品の何れかと、部分検索条件2により検索された商品の何れかと、の組み合わせの中から、互いに関連を有する商品の組み合わせを抽出する。従って、部分検索条件1a及び1bのそれぞれは、部分検索条件1よりもキーワードの数が少ないので、部分検索条件1a及び1bを用いて検索を行った方が、部分検索条件1を用いて検索を行うよりも、商品が検索される蓋然性が高い。そのため、ユーザが望む十分な数の検索結果を、より得やすくすることができる。
また、システム制御部44が、検索条件として指定された複数のキーワードのうち検索される商品の数が最も少ない1つのキーワードを部分検索条件2に含め、部分検索条件2に含まれないキーワードを部分検索条件1に含める。従って、部分検索条件1を、指定された検索条件にできるかぎり近づけることができるとともに、部分検索条件1により商品を検索することができる蓋然性を高めることができる。
なお、上記各実施形態においては、検索対象として、宿泊施設または商品を検索する場合に本発明を適用していた。しかしながら、本発明を、例えば、宿泊施設以外の施設、場所、サービス、Webページ、画像、動画、音声、地図、ニュース、ブログ等の検索に適用してもよい。
また、上記各実施形態においては、本発明における検索装置が、クライアントサーバシステムにおけるサーバ装置に適用されていた。つまり、端末装置が、ユーザにより指定されたキーワードをサーバ装置に送信し、サーバ装置が、受信したキーワードを用いて検索を行っていた。しかしながら、本発明が、スタンドアローンに適用されてもよい。つまり、本発明における検索装置が、ユーザによるキーワードの指定を直接受け付け、受け付けたキーワードを用いて検索を行い、検索結果を表示するなどして組み合わせの情報をユーザに直接提供してもよい。