(57)【特許請求の範囲】
【請求項１】
単語または、単語のブール演算子結合からなる検索式に対して、検索対象となる構造を持ったそれぞれの文書（構造化文書）がどの程度合っているのかを表す「適合度」を計算し、該適合度の降順に文書を並べて検索結果とする全文検索装置における全文検索方法において、
前記構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するかの指定に基づいて、各文書に指定された各構造毎に、該構造に含まれる全単語を抽出するステップと、
各単語をキーとし、該単語が出現する文書ＩＤと該単語の重要度のペアの集合を値とする逆引きインデックスを作成するステップと、
前記逆引きインデックスのうち、１つまたは、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップと、
からなることを特徴とする全文検索方法。
【請求項２】
前記全文検索方法におけるインデックスを作成する際に、
前記構造化文書内の、または、前記独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するのかの指定に基づいて、各文書の指定された各構造毎に、該構造に含まれる全単語を抽出するステップと、
文書ＩＤをキーとし、抽出された単語と該単語の重要度のペアの集合を値とする順引きインデックスを作成するステップと、
前記逆引きインデックス及び順引きインデックスのうち、１つ、または、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子及び、フィルタ演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップと、
からなる請求項1記載の全文検索方法。
【請求項３】
前記適合度を計算するステップにおいて、
前記フィルタ演算子が検索式に指定された場合には、
前記逆引きインデックスを用いて一時的な検索結果を取得し、
前記検索結果の中で、適合度の高い上位の所定の件数の文書の中から前記検索式によって指定されるフィルタ条件にマッチする文書だけを取り出し、最終的な検索結果とする“ａｎｄ型フィルタ”と、前記検索式によって指定されるフィルタ条件にマッチする文書の適合度を割り増し、割り増された適合度の降順に再び並び替えて最終的な検索結果とする“ｏｒ型フィルタ”のいずれか、または、両方を用いる請求項２記載の全文検索方法。
【請求項４】
単語または、単語のブール演算子結合からなる検索式に対して、検索対象となる構造を持ったそれぞれの文書（構造化文書）がどの程度合っているのかを表す「適合度」を計算し、該適合度の降順に文書を並べて検索結果とする全文検索装置であって、
前記構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するかの指定に基づいて、各文書に指定された各構造毎に、該構造に含まれる全単語を抽出し、各単語をキーとし、該単語が出現する文書ＩＤと該単語の重要度のペアの集合を値とする逆引きインデックスを作成する文書インデックス作成手段と、
前記逆引きインデックスのうち、１つまたは、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子によって構成される検索式と、各検索対象の文書との適合度を計算する適合度計算手段と、
からなることを特徴とする全文検索装置。
【請求項５】
前記文書インデックス作成手段は、
前記構造化文書内の、または、前記独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するのかの指定に基づいて、各文書の指定された各構造毎に、該構造に含まれる全単語を抽出し、文書ＩＤをキーとし、抽出された単語と該単語の重要度のペアの集合を値とする順引きインデックスを作成する手段を有し、
前記適合度計算手段は、
前記逆引きインデックス及び順引きインデックスのうち、１つ、または、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子及び、フィルタ演算子によって構成される検索式と、各検索対象の文書との適合度を計算する手段を
有する請求項４記載の全文検索装置。
【請求項６】
前記適合度計算手段は、
前記フィルタ演算子が検索式に指定された場合には、
前記逆引きインデックスを用いて一時的な検索結果を取得する手段と、
前記検索結果の中で、適合度の高い上位の所定の件数の文書の中から前記検索式によって指定されるフィルタ条件にマッチする文書だけを取り出し、最終的な検索結果とする“ａｎｄ型フィルタ”と、前記検索式によって指定されるフィルタ条件にマッチする文書の適合度を割り増し、割り増された適合度の降順に再び並び替えて最終的な検索結果とする“ｏｒ型フィルタ”のいずれか、または、両方を用いる手段を含む請求項５記載の全文検索装置。
【請求項７】
単語または、単語のブール演算子結合からなる検索式に対して、検索対象となる構造を持ったそれぞれの文書（構造化文書）がどの程度合っているのかを表す「適合度」を計算し、該適合度の降順に文書を並べて検索結果とする全文検索プログラムを格納した記憶媒体であって、
コンピュータに、
前記構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するかの指定に基づいて、各文書に指定された各構造毎に、該構造に含まれる全単語を抽出するステップと、
各単語をキーとし、該単語が出現する文書ＩＤと該単語の重要度のペアの集合を値とする逆引きインデックスを作成するステップと、
前記逆引きインデックスのうち、１つまたは、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップと、
を実行させることを特徴とする全文検索プログラムを格納した記憶媒体。
【請求項８】
前記全文検索方法におけるインデックスを作成するステップにおいて、
前記構造化文書内の、または、前記独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するのかの指定に基づいて、各文書の指定された各構造毎に、該構造に含まれる全単語を抽出するステップを実行させ、
文書ＩＤをキーとし、抽出された単語と該単語の重要度のペアの集合を値とする順引きインデックスを作成するステップとを実行させ、
前記適合度を計算するステップにおいて、
前記逆引きインデックス及び順引きインデックスのうち、１つ、または、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子及び、フィルタ演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップを実行させる請求項５記載の全文検索プログラムを格納した記憶媒体。
【請求項９】
前記適合度を計算するステップにおいて、
前記フィルタ演算子が検索式に指定された場合には、
前記逆引きインデックスを用いて一時的な検索結果を取得し、
前記検索結果の中で、適合度の高い上位の所定の件数の文書の中から前記検索式によって指定されるフィルタ条件にマッチする文書だけを取り出し、最終的な検索結果とする“ａｎｄ型フィルタ”と、前記検索式によって指定されるフィルタ条件にマッチする文書の適合度を割り増し、割り増された適合度の降順に再び並び替えて最終的な検索結果とする“ｏｒ型フィルタ”のいずれか、または、両方を用いる請求項８記載の全文検索プログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、全文検索方法及び装置及び全文検索プログラムを格納した記憶媒体に係り、特に、検索対象となる構造を持ったそれぞれの文書（構造化文書）が検索式にどの程度合っているのかを表す「適合度」という値を適切に計算することが可能な全文検索方法及び装置及び全文検索プログラムを格納した記憶媒体に関する。
【０００２】
【従来の技術】
従来の全文検索装置の構成について説明する。
【０００３】
図７は、従来の全文検索装置の構成を示す。同図に示す全文検索装置は、文書インデックス部１０と検索実行部２０から構成される。それぞれの機能は以下の通りである。
【０００４】
文書インデックス部１０は、以下の方法によりインデックスを作成する。
【０００５】
▲１▼  検索対象となる文書（プレーンテキスト）の集合Ｎを検索対象文書データベース１１から入力する。
【０００６】
▲２▼  それぞれの文書ｊ∈Ｎに使用されている単語ｉを抽出し、それぞれの単語ｉの重要度ｗｉｊを計算する。
【０００７】
▲３▼  逆引きインデックス１２を作成し、出力する。ここで、逆引きインデックスとは、以下のキーと値を持つテーブルである。
【０００８】
キー：単語ｉ
値：単語ｉの出現する文書ｊのＩＤと、単語ｉの文書ｊにおける重要度ｗｉｊのペアの集合
ここで、逆引きインデックス１２の例を図８に示す。例えば、図８において、単語’言語’は、文書１、３、６に出現し、それぞれの文書における’言語’の重要度は０．３、０．３、０．８である。
【０００９】
検索実行部２０は、以下の方法により検索を行う。
【００１０】
▲１▼  単語または、単語のブール演算子結合によって記述される検索式ｑを入力する。
【００１１】
▲２▼  文書インデックス部１０の作成した逆引きインデックス１２から、検索式ｑに含まれるそれぞれの単語ｉの出現する文書集合と単語ｉのそれぞれの文書ｊにおける重要度ｗｉｊを取得する。
【００１２】
▲３▼  検索式ｑに含まれるブール演算子と単語の重要度ｗｉｊを用いて、それぞれの文書ｊと検索式ｑの適合度を計算する。
【００１３】
▲４▼  適合度の降順に文書を並べて検索結果とする。
【００１４】
例えば、文書インデックス部１０によって、検索対象文書から図８の逆引きインデックス１２が作成され、以下の検索式が与えられた場合の適合度の計算方法を示す。
【００１５】
（言語  ａｎｄ    処理）  ｏｒ  知識
ここで、ａｎｄ，ｏｒの処理方法は、処理系によって異なるが、ここでは、以下のように定める。
【００１６】
ｏｒ−左右の評価値の和を取ったものを評価値とする。
【００１７】
ａｎｄ−左右の評価値の小さい方を評価値とする。
【００１８】
ここで、単語の場合は、重要度が評価値となり、検索式全体から得られた評価値が適合度となる。また、重要度ｗｉｊが逆引きインデックスに登録されていない場合、単語ｉの文書ｊにおける重要度は“０”である。
【００１９】
文書１の適合度は以下のように“０．４”と求まる。
【００２０】
（言語‘０．３’ａｎｄ  処理‘０．２”）ｏｒ知識‘０．２’
→（‘０．２’）ｏｒ‘０．２’
→０．４
文書３の適合度は以下のように‘０”と求まる。
（言語‘０．３’ａｎｄ処理‘０”）ｏｒ知識‘０’
→（‘０’）ｏｒ‘０’
→０
このように計算された適合度の降順に文書を並べ、上位ｋ（ｋは定数）件を検索結果とする。
【００２１】
【発明が解決しようとする課題】
しかしながら、上記従来の全文検索装置で構造化文書を検索対象とする場合には、以下のような問題がある。
【００２２】
（１）文書の構造情報を反映した適合度計算ができない。
【００２３】
近年、ＸＭＬ等、文書内にタグを用いて構造を記述することが多くなってきている。構造を持った文書の例を図９に示す。同図では、タグ
（＜ＴＥＸＴ＞−＜／ＴＥＸＴ＞等）
の入れ子によって構造が記述されている。
【００２４】
従来の全文検索装置では、入力は構造を持たないプレーンテキストであると仮定していたるため、文書が構造情報を持っている場合でも、これらの情報を適切に適合度計算に取り入れることができない。例えば、タイトルという構造を考慮に入れた
「文書のどこかに‘人工知能’を含むもののうち、タイトルに‘学習’を含む文書の適合度を高くしたい。」
という検索要求に答えることができない。
【００２５】
（２）文書に付けられた属性を用いたフィルタが実現できない。
【００２６】
フィルタとは次のような検索要求を言う。
（１）  ‘ＵＮＩＸ’（登録商標）を含む文書で日本語のものだけを取り出したい。
（２）  ‘知識’を含む文書で著者が‘鈴木’の場合は、適合度を高くしたい（ランキングを上位にしたい）。
【００２７】
それぞれ、▲１▼の場合は「使用言語」、▲２▼の場合は「著書」という属性を用いたフィルタである。特に、ここでは、▲１▼のように結果に対して絞込を行うようなものを「ａｎｄ型フィルタ」、▲２▼のように結果の適合度を修正し、特定のもののランキングを上げる働きをするものを「ｏｒ型フィルタ」と呼ぶ。
【００２８】
これらのフィルタは、従来の全文検索装置に用いられている逆引きインデックスを用いて実現することは困難である。そのため、フィルタが必要な場合は、全文検索装置とは独立に、全く別のインデックスを用意するか、文書全文を残しておき、検索時にこれらの属性をいちいち走査する必要がある。
【００２９】
また、従来の技術には、構造化文書を対象としたものとして、検索式に直接部分構造を記述するという方法もある。しかし、この方法は、全文検索装置に利用されるのではなく、対象となる１つの構造化文書の中から検索式に記述された条件に合う部分の抽出等の目的で利用されている。例えば、図９の構造化文書に対して、
検索式：／／ＤＯＣ／ＡＵＴＲＯＲ（＜ＤＯＣ＞  に入れ子になっている＜ＡＵＴＲＯ＞  に囲まれた部分を抽出）
で検索を行った場合、結果として「鈴木  田中」が得られる。このように、この方法は、検索式とそれぞれの構造化文書との適合度の計算を行うという目的には利用できない。
【００３０】
本発明は、上記の点に鑑みなされたもので、検索式と検索対象となるそれぞれの文書との適合度を適切に計算し、適合度の降順に文書を並べて検索結果とする全文検索を行う際に、フォーマットファイルへの記述と検索式での指定という簡単な操作によって、構造情報を適合度の計算に取り入れることができ、かつ属性によるフィルタを実現できる全文検索方法及び装置及び全文検索プログラムを格納した記憶媒体を提供することを目的とする。
【００３１】
【課題を解決するための手段】
図１は、本発明の原理を説明するための図である。
【００３２】
本発明は、単語または、単語のブール演算子結合からなる検索式に対して、検索対象となる構造を持ったそれぞれの文書（構造化文書）がどの程度合っているのかを表す「適合度」を計算し、該適合度の降順に文書を並べて検索結果とする全文検索装置における全文検索方法において、
構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するかの指定に基づいて、各文書に指定された各構造毎に、該構造に含まれる全単語を抽出するステップと（ステップ１）、
各単語をキーとし、該単語が出現する文書ＩＤと該単語の重要度のペアの集合を値とする逆引きインデックスを作成するステップと（ステップ２）、
逆引きインデックスのうち、１つまたは、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップ（ステップ３）と、からなる。
【００３３】
本発明は、全文検索方法におけるインデックスを作成する際に、
構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するのかの指定に基づいて、各文書の指定された各構造毎に、該構造に含まれる全単語を抽出するステップと、
文書ＩＤをキーとし、抽出された単語と該単語の重要度のペアの集合を値とする順引きインデックスを作成するステップと、
逆引きインデックス及び順引きインデックスのうち、１つ、または、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子及び、フィルタ演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップと、からなる。
【００３４】
本発明は、適合度を計算するステップにおいて、
フィルタ演算子が検索式に指定された場合には、
前記逆引きインデックスを用いて一時的な検索結果を取得し、
前記検索結果の中で、適合度の高い上位の所定の件数の文書の中から前記検索式によって指定されるフィルタ条件にマッチする文書だけを取り出し、最終的な検索結果とする“ａｎｄ型フィルタ”と、前記検索式によって指定されるフィルタ条件にマッチする文書の適合度を割り増し、割り増された適合度の降順に再び並び替えて最終的な検索結果とする“ｏｒ型フィルタ”のいずれか、または、両方を用いる。
【００３８】
図２は、本発明の原理構成図である。
【００３９】
本発明は、単語または、単語のブール演算子結合からなる検索式に対して、検索対象となる構造を持ったそれぞれの文書（構造化文書）がどの程度合っているのかを表す「適合度」を計算し、該適合度の降順に文書を並べて検索結果とする全文検索装置であって、
構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するかの指定に基づいて、各文書に指定された各構造毎に、該構造に含まれる全単語を抽出し、各単語をキーとし、該単語が出現する文書ＩＤと該単語の重要度のペアの集合を値とする逆引きインデックス１５１を作成する文書インデックス作成手段１００と、
逆引きインデックス１５１のうち、１つまたは、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子によって構成される検索式と、各検索対象の文書との適合度を計算する適合度計算手段２００と、を有する。
【００４０】
本発明の文書インデックス作成手段１００は、
構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するのかの指定に基づいて、各文書の指定された各構造毎に、該構造に含まれる全単語を抽出し、文書ＩＤをキーとし、抽出された単語と該単語の重要度のペアの集合を値とする順引きインデックス１５２を作成する手段を有し、
適合度計算手段２００は、
逆引きインデックス１５１及び順引きインデックス１５２のうち、１つ、または、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子及び、フィルタ演算子によって構成される検索式と、各検索対象の文書との適合度を計算する手段を有する。
【００４１】
本発明の適合度計算手段２００は、
フィルタ演算子が検索式に指定された場合には、
逆引きインデックスを用いて一時的な検索結果を取得する手段と、
検索結果の中で、適合度の高い上位の所定の件数の文書の中から検索式によって指定されるフィルタ条件にマッチする文書だけを取り出し、最終的な検索結果とする“ａｎｄ型フィルタ”と、検索式によって指定されるフィルタ条件にマッチする文書の適合度を割り増し、割り増された適合度の降順に再び並び替えて最終的な検索結果とする“ｏｒ型フィルタ”のいずれか、または、両方を用いる手段を含む。
【００４５】
本発明は、単語または、単語のブール演算子結合からなる検索式に対して、検索対象となる構造を持ったそれぞれの文書（構造化文書）がどの程度合っているのかを表す「適合度」を計算し、該適合度の降順に文書を並べて検索結果とする全文検索プログラムを格納した記憶媒体であって、
コンピュータに、
構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するかの指定に基づいて、各文書に指定された各構造毎に、該構造に含まれる全単語を抽出するステップと、
各単語をキーとし、該単語が出現する文書ＩＤと該単語の重要度のペアの集合を値とする逆引きインデックスを作成するステップと、
逆引きインデックスのうち、１つまたは、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップと、を実行させる。
【００４６】
本発明の全文検索方法におけるインデックスを作成するステップにおいて、
構造化文書内の、または、独立したフォーマットファイルに記述された、それぞれの文書の構造のどの部分に対応したインデックスを作成するのかの指定に基づいて、各文書の指定された各構造毎に、該構造に含まれる全単語を抽出するステップを実行させ、
文書ＩＤをキーとし、抽出された単語と該単語の重要度のペアの集合を値とする順引きインデックスを作成するステップとを実行させ、
適合度を計算するステップにおいて、
逆引きインデックス及び順引きインデックスのうち、１つ、または、複数のどのインデックスを使用するのかの指定及び、単語及び、ブール演算子及び、フィルタ演算子によって構成される検索式と、各検索対象の文書との適合度を計算するステップを実行させる。
【００４７】
また、本発明は、適合度を計算するステップにおいて、
フィルタ演算子が検索式に指定された場合には、
逆引きインデックスを用いて一時的な検索結果を取得し、
検索結果の中で、適合度の高い上位の所定の件数の文書の中から検索式によって指定されるフィルタ条件にマッチする文書だけを取り出し、最終的な検索結果とする“ａｎｄ型フィルタ”と、検索式によって指定されるフィルタ条件にマッチする文書の適合度を割り増し、割り増された適合度の降順に再び並び替えて最終的な検索結果とする“ｏｒ型フィルタ”のいずれか、または、両方を用いる。
【００５０】
上記のように、本発明は、検索式と検索対象となるそれぞれの文書との適合度を適切に計算し、適合度の降順に文書を並べて検索結果とする全文検索方法において、フォーマットファイルへの記述と検索式での指定という簡単な操作によって、文書の構造を適合度の計算に取り入れることが可能となる。また、属性によるフィルタを実現することが可能となる。
【００５１】
【発明の実施の形態】
図３は、本発明の全文検索装置の構成を示す。同図に示す全文検索装置は、文書インデックス部１００と検索実行部２００を有し、文書インデックス部１００には、検索対象文書データベース１１０とフォーマットファイル１２０からのデータが入力され、インデックスファイル群１５０が出力され、検索実行部２００は、インデックスファイル群１５０のファイル用いて検索を行う。
【００５２】
インデックスファイル群１５０は、逆引きインデックス１５１と順引きインデックス１５２がある。
【００５３】
最初に文書インデックス部１００の動作について説明する。
【００５４】
▲１▼  検索対象となる構造化文書の集合Ｎを検索対象文書データベース１１０から入力する。それぞれの文書には、図９に示すような構造が文書内に記述されているものとする。
【００５５】
▲２▼  それぞれの文書ｊ∈Ｎの構造を解析し、構造木を作成する。構造木の例を図４に示す。図９のようなタグの入れ子によって構造が記述されている場合には、構造を解析すると図４のような木構造となる。ここでは、このような構造を表す木を構造木と呼ぶ。構造を持った文書から構造木を作成する方法は既存の技術を用いるものとする。
【００５６】
▲３▼  フォーマットファイル１２０に記述されたインデックス対象の指定に基づき、構造木のどの部分をインデックスするのかを決定する。フォーマットファイル１２０の記述形式は特に限定しないが、ここでは、図５のように指定する。
【００５７】
インデックス対象の指定は、図５の
（＜ＦＩＥＬＤ＿ＤＥＦＩＮＩＴＩＯＮ＞−＜／ＦＩＥＬＤ  ＿ＤＥＦＩＮＩＴＩＯＮ＞  ）
に記述されている。構造木のルートからのタグのパス（ｔａｒｇｅｔ＿ｔａｇ）によって文書構造のどの部分をインデックス対象とするのかを指定している。ｔａｒｇｅｔ＿ｔａｇ  において、‘／／’は、子孫、‘／  ’は直接の子を表す。
【００５８】
例えば、図５の＜ＦＩＥＬＤ＿ＤＥＦＩＮＩＴＩＯＮ＞  の１行目の
ｔｅｒｇｅｔ＿ｔａｇ＝“／／ＳＥＣＴＩＯＮ／ＳＰＥＣ”
文書ルート（ＤＯＣ）からの子孫として、‘ＳＥＣＴＩＯＮ’があり、その直接の子‘ＳＰＥＣ’であるような部分構造をインデックス対象とすることを表す。つまり、図４における‘ＳＰＥＣ’以下の部分木を指定するものであり、元の文書における＜ＳＥＣＴＩＯＮ＞  〜＜／ＳＥＣＴＩＯＮ＞の間に入れ子になっている＜ＳＰＥＣ＞〜＜／ＳＰＥＣ＞で囲まれた部分をインデックスすることを表す。また、ｉｎｄｅｘ  ＿ｉｄ  ＝“ｓｐｅｃ”は、以下に述べるどのインデックスファイルに単語を登録するのかを指定する。
【００５９】
▲４▼  フォーマットファイル１２０で記述されたインデックス方法の指定に基づき、インデックスファイル群１５０を作成する。それぞれのインデックスファイル群１５０は、以下のいずれかである。
【００６０】
・逆引きインデックス（逆引きインデックスファイル１５１）：以下のキーと値を持つデーブルであり、従来の技術による逆引きインデックスと同じ形式である。
キー：単語ｉ
値：単語ｉが出現する文書ｊのＩＤと単語ｉの文書ｊにおける重量度ｗｉｊの集合
・順引きインデックス（順引きインデックスファイル１５２）：以下のキーと値を持つテーブルである。
・キー：文書ｊのＩＤ
・値：文書ｊに出現する単語ｉと単語ｉの文書ｊにおける重要度ｗｉｊの集合
ここで、順引きインデックスの例を図６に示す。同図において、文書３には、単語‘言語’と‘学習’が含まれ、それぞれに重要度は、０．３，０．６である。
【００６１】
インデックス方法の指定は、図５のフォーマットファイル１２０の＜ＩＮＤＥＸ＿ＦＩＬＥ＿ＤＥＦＩＮＩＴＩＯＮ＞  〜＜／ＩＮＤＥＸ  ＿ＦＩＬＥ＿ＤＥＦＩＮＩＴＩＯＮ＞  に記述されている。
【００６２】
例えば、図５における
＜ＩＮＤＥＸ＿ＦＩＬＥ  ｉｄ＝“ｓｐｅｃ”ｔｙｐｅ＝  “ＩＮＶＥＲＴＥＤ”／＞
という記述は、‘ｓｐｅｃ”というインデックスＩＤを持った、逆引きインデックスを作成することを表し、
＜ＩＮＤＥＸ＿ＦＩＬＥ  ｉｄ＝“ｌａｎｇ’ｔｙｐｅ＝  “ＳＥＱＵＥＮＴＩＡＬ”／＞
という記述は、ｌａｎｇというインデックスＩＤを持った、順引きインデックスを作成することを表す。これらのインデックスＩＤは、▲３▼で述べたｉｎｄｅｘ  ＿ｉｄに対応する。
【００６３】
次に、検索実行部２００の動作について説明する。
【００６４】
検索実行部２００は、インデックスファイル群１５０を用いて、検索式（単語、単語のブール演算子結合及びフィルタ表現によって記述される）と、検索対象となるそれぞれの文書との適合度を計算する。「通常検索」に続いて「フィルタ検索」を行うことによって検索が行われる。ここで、通常検索は、基本的には従来の全文検索技術を用いるが、本発明では、複数インデックスの中から実際に使用するインデックスを検索式で指定できる点が異なる。
【００６５】
ここで、本発明の検索実行部２００における通常検索（逆引きインデックスを用いた検索）について説明する。
【００６６】
▲１▼  検索式に含まれるそれぞれの単語ｉをキーとして、検索式で指定された逆引きインデックスを引く。
【００６７】
▲２▼  逆引きインデックスから取得した値から、それぞれの単語ｉの出現する文書ＩＤの集合と単語ｉのそれぞれの文書ｊにおける重要度Ｗｗｉｊを得る。
【００６８】
▲３▼  検索式に含まれるブール演算子を適切に処理し、単語の重要度を用いて、それぞれの文書の「通常検索適合度」を計算する。
【００６９】
▲４▼  「通常検索適合度」の降順に文書を並べる。
【００７０】
次に、検索実行部２００におけるフィルタ検索（順引きインデックスを用いた検索）について説明する。
【００７１】
▲１▼  「通常検索適合度」の上位ｋ件の文書の文書ＩＤをそれぞれキーとして、検索式で指定された順引きインデックスを引く。
【００７２】
▲２▼  順引きインデックスから取得した値から、それぞれの文書に出現する単語と単語の重要度の集合を得る。
【００７３】
▲３▼  検索式に含まれるブール演算子を適切に処理し、単語の重要度を用いて、「フィルタ適合度」を計算する。
【００７４】
▲４▼  ‘ａｎｄ型フィルタ’が検索式で指定された場合、▲３▼で得られる「フィルタ適合度」が０の時、その「文書全体の適合度」を０とする。‘ｏｒ型フィルタ’が検索式で指定された場合、▲３▼で得られる「フィルタ適合度」を「通常検索適合度」に加えたものを「文書全体の適合度」とする。
【００７５】
次に、検索実行部２００における通常検索について説明する。
【００７６】
通常検索は、フィルタ検索が終わった後で、「文書全体の適合度」の降順に文書を並べて検索結果とする。以下に、構造情報の指定、通常検索、フィルタ検索を用いた例を示す。
【００７７】
例１）
検索式（１）：
（ＵＮＩＸ  ａｎｄ  ｔｉ＝（Ｎｅｔｗｏｒｋ））  ａｎｄ  ＿ｆｉｌｔｅｒ（ｌａｎｇ＝（ｊａｐａｎｅｓｅ  ｏｒ  ｅｎｇｌｉｓｈ））
ここで、ａｎｄ  ＿ｆｉｌｔｅｒは、‘ａｎｄ  型フィルタ’を表し、ｔｉは、文書のタイトル部分を対象とした逆引きインデックスのＩＤ、ｌａｎｇは、文書の使用言語部分を対象とした順引きインデックスのＩＤである。検索式（１）が与えられたときの処理は次のようになる。
【００７８】
▲１▼  デフォルトの逆引きインデックスに‘ＵＮＩＸ’を含み、かつ、逆引きインデックスｔｉに‘Ｎｅｔｗｏｒｋ  ’を含む文書集合を取得し、単語の重要度と‘ａｎｄ’演算子を基にそれぞれの文書の「通常検索適合度」を計算する。
【００７９】
▲２▼  「通常検索適合度」の降順に文書をソートし、上位ｋ件のそれぞれの文書ｊに対して以下の処理を行う。
【００８０】
文書ｊのＩＤをキーとして、インデックスｌａｎｇを引き、その値に‘ｊａｐａｎｅｓｅ’か‘ｅｎｇｌｉｓｈ  ’が存在するかを調べる。存在した場合は、‘ｊａｐａｎｅｓｅ’や‘ｅｎｇｌｉｓｈ  ’の単語の重要度を用いて「フィルタの適合度」を計算する。‘ｊａｐａｎｅｓｅ’や‘ｅｎｇｌｉｓｈ  ’がインデックスｌａｎｇの値に含まれない文書の「フィルタ適合度」は０になる。
【００８１】
‘ａｎｄ型フィルタ’が指定されているので、「フィルタの適合度」が０の文書の「文書全体の適合度」は０、「フィルタ適合度」が正の文書の「文書全体の適合度」は、「通常検索適合度」とする。
【００８２】
▲３▼  最後に「文書全体の適合度」が正のものについて、この値の降順に文書を並べて検索結果として出力する。
【００８３】
このように、検索式（１）を用いると、
「ＵＮＩＸを含みかつタイトルにＮｅｔｗｏｒｋ  を含む文書で、日本語か英語で記述された文書集合」
が検索結果として得られる。
【００８４】
例２）
検索式（２）：
（ＵＮＩＸ  ｏｒ  ｔｉ＝（Ｎｅｔｗｏｒｋ））  ｏｒ  ＿ｆｉｌｔｅｒ＝（ｂｏｌｄ＝（ｌｉｎｕｘ  ａｎｄ  ｓｏｌａｒｉｓ））
ここで、ｏｒ＿ｆｉｌｔｅｒは、‘ｏｒ型フィルタ’を表し、ｔｉは、文書タイトル部分を対象とした逆引きインデックスのＩＤ，ｂｏｌｄは、強調文字を対象とした順引きインデックスのＩＤである。検索式（２）が与えられたときに処理は次のようになる。
【００８５】
▲１▼  前述の例１）と同様に、デフォルトの逆引きインデックスに
‘ＵＮＩＸを含み、インデックスｔｉにＮｅｔｗｏｒｋ  ’
を含む文書を取得し、それぞれの単語に付けられた重要度と‘ｏｒ’演算子を基にそれぞれの文書の「通常検索適合度」を計算する。
【００８６】
▲２▼  「通常検索適合度」の降順に文書をソートし、上位ｋ件のそれぞれの文書ｊに対して以下の処理を行う。
【００８７】
文書ｊのＩＤをキーとして、インデックスboldを引き、その値に‘linux’と‘solaris’（登録商標）があるかを調べる。もしあった場合には、linux’と‘solaris’の単語の重要度と‘and’の単語の重要度と‘and’演算子を用いて「フィルタ適合度」を計算する。‘solaris’と‘linux’をインデックスboldの項目に共に含まない文書の「フィルタ適合度」は０になる。
【００８８】
上記の▲１▼で得られた「通常検索適合度」に「フィルタ適合度」を加算したのを「文書全体の適合度」とする。
【００８９】
▲３▼  最後に「文書全体の適合」の降順に文書を並べて検索結果として出力する。
【００９０】
このように、検索式（２）を用いると、
「‘ＵＮＩＸ’を含むか、または、タイトルに‘Ｎｅｔｗｏｒｋ  ’を含む文書で、特に、‘ｓｏｌａｒｉｓ  ’と‘ｌｉｎｕｘ  ’を共に強調した文書が検索結果の上位にランキングされる文書集合」
が検索結果として得られる。
【００９１】
【実施例】
以下に、実施例として、前述した問題をどのように解決するかを説明する。
【００９２】
（ａ）文書の構造情報を反映した適合度計算ができないという問題の解決：
本発明では、フォーマットファイル１２０に文の構造情報を記述することによって、文書の構造のある特定の部分構造を対象としたインデックスファイル１５０を作成することができる。また、このようなインデックスファイル１５０にＩＤを付与し、このＩＤを検索式に記述することによって検索時に適切なインデックスファイルを選択して適合度計算をすることができる。そのため、文書に含まれる構造を適合度の計算に反映させることができる。
【００９３】
例えば、
「文書のどこかに、‘人工知能’を含むもののうち、タイトルに‘学習’を含む文書の適度を特に高くしたい。」
という検索要求に対しては、次のように答えることができる。
【００９４】
▲１▼  図５のフォーマットファイル１２０を用いてインデックスファイル１５０を作成する。このとき、テキスト部に加えてタイトル部分（ＴＩＴＬＥタグで囲まれた部分）がインデックスｔｉとして作成される。
【００９５】
▲２▼  以下の検索式を用いて検索を実行する。
【００９６】
人工知能  ｏｒ  ｔｉ＝（学習）
（ｂ）  文書に付けられた属性を用いたフィルタが実現できないという問題の解決：
本発明では、フォーマットファイル１２０に属性を記述するという簡単な操作で、文書構造のある特定の部分に対応した逆引きインデックス及び順引きインデックスを作成することができる。そして、‘ａｎｄ  ＿ｆｉｌｔｅｒ’や、‘ｏｒ＿ｆｉｌｔｅｒ’を検索式で指定することによって、逆引きインデックスを用いた検索に加えて、順引きインデックスを用いた検索を行うことができる。そのため、文書に付けられた属性を用いたフィルタを容易に実現できる。
例えば、‘ａｎｄ  型フィルタ’を含む検索要求である
「‘ＵＮＩＸ’を含む文書で日本語のものだけを取り出したい」
には、次のようにして答えることができる。
【００９７】
▲１▼  図５のフォーマットファイル１２０を用いてインデックスファイル１５０を作成する。この時、予め文書に付与された使用言語（＜ＬＡＮＧ＞−＜／ＬＡＮＧ＞で囲まれた部分）  が順引きインデックスｌａｎｇとして作成される。
【００９８】
▲２▼  以下の‘ａｎｄ  型フィルタ’を含む検索式を用いて検索を実行する。
【００９９】
ＵＮＩＸ  ａｎｄ  ＿ｆｉｌｔｅｒ＝（ｌａｎｇ＝（ｊａｐａｎｅｓｅ））
また、同様に、‘ｏｒ型フィルタ’を含む検索要求である
「‘知識’を含む文書で著者が‘鈴木’の場合は、適合度を高くしたい（ランキングを上位にしたい」
には、次にようにして答えることができる。
【０１００】
▲１▼  図５のフォーマットファイル１２０を用いてインデックスファイル１５０を作成する。この時、予め文書に付与された著者情報（＜ＡＵＴＨＯＲ＞タグで囲まれた部分）  が順引きインデックスａｕｔｈとして作成される。
【０１０１】
▲２▼  以下の‘ｏｒ型フィルタ’を含む検索式を用いて検索を実行する。
【０１０２】
知識  ｏｒ  ＿ｆｉｌｔｅｒ＝（ａｕｔｈ＝（鈴木））
また、上記の実施例では、フォーマットファイル１２０を作成して、当該フォーマットファイル１２０の記述に基づいてインデックスファイル１５０を作成する例を示しているが、構造化文書中に、文書の構造のどの部分に対応したインデックスを作成するのかを記述するようにしてもよい。
【０１０３】
また、上記の説明において、文書インデックス部１００と検索実行部２００について述べたが、これらの動作をプログラムとして構築し、全文検索装置として利用されるコンピュータに接続されるディスク装置や、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納しておき、本発明を実施する際にインストールすることも可能である。
【０１０４】
なお、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【０１０５】
【発明の効果】
上述のように、本発明によれば、フォーマットファイルにそれぞれの文書の構造のどの部分に対応したインデックスを作成するのかを記述するという簡単な操作によって、文書の構造情報とフィルタを利用した適切な適度度計算を行うことができ、全文検索システムの利便性を向上させることができる。
【図面の簡単な説明】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の全文検索装置の構成図である。
【図４】本発明に用いられる構造木の例である。
【図５】本発明におけるフォーマットファイルの例である。
【図６】本発明の順引きインデックスの例である。
【図７】従来の全文検索装置の構成図である。
【図８】従来の逆引きインデックスの例である。
【図９】構造化文書の例である。
【符号の説明】
１００  文書インデックス作成手段、文書インデックス部
１１０  構造化文書、検索対象データベース
１２０  フォーマットファイル
１５０  インデックスファイル群（インデックスファイル）
１５１  逆引きインデックス
１５２  順引きインデックス
２００  適合度計算手段、検索実行部
【図１】
0003578045.tif 000002
【図２】
0003578045.tif 000003
【図３】
0003578045.tif 000004
【図４】
0003578045.tif 000005
【図５】
0003578045.tif 000006
【図６】
0003578045.tif 000007
【図７】
0003578045.tif 000008
【図８】
0003578045.tif 000009
【図９】
0003578045.tif 000010