JPH0869476A - 検索システム - Google Patents

検索システム

Info

Publication number
JPH0869476A
JPH0869476A JP6204793A JP20479394A JPH0869476A JP H0869476 A JPH0869476 A JP H0869476A JP 6204793 A JP6204793 A JP 6204793A JP 20479394 A JP20479394 A JP 20479394A JP H0869476 A JPH0869476 A JP H0869476A
Authority
JP
Japan
Prior art keywords
search
character
target data
bit
index
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6204793A
Other languages
English (en)
Other versions
JP2693914B2 (ja
Inventor
Hideaki Kasai
秀昭 葛西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HOKKAIDO NIPPON DENKI SOFTWARE KK
NEC Solution Innovators Ltd
Original Assignee
HOKKAIDO NIPPON DENKI SOFTWARE KK
NEC Software Hokkaido Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by HOKKAIDO NIPPON DENKI SOFTWARE KK, NEC Software Hokkaido Ltd filed Critical HOKKAIDO NIPPON DENKI SOFTWARE KK
Priority to JP6204793A priority Critical patent/JP2693914B2/ja
Publication of JPH0869476A publication Critical patent/JPH0869476A/ja
Application granted granted Critical
Publication of JP2693914B2 publication Critical patent/JP2693914B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】抄録文などのフリーワード検索に際し、索引ビ
ットマップの論理演算のみで任意の文字列を含む対象デ
ータを特定し、検索処理効率を向上させる。 【構成】多数の文字から成る検索対象データが格納され
た検索データファイル1と、使用文字を索引キーとして
その文字が使用されている検索対象データ及び文字位置
が識別できるように構成されたビット列から成る索引ビ
ットマップ4を格納したビットマップファイル3と、検
索対象データを検索データファイル1に格納するときに
索引ビットマップ4の該当ビットを“1”とするビット
マップ作成処理部2と、入力装置6からの検索文字列の
各文字で索引ビットマップ4を検索して該当ビット列を
入力し、2文字目以降のビット列を位置差に相当するビ
ット数左シフトして各ビット列の論理積を求め、論理積
が“1”のビットを含むデータ番号を特定し表示装置7
に出力するビットマップ検索処理部5を備える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は検索システムに関し、特
に多数の文字から成る検索対象データが大量に格納され
ているデータベースから、任意の文字列を含む検索対象
データを抽出する検索システムに関する。
【0002】
【従来の技術】抄録文や解説文などの多数の文字から成
る検索対象データが蓄積されている検索データファイル
から、指定された任意の検索文字列を含む検索対象デー
タを選択し抽出するフリーワード検索の最も基本的な方
法は、検索データファイルの検索対象データを順次入力
し、検索文字列とすべての検索対象データとを照合する
ことにより、該当する検索文字列が含まれている検索対
象データを特定する方法である。しかしながら、この方
法では検索に時間がかかり過ぎるため、検索文字列と照
合する検索対象データの数を予備的な検索処理により限
定する方式が、特開昭62―211728号公報に提案
されている。
【0003】この方式は、文字ごとにその文字が使用さ
れている検索対象データのデータ番号を特定するための
ビット列を有する文字索引を有し、検索条件として指定
された検索文字列内の各文字でこの文字索引からビット
列を求め、ビット列間の論理積演算を行い、その結果か
ら検索文字列の全文字が含まれている検索対象データを
予備検索するものである。以上の予備検索で選択された
検索対象データは、検索文字列のすべての文字を含む
が、その文字の配列までは不明であり検索文字列の順序
に並んでいるとは限らないので、検索対象データの全文
を読み出して検索文字列との照合を行い、目的とする検
索対象データを決定する必要がある。従って、検索対象
データ数を限定することはできるが、なお検索対象デー
タと検索文字列の照合は不可欠である。
【0004】上述の方式を更に改善し、検索文字列と照
合する検索対象データ数を確認目的のみに近い数まで限
定できる提案が、特開平3―125263号公報に記載
されている。この提案は、上述の文字索引に加え、文字
索引と同様な構成の2文字の連語を索引キーとする連語
索引を併用するものである。すなわち、検索時に検索文
字列を2語ずつの連語に分解し、この連語をキーとして
連語索引からビット列を求め、ビット列の論理演算によ
り検索文字列を含む検索対象データを更に限定しようと
するものである。
【0005】
【発明が解決しようとする課題】しかしながら、上述し
た連語索引を併用する従来の検索システムは、単文字の
検索を行うために連語索引のほかに文字索引も必要であ
り、索引の規模が大きくなるばかりでなく、最終的には
検索対象データと検索文字列との照合が必要であるとい
う問題点が残っている。
【0006】まず、連語索引の索引項目数は、すべての
文字の連語を考えると文字数の自乗となるので、使用可
能な文字数が多いほど連語索引の規模は文字索引(索引
項目数は文字数と同じ)の規模に比べて大きくなり、索
引検索にも時間がかかることになる。更に、検索文字列
を2語ずつの連語に分解してすべての連語の存在を確認
しても、その位置や順序を規定しないため最終的には検
索対象データと検索文字列との照合による確認が必要で
ある。例えば、「情報の検索」を検索文字列とすると、
これを分解した「情報」「報の」「の検」「検索」の4
連語のすべての存在を確認しても、文字列「情報の検
索」が存在することを保証できないからである。すなわ
ち、一つの検索対象データに「情報の蓄積」と「索引の
検索」という二つの文字列が含まれていた場合、この検
索対象データには上記の4連語が存在し、「情報の検
索」という文字列が含まれないにもかかわらず抽出され
るので確認が必要となる。
【0007】本発明の目的は、上述した問題点を解消
し、検索対象データと検索文字列との照合を必要とせ
ず、索引ビットマップの検索と論理演算とのみで検索条
件に合致した検索対象データを確実に特定できる検索シ
ステムを提供することにある。
【0008】
【課題を解決するための手段】請求項1の検索システム
は、多数の文字から構成された検索対象データが複数格
納されている検索データファイルから、指定した任意の
検索文字列を含む検索対象データを抽出するフリーワー
ド方式の検索システムにおいて、(A)文字を索引キー
としてその文字が使用されている検索対象データ及び当
該検索対象データ内の文字位置が識別できるよう構成さ
れたビット列が全文字数分配置されている索引ビットマ
ップと、(B)検索対象データを検索データファイルに
格納するときに当該検索対象データに使用されている全
文字を前記索引ビットマップの該当ビットに論理“1”
として登録するビットマップ作成処理部と、(C)検索
文字列に指定された各文字をキーとして順次前記索引ビ
ットマップを検索して該当するビット列を入力し、2文
字目以降の文字に対応するビット列をそれぞれ検索文字
列の先頭文字との位置差に等しいビット数ずつ各検索対
象データの範囲内で左シフトを行った後に論理積を求
め、論理“1”のビットを含む検索対象データを検索条
件に合致した検索対象データとして特定するビットマッ
プ検索処理部とを備えて構成されている。
【0009】請求項2の検索システムは、請求項1記載
の検索システムにおいて、前記索引ビットマップが、検
索対象データ群を複数のブロックに分割したブロックご
とに作成され、文字ごとに各ブロック内に当該文字が使
用されているか否かを識別するためのブロック数と等し
いビット数のビット列を配置したブロック索引ビットマ
ップと階層構成を形成し、前記ビットマップ作成処理部
は検索対象データを検索データファイルに格納するとき
に前記ブロック索引ビットマップにも必要情報を登録す
る機能を有し、前記ビットマップ検索処理部は検索時に
前記ブロック索引ビットマップを検索して該当するビッ
ト列の論理積から処理対象のブロックを決定して当該ブ
ロックの索引ビットマップに対して処理を行うことを特
徴としている。
【0010】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0011】図1は本発明の一実施例の構成を示すブロ
ック図である。
【0012】本実施例の検索システムは、図1に示すよ
うに、多数の文字から成る検索対象データが複数格納さ
れている検索データファイル1と、検索対象データに使
用される文字を索引キーとしてその文字が使用されてい
る検索対象データ及び文字位置が識別できるように構成
されたビット列から成る索引ビットマップ4が格納され
たビットマップファイル3と、検索対象データを検索デ
ータファイル1に格納するときに索引ビットマップ4の
該当ビットを“1”とするビットマップ作成処理部2
と、入力装置6から指定された検索文字列の各文字で索
引ビットマップ4を検索して該当するビット列を入力
し、2文字目以降のビット列を位置差に相当するビット
数左シフトした後に各ビット列の論理積を求め、出力が
“1”のビットを含む検索対象データのデータ番号を検
索対象データと特定し表示装置7に出力するビットマッ
プ検索処理部5とを備えて構成されている。
【0013】本実施例の検索システムは、抄録文や解説
文などの文章形式の検索対象データから、指定した任意
の検索文字列を含む検索対象データを選択し抽出するフ
リーワード方式の検索システムであり、検索データファ
イル1には、検索対象データ以外にも付随するその他の
情報が格納されているが、図1には、各データ単位を識
別するためのデータ番号と、フリーワード検索の対象と
なる検索対象データのみを示した。更に、説明を簡単に
して理解しやすくするために、使用文字を英大文字で示
し、文頭の数文字のみを示してある。
【0014】索引ビットマップ4は、検索対象データに
使用される文字を索引キーとして、その文字が使用され
ている検索対象データのデータ番号および各検索対象デ
ータ内の文字位置が識別できるように、データ番号順に
1データに許容される最大文字数分のビットを配列した
ビット列により構成されている。図1の例では、文字
「A」はデータ番号#1の1文字目とデータ番号#2の
1文字目に、文字「B」はデータ番号#1の2文字目と
データ番号#2の2文字目に、文字「C」はデータ番号
#1の3文字目とデータ番号#2の3文字目とデータ番
号#3の1文字目に、………文字「G」はデータ番号#
3の5文字目に使用されていることを示している。索引
ビットマップ4は、検索対象データを検索データファイ
ル1に格納するときにビットマップ作成処理部2により
作成され、索引ビットマップ4の該当データ番号の該当
文字位置のビットに“1”が登録される。データを削除
する際には、索引ビットマップ4の該当データ番号の全
ビットが“0”に初期化される。なお、データ番号を追
加増設する場合には、索引ビットマップ4の各ビット列
に必要数(増設データ数×最大文字数)のビットが追加
される。
【0015】ビットマップ検索処理部5は、入力装置6
から指定された検索文字列により、索引ビットマップ4
を検索して論理演算処理を行い、検索文字列が含まれる
検索対象データのデータ番号を特定して表示装置7に出
力する。更に要求があれば、そのデータ番号により検索
データファイル1から検索対象データの全文や他の情報
を読み出して表示することができる。以下、入力装置6
から検索文字列として「CD」が入力された場合を例と
して、ビットマップ検索処理部7の処理を具体的に説明
する。
【0016】検索文字列「CD」が入力され検索開始が
指示されると、ビットマップ検索処理部5は、最初に、
索引ビットマップ4から索引文字「C」のビット列をす
べて入力する。次に、索引文字「D」のすべてのビット
列の入力を行い、図2に示すように、データ番号のビッ
ト列ごとに1ビット分ずつ左にシフトする。最後に、ビ
ットマップ検索処理部7は、入力済みの索引文字「C」
のビット列と、索引文字「D」のビット列のシフト結果
との論理積を求める。この論理演算の経過を図3に示
す。図3の演算結果のビット列から、データ番号ごとの
ビット列の中に論理“1”のビットを含むデータ番号を
特定し、そのデータ番号を表示装置7に表示する。図3
の場合、データ番号#1と#3のビット列には“1”の
ビットが存在するので、データ番号#1と#3の検索対
象データには文字列「CD」が含まれているが、データ
番号#2のビット列には“1”が存在しないので、デー
タ番号#2の検索対象データに文字列「CD」が含まれ
ないとを示している。
【0017】検索文字列が3文字以上の場合には、3文
字目のビット列は2ビットの左シフトを行い、4文字目
のビット列は3ビットの左シフトを行うというように、
検索文字列中の文字位置と対応したビット数(文字位置
−1)の左シフトを行い、各ビット列の論理積演算を行
うことにより、同様にして検索文字列を含むデータ番号
を特定することができる。この方法によれば、文字を索
引キーとする索引ビットマップの検索のみから、該当文
字の存在のみならずその配列順序までを検出することが
できるので、検索文字列と検索対象データとの照合を行
わずに確実に目的の検索対象データを特定できる。
【0018】上述の実施例の説明では、索引文字に対応
するすべてのビット列を読み込み、論理演算を行うよう
に説明したが、検索対象データの数が多くなるに従い、
すべてのビット列を入力した場合、ビットシフト及び論
理演算の処理も膨大となるので、索引ビットマップをブ
ロック単位に分割して階層化することにより、検索文字
列が含まれる可能性のないブロックを、前処理により処
理対象から除外することが有効と考えられる。すなわ
ち、索引ビットマップをデータ番号#1からデータ番号
#10までのブロック#1と、データ番号#11からデ
ータ番号#20までのブロック#2と、………というよ
うにn個のブロックに分割し、そのブロック内に当該文
字が使用されているか否かを識別するためのnビットの
ビット列から成るブロック索引ビットマップとの階層構
成とする。検索の場合には、まずブロック索引ビットマ
ップを検索してビット列を入力し、単純に論理積を求め
て論理値“1”のビットに対応するブロックのみを以後
の処理対象とする。以上の前処理により、検索文字列の
すべての文字を含まないブロックを処理対象から除外す
ることができる。上記のブロック化を行う場合に、同一
分野の情報を集めてブロックを構成するようにすると効
果的である。なお、検索データファイルに検索対象デー
タを登録する際には、索引ビットマップと共にブロック
索引ビットマップにも登録するが、同一ブロックの他の
データ番号で既に使用されている場合には変更しなくて
よい。データを削除する際には、索引ビットマップの該
当データ番号の全ビットを“0”に初期化するが、ブロ
ック索引ビットマップはブロック内の他のデータ番号を
チェックして処理することになる。
【0019】
【発明の効果】以上説明したように、本発明の検索シス
テムは、文字が使用されている検索対象データのデータ
番号と文字位置とが識別できる索引ビットマップを設け
ることにより、索引ビットマップから検索したビット列
のシフトと論理演算とのみで、検索条件に該当する検索
対象データを特定することができ、検索対象データと検
索文字列との直接照合を全く必要としないため、検索シ
ステムの処理効率を大きく改善できる効果がある。な
お、検索対象データの数が多い場合には、索引ビットマ
ップをブロック分割して階層化することにより、論理演
算対象のビット列の長大化を防ぐことができる。
【図面の簡単な説明】
【図1】本発明の一実施例の構成を示すブロック図であ
る。
【図2】ビットマップ検索処理部におけるビット列シフ
ト動作の説明図である。
【図3】ビットマップ検索処理部における論理積演算の
概念を示す説明図である。
【符号の説明】
1 検索データファイル 2 ビットマップ作成処理部 3 ビットマップファイル 4 索引ビットマップ 5 ビットマップ検索処理部 6 入力装置 7 表示装置

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 多数の文字から構成された検索対象デー
    タが複数格納されている検索データファイルから、指定
    した任意の検索文字列を含む検索対象データを抽出する
    フリーワード方式の検索システムにおいて、(A)文字
    を索引キーとしてその文字が使用されている検索対象デ
    ータ及び当該検索対象データ内の文字位置が識別できる
    よう構成されたビット列が全文字数分配置されている索
    引ビットマップと、(B)検索対象データを検索データ
    ファイルに格納するときに当該検索対象データに使用さ
    れている全文字を前記索引ビットマップの該当ビットに
    論理“1”として登録するビットマップ作成処理部と、
    (C)検索文字列に指定された各文字をキーとして順次
    前記索引ビットマップを検索して該当するビット列を入
    力し、2文字目以降の文字に対応するビット列をそれぞ
    れ検索文字列の先頭文字との位置差に等しいビット数ず
    つ各検索対象データの範囲内で左シフトを行った後に論
    理積を求め、論理“1”のビットを含む検索対象データ
    を検索条件に合致した検索対象データとして特定するビ
    ットマップ検索処理部とを備えたことを特徴とする検索
    システム。
  2. 【請求項2】 前記索引ビットマップが、検索対象デー
    タ群を複数のブロックに分割したブロックごとに作成さ
    れ、文字ごとに各ブロック内に当該文字が使用されてい
    るか否かを識別するためのブロック数と等しいビット数
    のビット列を配置したブロック索引ビットマップと階層
    構成を形成し、前記ビットマップ作成処理部は検索対象
    データを検索データファイルに格納するときに前記ブロ
    ック索引ビットマップにも必要情報を登録する機能を有
    し、前記ビットマップ検索処理部は検索時に前記ブロッ
    ク索引ビットマップを検索して該当するビット列の論理
    積から処理対象のブロックを決定して当該ブロックの索
    引ビットマップに対して処理を行うことを特徴とする請
    求項1記載の検索システム。
JP6204793A 1994-08-30 1994-08-30 検索システム Expired - Fee Related JP2693914B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6204793A JP2693914B2 (ja) 1994-08-30 1994-08-30 検索システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6204793A JP2693914B2 (ja) 1994-08-30 1994-08-30 検索システム

Publications (2)

Publication Number Publication Date
JPH0869476A true JPH0869476A (ja) 1996-03-12
JP2693914B2 JP2693914B2 (ja) 1997-12-24

Family

ID=16496455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6204793A Expired - Fee Related JP2693914B2 (ja) 1994-08-30 1994-08-30 検索システム

Country Status (1)

Country Link
JP (1) JP2693914B2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1328813C (zh) * 2002-03-27 2007-07-25 日产自动车株式会社 燃料电池***及其保护方法
JP2010225137A (ja) * 2009-02-27 2010-10-07 Fujitsu Ltd 検索プログラム及び検索方法
WO2012108006A1 (ja) 2011-02-08 2012-08-16 富士通株式会社 検索プログラム、検索装置、および検索方法
WO2016001991A1 (ja) * 2014-06-30 2016-01-07 株式会社日立製作所 検索方法
US9391636B2 (en) 2012-12-19 2016-07-12 Fujitsu Limited Method and system
US9496895B2 (en) 2012-12-19 2016-11-15 Fujitsu Limited Compression method and decompression method
JP2018060424A (ja) * 2016-10-06 2018-04-12 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
EP3312740A1 (en) * 2016-10-21 2018-04-25 Fujitsu Limited Data search program, data search device, and data search method
JP2018163505A (ja) * 2017-03-24 2018-10-18 富士通株式会社 検索プログラム、情報処理装置および検索方法
JP2018170603A (ja) * 2017-03-29 2018-11-01 富士通株式会社 符号化プログラム、符号化装置および符号化方法
JP2019083477A (ja) * 2017-10-31 2019-05-30 富士通株式会社 データ生成プログラム、データ生成方法および情報処理装置

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1328813C (zh) * 2002-03-27 2007-07-25 日产自动车株式会社 燃料电池***及其保护方法
JP2010225137A (ja) * 2009-02-27 2010-10-07 Fujitsu Ltd 検索プログラム及び検索方法
WO2012108006A1 (ja) 2011-02-08 2012-08-16 富士通株式会社 検索プログラム、検索装置、および検索方法
US9391636B2 (en) 2012-12-19 2016-07-12 Fujitsu Limited Method and system
US9496895B2 (en) 2012-12-19 2016-11-15 Fujitsu Limited Compression method and decompression method
US9577666B2 (en) 2012-12-19 2017-02-21 Fujitsu Limited Method and system
US10394870B2 (en) 2014-06-30 2019-08-27 Hitachi, Ltd. Search method
WO2016001991A1 (ja) * 2014-06-30 2016-01-07 株式会社日立製作所 検索方法
JPWO2016001991A1 (ja) * 2014-06-30 2017-04-27 株式会社日立製作所 検索方法
JP2018060424A (ja) * 2016-10-06 2018-04-12 富士通株式会社 インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
JP2018067264A (ja) * 2016-10-21 2018-04-26 富士通株式会社 データ検索プログラム、データ検索装置およびデータ検索方法
EP3312740A1 (en) * 2016-10-21 2018-04-25 Fujitsu Limited Data search program, data search device, and data search method
US10922343B2 (en) 2016-10-21 2021-02-16 Fujitsu Limited Data search device, data search method, and recording medium
JP2018163505A (ja) * 2017-03-24 2018-10-18 富士通株式会社 検索プログラム、情報処理装置および検索方法
US10997139B2 (en) 2017-03-24 2021-05-04 Fujitsu Limited Search apparatus and search method
JP2018170603A (ja) * 2017-03-29 2018-11-01 富士通株式会社 符号化プログラム、符号化装置および符号化方法
US11055328B2 (en) 2017-03-29 2021-07-06 Fujitsu Limited Non-transitory computer readable medium, encode device, and encode method
JP2019083477A (ja) * 2017-10-31 2019-05-30 富士通株式会社 データ生成プログラム、データ生成方法および情報処理装置

Also Published As

Publication number Publication date
JP2693914B2 (ja) 1997-12-24

Similar Documents

Publication Publication Date Title
US5745745A (en) Text search method and apparatus for structured documents
US4775956A (en) Method and system for information storing and retrieval using word stems and derivative pattern codes representing familes of affixes
US6470347B1 (en) Method, system, program, and data structure for a dense array storing character strings
JP2832988B2 (ja) データ検索システム
JPH09259140A (ja) 情報検索方法、情報検索装置及び情報検索プログラムを格納する媒体
JP2693914B2 (ja) 検索システム
JP2669601B2 (ja) 情報検索方法及びシステム
JPH11306203A (ja) インデックス作成方法及び文書検索処理方法
JPH1139315A (ja) フォーマットされた文書を順序付けされたワードリストへ変換する方法
CN102722527B (zh) 一种支持含有缺失符号的查询请求的全文检索方法
JP2002202973A (ja) 構造化文書管理装置
JP2535629B2 (ja) 検索システムの入力文字列正規化方式
JP3709890B2 (ja) 文字列検索装置
JPH05250416A (ja) データベースの登録・検索装置
EP1072986A2 (en) System and method for extracting data from semi-structured text
JPH08115340A (ja) 文書検索装置およびそれに用いるインデックスファイルの作成装置
JP2835065B2 (ja) 文字列検索方法
JP2548119B2 (ja) 情報検索装置
JPH11161666A (ja) ドキュメントデータ検索方法および装置、並びにドキュメント編集装置
JPS61182132A (ja) 情報検索方式
JP2773657B2 (ja) 文字列検索装置
JP3104893B2 (ja) 情報検索方式
WO2017126057A1 (ja) 情報検索方法
JPH0342774A (ja) 情報処理装置
JPH03260868A (ja) 情報処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970805

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080905

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees