(57)【要約】【課題】全文検索におけるスコア計算をユーザに指定できるようにして、より的確な検索結果を得る全文検索システムを提供する。【解決手段】登録した文書と検索条件との適合度を表す適合度スコアによって、検索結果の順序を決定して検索結果一覧を作成するときに、スキーマ情報として、登録した文書の属性から属性スコアを計算する属性スコア計算式と、前記適合度スコアと前記属性スコアとから合成スコアを計算する合成スコア計算式を保持しておき、文書を登録する時には、文書の属性と前記属性スコア計算式によって計算した属性スコアを文書と対応付けてスコアファイルへ登録し、検索結果を取得する時には、検索条件に合致した検索結果に対して、検索結果の文書に対応する適合度スコアと、前記スコアファイルに記憶された属性スコアとから前記合成スコア計算式によって合成スコアを計算し、この計算された合成スコアをもとに検索結果一覧を作成する。【選択図】図１
2006031209.tif 000002
【特許請求の範囲】
【請求項１】
登録した文書と検索条件との適合度を表す適合度スコアによって、検索結果の順序を決定して検索結果一覧を作成する全文検索システムにおいて、スキーマ情報として、登録した文書の属性から属性スコアを計算する属性スコア計算式と、前記適合度スコアと前記属性スコアとから合成スコアを計算する合成スコア計算式を保持し、文書を登録する時には、文書の属性と前記属性スコア計算式によって計算した属性スコアを文書と対応付けてスコアファイルへ登録するスコア登録手段と、検索結果を取得する時には、検索結果の文書に対応する適合度スコアと、前記スコアファイルに記憶された属性スコアとから前記合成スコア計算式によって合成スコアを計算するスコア合成手段と、検索条件に合致した検索結果に対して、前記スコア合成手段で計算された合成スコアをもとに検索結果一覧を作成する検索手段とを備えることを特徴とする全文検索システム。
【請求項２】
請求項１に記載の全文検索システムにおいて、ユーザが指定した前記属性スコア計算式をスキーマ定義時に登録する登録手段を備えることを特徴とする全文検索システム。
【請求項３】
請求項１または２に記載の全文検索システムにおいて、前記属性スコア計算式にある文書の属性が更新されたときには、属性スコアを再計算して前記スコアファイルを更新するようにしたことを特徴とする全文検索システム。
【請求項４】
請求項２または３に記載の全文検索システムにおいて、前記登録手段は、ユーザが指定した前記合成スコア計算式をスキーマ定義時に登録するようにしたことを特徴とする全文検索システム。
【請求項５】
請求項２または３に記載の全文検索システムにおいて、前記検索手段は、ユーザが指定した合成スコア計算式に基づいて計算した合成スコアによって、検索結果一覧を作成するようにしたことを特徴とする全文検索システム。
【請求項６】
登録した文書と検索条件との適合度を表す適合度スコアによって、検索結果の順序を決定して検索結果一覧を作成する全文検索方法において、スキーマ情報として、登録した文書の属性から属性スコアを計算する属性スコア計算式と、前記適合度スコアと前記属性スコアとから合成スコアを計算する合成スコア計算式を保持しておき、文書を登録する時には、文書の属性と前記属性スコア計算式によって計算した属性スコアを文書と対応付けてスコアファイルへ登録し、検索結果を取得する時には、検索条件に合致した検索結果に対して、検索結果の文書に対応する適合度スコアと、前記スコアファイルに記憶された属性スコアとから前記合成スコア計算式によって合成スコアを計算し、この計算された合成スコアをもとに検索結果一覧を作成することを特徴とする全文検索方法。
【請求項７】
コンピュータに、請求項１乃至５のいずれかに記載の全文検索システムの機能を実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全文検索システム、全文検索方法、全文検索システムの機能を実行するためのプログラムおよびそのプログラムを記録したコンピュータ読取可能な記録媒体に関し、特に、全文検索を行うときに検索条件との適合率を計算して検索結果を得る検索技術に関する。
【背景技術】
【０００２】
キーワードなどで構成される検索条件によって、文書を検索する検索システムは、検索結果として一般に、検索結果の件数やタイトルや文書の一部からなるリストなどを表示している。この検索結果がユーザの検索意図に適合しているかどうかを判定するためには、検索された文書の各々の全文をユーザが参照して判断する必要があった。
しかし、多数の文書が検索された場合や文書の全文が長い場合には、文書をすべて読むために多大な時間が必要になってしまっていた。
【０００３】
そこで、文書群中の各文書が指定された検索条件を満たす適合度をスコアという数値として求め、このスコアが大きい順に文書を順序付けし、スコアの大きなものから所定個数の検索結果を一覧として表示している（特許文献１参照）。
【０００４】
検索条件はキーワードの集合｛Ｑｉ｝で表現され、文書ＤｊとキーワードＱｉのスコアｓｃｏｒｅ１（Ｄｊ，Ｑｉ）は、キーワードＱｉの文書Ｄｊにおける出現数をｔｆｉｊ、キーワードＱｉを含む文書数をｄｆｉ、文書群における文書数をＮとして、次式（１）により求めるものが知られており、文書Ｄｊのスコアはキーワードの集合｛Ｑｉ｝の各要素の総和として求められる。
【０００５】
【数１】
2006031209.tif 000003
【特許文献１】特開２００３−２５６４７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記（式１）のように、登録されている文書と検索条件として入力されたキーワードの集合とから求められたスコアでは、検索を実行した時点では、ユーザの検索意図に適合する検索結果が上位にくるとは限らない。例えば、内容が古い文書でも、キーワードとの適合度が高ければ、上位にランクされてしまう。
【０００７】
また、意図的に検索結果の順位を変えたい場合もある。例えば、大学の図書館で学生が本を検索する場合、貸し出し回数の多い本を上位にランクさせたり、受講している授業で取り上げられている本を上位にランクさせたりしたい場合がある。
【０００８】
このように、キーワードによる全文検索では、検索結果の数は膨大なものになり、ユーザが所望する検索結果が上位に現れないと、結果的に、ユーザは必要な情報を得られないことになる。このようなことを防止するためには、スコア計算自体をユーザに指定できるようにする必要がある。
【０００９】
本発明は、以上のような実情を考慮してなされたものであって、全文検索におけるスコア計算をユーザに指定できるようにして、より的確な検索結果を得ることができる全文検索システム、全文検索方法、全文検索システムの機能を実行するためのプログラムおよびそのプログラムを記録したコンピュータ読取可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を達成するために、請求項１に記載の発明は、登録した文書と検索条件との適合度を表す適合度スコアによって、検索結果の順序を決定して検索結果一覧を作成する全文検索システムにおいて、スキーマ情報として、登録した文書の属性から属性スコアを計算する属性スコア計算式と、前記適合度スコアと前記属性スコアとから合成スコアを計算する合成スコア計算式を保持し、文書を登録する時には、文書の属性と前記属性スコア計算式によって計算した属性スコアを文書と対応付けてスコアファイルへ登録するスコア登録手段と、検索結果を取得する時には、検索結果の文書に対応する適合度スコアと、前記スコアファイルに記憶された属性スコアとから前記合成スコア計算式によって合成スコアを計算するスコア合成手段と、検索条件に合致した検索結果に対して、前記スコア合成手段で計算された合成スコアをもとに検索結果一覧を作成する検索手段とを備えることを特徴とする。
【００１１】
請求項２に記載の発明は、請求項１に記載の全文検索システムにおいて、ユーザが指定した前記属性スコア計算式をスキーマ定義時に登録する登録手段を備えることを特徴とする。
請求項３に記載の発明は、請求項１または２に記載の全文検索システムにおいて、前記属性スコア計算式にある文書の属性が更新されたときには、属性スコアを再計算して前記スコアファイルを更新するようにしたことを特徴とする。
【００１２】
請求項４に記載の発明は、請求項２または３に記載の全文検索システムにおいて、前記登録手段は、ユーザが指定した前記合成スコア計算式をスキーマ定義時に登録するようにしたことを特徴とする。
請求項５に記載の発明は、請求項２または３に記載の全文検索システムにおいて、前記検索手段は、ユーザが指定した合成スコア計算式に基づいて計算した合成スコアによって、検索結果一覧を作成するようにしたことを特徴とする。
【００１３】
請求項６に記載の発明は、登録した文書と検索条件との適合度を表す適合度スコアによって、検索結果の順序を決定して検索結果一覧を作成する全文検索方法において、スキーマ情報として、登録した文書の属性から属性スコアを計算する属性スコア計算式と、前記適合度スコアと前記属性スコアとから合成スコアを計算する合成スコア計算式を保持しておき、文書を登録する時には、文書の属性と前記属性スコア計算式によって計算した属性スコアを文書と対応付けてスコアファイルへ登録し、検索結果を取得する時には、検索条件に合致した検索結果に対して、検索結果の文書に対応する適合度スコアと、前記スコアファイルに記憶された属性スコアとから前記合成スコア計算式によって合成スコアを計算し、この計算された合成スコアをもとに検索結果一覧を作成することを特徴とする。
【００１４】
請求項７に記載の発明は、コンピュータに、請求項１乃至５のいずれかに記載の全文検索システムの機能を実行させるためのプログラムである。
請求項８に記載の発明は、請求項７に記載のプログラムを記録したコンピュータ読取可能な記録媒体である。
【発明の効果】
【００１５】
本発明によれば、登録した文書の属性によって計算される属性スコアを導入し、登録文書と検索条件から計算される適合度スコア（適合度に応じて計算されるスコア）との合成スコアをユーザが指定することができるので、適合度スコアだけで検索結果を求めるよりも、ユーザが所望するデータを上位ランクに持っていくことができ、より的確な検索結果を得ることができる。
【００１６】
また、属性スコアや合成スコアを計算する任意の計算式をユーザが登録することができるので、より利用状況や登録されている文書データの種別に適した検索結果順で検索結果を得ることができる。
さらに、文書データの種別や検索条件に応じた合成スコア計算式を検索時にユーザが指定できるようにしたので、ユーザごとにまた検索対象ごとに、よりユーザの所望する検索結果順で検索結果を得ることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の全文検索システムに係る好適な実施形態について説明する。
【００１８】
図１は、本実施形態に係る全文検索システムの機能構成を示すブロック図である。同図において、全文検索システムは、１台以上の端末１０と全文検索サーバ２０とをネットワークを介して接続されている。
この構成において、端末１０は、デスクトップ型パーソナルコンピュータやモバイルコンピュータ等であって、ユーザが利用する際に、操作が容易になるようなユーザインタフェースを備えており、ＬＡＮ、ＷＡＮやインターネット等のネットワークに接続可能なものであればよい。
この端末１０は、文書登録やスキーマ情報登録に際しては、登録する文書データやスキーマ情報を入力して全文検索サーバ２０へ送信し、検索に際しては検索条件を入力して全文検索サーバ２０へ送信する入力手段１１と、検索結果や処理過程の状況を全文検索サーバ２０から受信して出力させる出力手段１２とを含んでなっている。
【００１９】
全文検索サーバ２０は、サーバコンピュータであって、ネットワークを介して接続された端末１０からの文書登録や検索要求を受信し、文書をデータベースへ登録したり、検索を実行して検索結果を端末１０へ送信する。
この全文検索サーバ２０は、端末１０から受信した文書データやスキーマ情報を登録する登録手段２１、登録する文書データに対してスコアを計算して登録するスコア登録手段２２、端末１０から受信した検索要求にしたがって全文検索を実行して、検索結果を端末１０へ返信する検索手段２３、検索結果に対する合成スコアを計算するスコア合成手段２４、検索対象となる文書データに関する情報を保持管理する文書データベース２５を含んでなっている。
さらに、文書データベース２５は、スキーマファイル２６、索引ファイル２７、レコードファイル２８、スコアファイル２９とを含んでなっている。
【００２０】
まず、端末１０における各機能構成について説明する。
入力手段１１は、次の３つの機能を実行する。
（１）ユーザが文書を文書データベース２５へ登録するときには、文書の内容を示すテキストデータとその他属性（例えば、登録日、タイトル、作成者等の書誌情報）からなる文書データを読み取って、この文書データを登録する要求（文書データ登録要求）を全文検索サーバ２０へ送信する。
【００２１】
（２）文書データベース２５のスキーマを構築または変更するときには、データベースの構造を表すスキーマ定義情報、例えば以下のようなＳＱＬ文
create table T (テキスト nvarchar, 登録日 date, 作成者 nvarchar)
create fulltext index T_I on T(テキスト)
を読み取って、このスキーマ定義情報を更新する要求（スキーマ更新要求）を全文検索サーバ２０へ送信する。
【００２２】
（３）ユーザが所望の検索条件により文書データベース２５を検索するときには、１組以上のキーワードの組み合わせ等で構成される検索条件を読み取って、この検索条件による検索要求を全文検索サーバ２０へ送信する。
これらの文書データ、スキーマ定義情報や検索条件は、キーボードを使って直接入力されてもよいし、または、ハードディスクやＤＶＤメディア等の記憶装置から読み出されてもよい。
【００２３】
次に、出力手段１２は、入力手段１１で入力した結果や実行状況等をディスプレイ、プリンタや記憶装置へ出力する。特に、検索結果については、検索条件に対する文書の適合率を表すスコアを伴った検索一覧を全文検索サーバ２０から受信してディスプレイへ表示させる。ユーザはこの検索結果一覧から所望の文書があればその内容を表示させたり、プリンタや記憶装置へ出力する等の操作が行われる。
【００２４】
次に、全文検索サーバ２０における各機能構成について説明する。
まず、文書データベース２５について説明する。
スキーマファイル２６は、データベースの構造を表すデータと、属性スコアを求めるための計算式である属性スコア計算式２６１と、合成スコアを求めるための計算式である合成スコア計算式２６２とを格納するファイルである。
【００２５】
属性スコア計算式２６１は、文書データの属性（タイトル、登録日、作成者等の書誌情報）から属性スコアを求めるための式である。例えば、ある文書Ｄｊにおける登録日Ｙｊから属性スコアｓｃｏｒｅ２を求める式は下記の（式２）のように指定することができ、この（式２）により、登録日が新しい文書を、より大きなスコア値を持つようにすることができる。
ｓｃｏｒｅ２（Ｄｊ）＝（Ｙｊ−１９８０）／２０        （式２）
さらに、この式の右辺には登録日以外の他の属性を使った演算を組み合わせてもよい。例えば、文書の属性として、図書館の貸出ランクや書籍の売り上げランクが参照できるような場合には、これらのランクが高いほどスコアが高くなるような演算式を（式２）の右辺に追加するようにする。
【００２６】
この属性スコア計算式２６１は、文書データベース２５を構築するときに、データベース設計者がスキーマ定義情報として以下のようなＳＱＬ文、
create table T (テキスト nvarchar, 登録日 date, 作成者 nvarchar)
create fulltext index T_I on T(テキスト) exp 属性スコア=(登録日-1980)/20
によって予め設定してもよいが、必要に応じてユーザが同様なＳＱＬ文によって随時に属性スコア計算式を登録するようにしてもよい。これにより、ユーザが任意に属性スコア計算式を登録できるので、よりユーザが所望するスコア順で検索結果を取り出すことができる。
【００２７】
合成スコア計算式２６２は、索引ファイル２７から得られる適合度スコアｓｃｏｒｅ１と、スコアファイル２９から得られる属性スコアｓｃｏｒｅ２を合成するための式である。例えば、ある文書Ｄｊにおける合成スコアｓｃｏｒｅ３は、以下の（式３）のようにすることができる。この（式３）の右辺は、平均とは限らず、適合度スコアｓｃｏｒｅ１と属性スコアｓｃｏｒｅ２のうちどちらのスコアを重視するかによってそれぞれの重み付けを考慮すればよい。
ｓｃｏｒｅ３（Ｄｊ）＝
ｓｃｏｒｅ１（Ｄｊ）×０.５＋ｓｃｏｒｅ２（Ｄｊ）×０.５      （式３）
【００２８】
この合成スコア計算式２６２は、文書データベース２５を構築するときに、データベース設計者がスキーマ定義情報として以下のようなＳＱＬ文、
create table T (テキスト nvarchar, 登録日 date, 作成者 nvarchar)
create fulltext index T_I on T(テキスト) 
exp 合成スコア=(属性スコア*0.5 + 適合度スコア*0.5)
によって予め設定してもよいが、必要に応じてユーザが同様なＳＱＬ文によって随時に属性スコア計算式を登録するようにしてもよい。これにより、ユーザが任意に合成スコア計算式を登録できるので、よりユーザが所望するスコア順で検索結果を取り出すことができる。
【００２９】
また、属性スコア計算式２６１や合成スコア計算式２６２は、それぞれ別々に登録してもよいが、もちろん以下のようなＳＱＬ文で一緒に登録してもかまわない。
create table T (テキスト nvarchar, 登録日 date, 作成者 nvarchar)
create fulltext index T_I on T(テキスト) 
exp 属性スコア=(登録日-1980)/20,
exp 合成スコア=(属性スコア*0.5 + 適合度スコア*0.5)
【００３０】
索引ファイル２７は、入力された文書のテキスト情報から転置索引を作成し、この転置索引と文書のテキスト情報を登録したファイルであり、テキスト情報を登録する際には文書識別子を割り当てて、この文書識別子とテキスト情報とを対応付けて登録する。
また、検索時には、索引ファイル２７を参照して、検索にヒットした文書識別子（文書ＩＤ）と、検索条件に適合した文書との適合度を表す適合度スコアを返す。適合度スコアは、例えば、文書Ｄｊごとに、検索条件のうちのキーワードＱｉに（式１）で計算されたスコアを、すべてのキーワード｛Ｑｉ｝について所定の計算式でまとめた数値である。従来の検索では、この適合度スコアを基に検索結果の一覧における順番が決められていた。
【００３１】
レコードファイル２８は、文書内容のテキスト情報を格納した索引ファイルへの文書識別子（文書ＩＤ）と、テキスト情報以外の属性（タイトル、登録日、作成者等の書誌情報）を格納するファイルである（図２参照）。
スコアファイル２９は、文書ごとに、属性スコア計算式２６１で計算された属性スコアとその文書の文書識別子（文書ＩＤ）との組みを格納するファイルである（図３参照）。例えば以下のような構造を持つ。
【００３２】
次に、ユーザから受信した文書登録要求およびスキーマ更新要求に対する処理について説明する。
端末１０から文書登録要求およびスキーマ更新要求を受信すると、全文検索サーバ２０は登録手段２１を起動して要求を渡す。
登録手段２１は、文書データが渡された場合には、テキスト情報に文書識別子（文書ＩＤ）を割り当てて索引ファイル２７へ登録するとともに、テキスト情報をもとに索引を作成して索引ファイル２７へ格納し、文書データのうち属性（タイトル、登録日、作成者等の書誌情報）と文書識別子（文書ＩＤ）とを対応させてレコードファイル２８へ格納し、スコア登録手段２２を起動して、文書識別子と属性（タイトル、登録日、作成者等の書誌情報）を渡す。
また、登録手段２１は、スキーマ定義情報が渡された場合には、渡されたスキーマ定義情報をスキーマファイル２６に登録する。
【００３３】
起動されたスコア登録手段２２は、スキーマファイル２６から、属性スコア計算式２６１を取り出し、属性スコア計算式２６１中に要求しているパラメータ情報を文書データベース２５から取り出し、このパラメータ情報の値と渡された属性とで属性スコア計算式２６１により計算された属性スコアを、渡された文書識別子と対応させてスコアファイル２９に格納する。
【００３４】
図４は、文書データの登録時の処理手順を示すフローチャートである。
まず、受信した文書データのうち、テキスト情報に文書識別子を割り当てて索引ファイル２７へ登録するとともに、テキスト情報から転置索引を作成して索引ファイル２７に登録する（ステップＳ１）。
次に、受信した文書データのうち属性（タイトル、登録日、作成者等の書誌情報）を文書識別子（文書ＩＤ）と対応付けてレコードファイル２８へ登録する（ステップＳ２）。
【００３５】
次に、スキーマファイル２６から属性スコア計算式２６１を取り出し（ステップＳ３）、この属性スコア計算式２６１中で要求しているパラメータ情報を文書データベース２５から取り出して、このパラメータ情報の値と渡された属性とで属性スコア計算式２６１により属性スコアを計算する（ステップＳ４）。
例えば、図５に示されるような文書データＤが与えられたとき、（式２）で示される属性スコア計算式の値ｓｃｏｒｅ２（Ｄ）は、登録年が２０００年であるから
ｓｃｏｒｅ２（Ｄ）＝（２０００−１９８０）／２０＝１
と計算される。
この計算された属性スコアを文書識別子と対応させてスコアファイル２９に格納する（ステップＳ５）。
【００３６】
また、属性スコアの計算に使用された属性が更新された場合、例えば上記例のような文書の登録日が更新された場合には、属性スコアを再計算し、スコアファイル２９の該当する文書の文書識別子の属性スコアを更新する。
【００３７】
次に、ユーザから受信した検索要求に対する処理について説明する。
端末１０から検索要求を受信すると、全文検索サーバ２０は検索手段２３を起動して要求を渡す。
検索手段２３は、検索条件から索引ファイル２７を検索し、検索条件に合致した文書の文書識別子と適合度スコアの組からなる集合を取得する。この索引を利用した検索は、公知の技術により達成する。
さらに、検索手段２３は、この文書識別子と適合度スコアの組からなる集合をスコア合成手段２４に渡し、スコア合成手段２４から計算された文書識別子と合成スコアの組からなる集合を取得し、この集合を合成スコアの値の大きい順に整列させて検索一覧を作成し、合成スコアの値の大きい方から所定量の検索一覧を端末１０へ送信する。
【００３８】
スコア合成手段２４は、スキーマファイル２６から合成スコア計算式２６２を取り出し、渡された文書識別子ごとに合致する属性スコアをスコアファイル２９から取り出す。
さらに、渡された文書識別子ごとに、渡された適合度スコアと取り出したと属性スコアとによって合成スコア計算式で合成スコアを計算し、渡されたすべての文書識別子の合成スコアを計算し終えると、計算された合成スコアと文書識別子の組の集合を検索手段２３へ戻す。
【００３９】
図６は、検索要求の処理手順を示すフローチャートである。
索引ファイル２７を参照して、受信した検索条件に合致する文書を検索し、検索条件に合致した文書の文書識別子と適合度スコアの組みからなる配列（以下、配列Ａとよぶ；図７参照）を記憶装置上に設定する（ステップＳ１１）。
さらに、検索結果一覧用の配列Ｂを記憶装置上に設定する。この配列Ｂは、検索結果の文書識別子ごとに、文書識別子、合成スコアおよびデータ一覧に表示すべきデータ項目（文書のタイトル等）を設定できるサイズとする。
【００４０】
スキーマファイル２６から合成スコア計算式２６２を取り出す（ステップＳ１２）。
配列Ａに設定されているすべての文書識別子に対して以下の処理を実行する（ステップＳ１３からＳ１６）。
【００４１】
文書識別子に合致する属性スコアをスコアファイル２９から取り出し（ステップＳ１４）、この属性スコアと適合度スコアとを合成スコア計算式に適用して合成スコアを計算し（ステップＳ１５）、計算された合成スコアとその文書識別子を配列Ｂへ設定する（ステップＳ１６）。
【００４２】
検索結果のすべての文書識別子について合成スコアを計算し終わると（ステップＳ１３のＮＯ）、検索一覧表（配列Ｂ）を完成させるために、配列Ｂの文書識別子ごとに、レコードファイル２８から文書識別子に対応する、検索結果一覧に用いるデータ項目である文書の属性を取り出し（ステップＳ１８）、配列Ｂへ設定する（ステップＳ１９）。
【００４３】
配列Ｂのすべての文書識別子に対して属性を設定した後（ステップＳ１７のＮＯ）、合成スコアの値が大きい順に配列Ｂを整列させて（図８参照）、合成スコアの値の大きい方から所定量を検索一覧として端末１０へ送信する（ステップＳ２０）。
図７の適合度スコアのみでは、文書ＩＤ２の文書が文書ＩＤ３の文書より、適合度スコアが大きくなっている。しかし、図８では、合成スコアが文書ＩＤ２より文書ＩＤ３の方が大きくなっている。このように、索引ファイル２７から得られるスコアだけではなく、文書の属性から求めたスコアを合成することにより、よりユーザが所望するデータ順で検索結果を得ることができる。
【００４４】
また、上述の実施形態では、合成スコア計算式は文書データベースの構築時か、あるいは検索を実行する前に予めスキーマファイル２６へ登録しておかなければならなかった。
しかし、合成スコア計算式はこのようなタイミングで登録するばかりでなく、検索実行時に検索条件と一緒に入力手段１１で入力し、全文検索サーバ２０で検索結果一覧を作成するときに利用するようにしてもかまわない。
【００４５】
例えば、文書中にキーワード「システム」がある文書を検索し、合成スコアを、
合成スコア=(適合度スコア*0.6 + 属性スコア*0.4)
の合成スコア計算式で計算し、文書一覧として文書ＩＤとその文書のタイトルとを表示させるときには、以下のようなＳＱＬ文となる。
select 文書ID, タイトル from T where テキスト like ‘%システム%’
exp 合成スコア=(適合度スコア*0.6 + 属性スコア*0.4)
【００４６】
図９は、上述のように、合成スコア計算式を検索条件と一緒に指定した場合の検索要求の処理手順を示すフローチャートである。
索引ファイル２７を参照して、受信した検索条件に合致する文書を検索し、検索条件に合致した文書の文書識別子と適合度スコアの組みからなる配列（以下、配列Ａとよぶ）を記憶装置上に設定する（ステップＳ３１）。
さらに、検索結果一覧用の配列Ｂを記憶装置上に設定する。この配列Ｂは、検索結果の文書識別子ごとに、文書識別子、合成スコアおよびデータ一覧に表示すべきデータ項目（文書のタイトル等）を設定できるサイズとする。
【００４７】
配列Ａに設定されているすべての文書識別子に対して以下の処理を実行する（ステップＳ３２からＳ３５）。
文書識別子に合致する属性スコアをスコアファイル２９から取り出し（ステップＳ３３）、この属性スコアと適合度スコアとを、受信した合成スコア計算式に適用して合成スコアを計算し（ステップＳ３４）、計算された合成スコアとその文書識別子を配列Ｂへ設定する（ステップＳ３５）。
【００４８】
検索結果のすべての文書識別子について合成スコアを計算し終わると（ステップＳ３２のＮＯ）、検索一覧表（配列Ｂ）を完成させるために、配列Ｂの文書識別子ごとに、レコードファイル２８から文書識別子に対応する、検索結果一覧に用いるデータ項目である文書の属性を取り出し（ステップＳ３７）、配列Ｂへ設定する（ステップＳ３８）。
【００４９】
配列Ｂのすべての文書識別子に対して属性を設定した後（ステップＳ３６のＮＯ）、合成スコアの値が大きい順に配列Ｂを整列させて、合成スコアの値の大きい方から所定量を検索一覧として端末１０へ送信する（ステップＳ３９）。
【００５０】
このように構成することによって、合成スコア計算式は検索するたびにユーザから与え、その与えられた合成スコア計算式で計算した合成スコア順で検索結果を返すので、ユーザごとに、よりユーザの所望する検索結果順で検索結果を得ることができる。
【００５１】
上述の実施形態では、端末１０と全文検索サーバ２０とを別のコンピュータとして説明したが、全文検索サーバ２０が、上述した端末１０の入力手段１１および出力手段１２の機能を有するように構成してもよい。
【００５２】
さらに、本発明は上述した実施形態のみに限定されたものではない。上述した実施形態の全文検索システムを構成する各機能をそれぞれプログラム化し、あらかじめＣＤ−ＲＯＭ等の記録媒体に書き込んでおき、このＣＤ−ＲＯＭをＣＤ−ＲＯＭドライブのような媒体駆動装置を搭載したコンピュータに装着して、これらのプログラムをコンピュータのメモリあるいは記憶装置に格納して、実行することによって、本発明の目的を達成することができる。
【００５３】
なお、記録媒体としては半導体媒体（例えば、ＲＯＭ、不揮発性メモリカード等）、光媒体（例えば、ＤＶＤ、ＭＯ、ＭＤ、ＣＤ−Ｒ等）、磁気媒体（例えば、磁気テープ、フレキシブルディスク等）のいずれであってもよい。
【００５４】
また、ロードしたプログラムの指示に基づき、オペレーティングシステムやアプリケーションプログラム等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００５５】
また、上述したプログラムをサーバコンピュータの磁気ディスク等の記憶装置に格納しておき、ネットワークで接続された利用者のコンピュータからダウンロードして頒布する場合、また、サーバコンピュータから配信して頒布する場合、このサーバコンピュータの記憶装置も本発明の記録媒体に含まれる。
このように、本発明の機能をプログラムして、記録媒体に記録し頒布することによって、コスト、可搬性、汎用性を向上させることができる。
【図面の簡単な説明】
【００５６】
【図１】本実施形態に係る全文検索システムの機能構成を示すブロック図である。
【図２】レコードファイルのデータ構造例である。
【図３】スコアファイルのデータ構造例である
【図４】文書データを文書データベースへ登録するときの処理手順を示すフローチャートである。
【図５】入力される文書データ例である。
【図６】予めスキーマ定義で登録された合成スコア計算式でスコア計算する場合の検索要求の処理手順を示すフローチャートである。
【図７】検索条件によって検索された文書群とその適合度スコアの対応表（配列Ａ）の例である。
【図８】検索結果を合成スコア順（降順）に整列したときの例である。
【図９】合成スコア計算式を検索条件と一緒に指定した場合の検索要求の処理手順を示すフローチャートである。
【符号の説明】
【００５７】
１０…端末、１１…入力手段、１２…出力手段、２０…全文検索サーバ、２１…登録手段、２２…スコア登録手段、２３…検索手段、２４…スコア合成手段、２５…文書データベース、２６…スキーマファイル、２６１…属性スコア計算式、２６２…合成スコア計算式、２７…索引ファイル、２８…レコードファイル、２９…スコアファイル。
【図１】
2006031209.tif 000004
【図２】
2006031209.tif 000005
【図３】
2006031209.tif 000006
【図４】
2006031209.tif 000007
【図５】
2006031209.tif 000008
【図６】
2006031209.tif 000009
【図７】
2006031209.tif 000010
【図８】
2006031209.tif 000011
【図９】
2006031209.tif 000012