JP2009223520A - テキスト検索システム及びプログラム - Google Patents

テキスト検索システム及びプログラム Download PDF

Info

Publication number
JP2009223520A
JP2009223520A JP2008066190A JP2008066190A JP2009223520A JP 2009223520 A JP2009223520 A JP 2009223520A JP 2008066190 A JP2008066190 A JP 2008066190A JP 2008066190 A JP2008066190 A JP 2008066190A JP 2009223520 A JP2009223520 A JP 2009223520A
Authority
JP
Japan
Prior art keywords
search
character string
index
text data
document
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
JP2008066190A
Other languages
English (en)
Other versions
JP4734363B2 (ja
Inventor
Katsufumi Fujimoto
克文 藤本
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008066190A priority Critical patent/JP4734363B2/ja
Publication of JP2009223520A publication Critical patent/JP2009223520A/ja
Application granted granted Critical
Publication of JP4734363B2 publication Critical patent/JP4734363B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

【課題】同一視検索及び非同一視検索を、より少ない処理コストで、且つより少ない容量の索引記憶用領域で実現する。
【解決手段】索引管理部54は、文書部421に格納される文書に存在する文字列を変換部56により同一視検索のための文字列に変換させ、変換後の文字列を変換前の文字列が存在する文書と対応付けて索引423に追加する。同一視検索部552は、検索要求の指定する検索文字列を変換部56により同一視検索のための文字列に変換させ、変換後の検索文字列及び索引423に基づいて、変換後の検索文字列と同一視すべき文字列を含むテキストデータを検索する。非同一視検索部553は、非同一視検索が指定されている場合、同一視検索部552によって検索されたテキストデータを非同一視検索対象として参照することで、検索要求の指定する検索文字列を含むテキストデータを検索する。
【選択図】 図3

Description

本発明は、索引を利用してテキストデータを検索するテキスト検索システムに係り、特に、タイプの異なる文字を同一視して検索するための同一視検索及び同一視しないで検索するための非同一視検索の両検索に好適なテキスト検索システム及びプログラムに関する。
従来から、大量のテキストデータの中から、指定された文字列を含むテキストデータを検索するテキスト検索システムが知られている。このようなテキスト検索システムでは、指定された文字列を含むテキストデータの検索を高速化するために、索引を用いるのが一般的である。
また近年は、テキスト検索システムによるテキスト検索において、タイプの異なる文字(例えば、英大文字と英小文字、全角文字と半角文字、平仮名と片仮名など)を同一視して検索する機能(同一視検索機能)が求められる場合がある。索引を用いた検索手法は、同一視検索を高速化するためにも有効である。
そこで、例えば特許文献1は、同一視検索を行う場合と同一視検索を行わない場合(つまり非同一視検索を行う場合)とで、それぞれ別々の索引を用いる方法を開示している。
また、例えば特許文献2は、同一視すべき文字列(語彙)なら同じ値になるようなハッシュ値を用いることにより、ハッシュ値が同じ語彙の索引を、そのハッシュ値で特定されるロケーションにまとめて記憶することを開示している。この特許文献2はまた、同一視検索及び非同一視検索のいずれの場合にも、検索の対象となる文字列(検索文字列)の表記を当該文字列の複数の表記のうちの予め定められた表記に変換して、その変換された表記の文字列(変換後の検索文字列)のハッシュ値で特定されるロケーションを対象とする索引検索を行うことを開示している。この特許文献2に記載された索引検索によれば、その索引検索の結果に基づいて、同一視検索の場合には検索文字列と同一視可能な全ての文字列が取得され、非同一視検索の場合には検索文字列と完全に一致する文字列が取得される。
特開平11−353323号公報 特開2006−106896号公報
上記したように、特許文献1に記載されている従来技術(第1の従来技術)においては、同一視検索用と非同一視検索用とに別々の索引が用意される。このため第1の従来技術では、同一視検索用と非同一視検索用の双方の索引(つまり、同一視検索用索引及び非同一視検索用索引)に、それぞれデータ(索引レコード)を登録しなければならない。したがって第1の従来技術においては、同一視検索用索引と非同一視検索用索引とにそれぞれ索引レコードを登録するための処理コスト、及び当該両索引を格納するための記憶領域を必要とする。
一方、特許文献2に記載されている従来技術(第2の従来技術)においては、同一視検索用と非同一視検索用とに別々の索引を用意する必要はないものの、ハッシュを用いて索引を管理する必要があり、また検索時には検索文字列のハッシュ値への変換が必要となる。
本発明は上記事情を考慮してなされたものでその目的は、索引を利用した同一視検索及び非同一視検索を、より少ない処理コストで、且つ、より少ない容量の索引記憶用領域で実現することができる、テキスト検索システム及びプログラムを提供することにある。
本発明の1つの観点によれば、索引記憶手段に格納されている索引を利用してテキスト記憶手段に格納されているテキストデータを検索するテキスト検索システムが提供される。このテキスト検索システムは、文字列を構成する各文字を当該文字と同一視すべき1つ以上のタイプの文字のうちの予め定められたタイプの文字に変換する文字列変換手段と、前記テキスト記憶手段に格納されるテキストデータに存在する文字列を構成する各文字を前記文字列変換手段により変換させることによって変換後の文字列を取得し、当該変換後の文字列を変換前の文字列が存在する前記テキストデータと対応付けて、前記索引に追加する索引管理手段と、クライアント端末から与えられる検索要求の指定する検索文字列を構成する各文字を前記文字列変換手段により変換させることによって変換後の検索文字列を取得し、当該変換後の検索文字列及び前記索引に基づいて、当該変換後の検索文字列と同一視すべき文字列を含むテキストデータを検索するための同一視検索を行う同一視検索手段と、前記検索要求によって非同一視検索が指定されている場合、前記同一視検索手段によって検索されたテキストデータを検索対象テキストデータとして、当該検索対象テキストデータから前記検索要求の指定する検索文字列を含むテキストデータを検索するための非同一視検索を行う非同一視検索手段とを具備する。
本発明によれば、検索要求の指定する検索文字列を同一視検索のための文字列に変換して、この変換後の文字列と同一視検索のための索引とに基づいて同一視検索を行うことで、同一視検索の高速化を図りながら、検索要求によって非同一視検索が指定されている場合にも同一視検索を行い、その同一視検索結果(つまり同一視検索によって検索されたテキストデータ)を非同一視検索対象テキストデータとして、当該非同一視検索対象テキストデータの中から検索要求の指定する検索文字列を含むテキストデータを検索することにより、非同一視検索をも高速化することができる。しかも本発明においては、非同一視検索のための索引を必要としないため、索引を格納するのに必要な記憶領域のサイズを抑制することができる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係るテキスト検索システム50を含むクライアント−サーバシステムのハードウェア構成を示すブロック図である。クライアント−サーバシステムは、主として、データベースサーバ(データベースサーバコンピュータ)10と、複数のクライアント端末とから構成される。複数のクライアント端末はクライアント端末20を含む。クライアント端末20上では、データベースサーバ10を利用するアプリケーション(アプリケーションプログラム)が動作する。クライアント端末20を含む複数のクライアント端末は、ローカルエリアネットワーク(LAN)のようなネットワーク30を介してデータベースサーバ10と接続されている。
なお、図1では、クライアント端末20以外のクライアント端末は省略されている。そこで以下では、クライアント端末20だけがテキスト検索システム50を利用するものとして説明するが、他のクライアント端末もクライアント端末20と同様にテキスト検索システム50を利用できることは勿論である。
データベースサーバ10は、主メモリのようなメモリ11を有するコンピュータ(データベースサーバコンピュータ)である。データベースサーバ10は、ハードディスクドライブのような2次記憶装置40と接続されている。この2次記憶装置40は、データベース管理プログラム41、データベース42及び変換規則(同一視変換規則情報)43を格納する。本実施形態においてテキスト検索システム50は、データベースサーバ10及び2次記憶装置40(に格納されているデータベース42)によって実現される。
データベース管理プログラム41は、データベースサーバ10によるデータベース42の管理、及びクライアント端末20からの検索要求に基づく検索処理(テキスト検索処理)に用いられる。
データベース42は、文書部421と索引部422とを含む。文書部421は、検索の対象となる複数の電子化された文書(テキスト文書)を格納するのに用いられる記憶領域(文書記憶手段)である。文書は文字列を含むテキストデータである。索引部422は、文書部421に格納されている文書を検索するための索引423を格納するのに用いられる記憶領域(索引記憶手段)である。
変換規則43は、任意の文字列(キャラクタコード列)を構成する文字(キャラクタコード)を、同一視すべき1つ以上のタイプの文字のうちの予め定められたタイプの文字(代表文字)に変換するのに用いられる情報である。本実施形態において、テキスト検索システム50が、例えば大文字のアルファベットと小文字のアルファベットとを同一視する機能(英字同一視機能)を有しているものとする。このようなテキスト検索システム50で適用される変換規則43は、例えば、大文字の「A」と小文字の「a」とが同一視対象であり、大文字の「A」が代表文字であるという情報を含む。
データベースサーバ10上では、データベース管理システム(DBMS)51が動作する。
図2は、索引部422内の索引423のデータ構造を文書部421内の文書と関連付けて示す。索引423は、索引レコードRi(i=1,2…)の集合である。索引レコードRiは、文字列フィールドF1と文書位置フィールドF2との対を含む。
文字列フィールドF1には文書内に存在する文字列が変換規則43に従って変換された状態で保持される。文書位置フィールドF2には、当該フィールドF2と対をなす文字列フィールドF1に保持されている文字列の変換前の文字列が存在する文書のID(文書ID)が保持される。この文書の文書IDは、当該文書がDBMS51内の後述する文書登録/更新部53によってデータベース42に登録される際に当該文書登録/更新部53によって付与される。本実施形態において、文書IDは、文書番号である。この文書ID(文書番号)によりデータベース42(内の文書部421)に格納されている文書の集合に含まれる1つの文書が特定される。つまり、文書ID(文書番号)は文書を特定する情報であり、また、当該文書IDで特定される文書のデータベース42(内の文書部421)における論理的な格納位置(ロケーション)を示す一種の位置情報でもある。なお、文書位置フィールドF2に、文書ID(文書番号)に加えて、当該フィールドF2と対をなす文字列フィールドF1に保持される文字列の変換前の文字列が存在する文書内の位置(ロケーション)を示す位置情報が保持される構成であっても構わない。この場合、文書のみでなく文書内の位置まで検索することが可能となる。
図2の例では、文書部421に、文書IDが「1」の文書#1及び文書IDが「2」の文書#2を含む文書の集合が格納されている。文書#1には文字列「ABC」が存在し、文書#2には文字列「abc」が存在する。
一方、索引部422に格納される索引423は、文書#1上の文字列「ABC」に対応する索引レコードR1(i=1)及び文書#2上の文字列「abc」に対応する索引レコードR2(i=2)を含む。先に挙げた変換規則43の例では、索引レコードR1及びR2の文字列フィールドF1には、いずれも文字列「ABC」が保持される。また、索引レコードR1及びR2の文書位置フィールドF2には、それぞれ文書#1及び#2の文書IDが保持される。
図3は図1に示されるテキスト検索システム50の主として機能構成を示すブロック図である。テキスト検索システム50内のDBMS51は、要求処理部52、文書登録/更新部53、索引管理部54、検索部55、文字列変換部56及びデータベース操作部57を含む。
DBMS51はまた、変換規則記憶部58を含む。変換規則記憶部58は、データベースサーバ10が有するメモリ11内の一部の記憶領域を用いて実現されるものとする。変換規則記憶部58には、2次記憶装置40に格納されている変換規則43が、テキスト検索システム50の起動時にロードされる。
要求処理部52は、クライアント端末20からの要求(コマンド)を受け付けて当該要求の種別を判別し、その判別結果に基づいて当該要求を文書登録/更新部53または検索部55に送出する入力インタフェースとして機能する。ここでは要求処理部52は、クライアント端末20からの要求が文書登録要求または文書更新要求ならば当該文書登録要求または文書更新要求を文書登録/更新部53に送出し、検索要求ならば当該検索要求を検索部55に送出する。要求処理部52はまた、クライアント端末20からの要求に対する文書登録/更新部53または検索部55からの応答を当該クライアント端末20に返す出力インタフェースとしても機能する。
文書登録/更新部53は、クライアント端末20からの文書登録要求を要求処理部52を介して受け取り、当該文書登録要求で指定された文書をデータベース42に登録(格納)する文書登録処理を行う。文書登録/更新部53は、クライアント端末20からの文書更新要求を要求処理部52を介して受け取り、当該文書更新要求で指定された、データベース42内の文書を更新する文書更新処理を行う。
文書登録/更新部53はまた、データベース42への文書登録時に、当該文書に含まれる文字列に基づく索引レコードRiの作成を索引管理部54に要求する。文書登録/更新部53はまた、データベース42内の文書の更新時に、当該更新によって更新される文字列に対応する索引レコードRiの更新を索引管理部54に要求する。なお、文書の更新時には、索引レコードRiの作成/削除を伴うこともある。
索引管理部54は、文書登録/更新部53からの索引レコード作成要求に応じ、当該文書登録/更新部53によってデータベース42に登録される文書に含まれる文字列に基づいて索引レコードRiを作成する。索引レコードRiの作成に際し、索引管理部54は、当該索引レコードRiの作成に用いられる文字列(変換前の文字列)を、文字列変換部56により、変換規則43で定められたタイプの文字列に変換させる。索引レコードRiは、この変換された文字列(変換後の文字列)を用いて作成される。索引管理部54は、作成された索引レコードRiをデータベース操作部57によって索引423に追加させる。
検索部55は、クライアント端末20から送られた検索要求を要求処理部52を介して受け取り、当該検索要求で指定された検索条件に基づいて同一視検索または非同一視検索を行う。検索部55は、判定部551、同一視検索部552及び非同一視検索部553を含む。
判定部551は検索種別判定部として機能して、検索要求で指定された検索が、同一視検索または非同一視検索のいずれであるかを判定する。
同一視検索部552は、検索要求によって指定された検索文字列を文字列変換部56により、変換規則43で定められたタイプの文字列に変換させる。同一視検索部552は、変換後の文字列(検索文字列)に基づき、索引423から当該文字列を含む索引レコードRiの群を検索するための同一視検索処理を実行する。同一視検索部552は、検索要求によって同一視検索が指定されている場合、検索された索引レコードRiの群に基づき、検索文字列に対して同一視される文字列を含む文書の群を特定する。
非同一視検索部553は、同一視検索部552によって検索された索引レコードRiの群を利用し、これによって示される文書の群の中から(当該文書の群の各文書内を参照することにより)変換前の検索文字列を含む文書の群を特定するための非同一視検索処理を実行する。
文字列変換部56は、索引管理部54または検索部55(内の同一視検索部552)によって要求された文字列(キャラクタコード列)を構成する文字を、変換規則記憶部58にロード(格納)されている変換規則43に基づいて、当該変換規則43によって指定されるタイプの文字(キャラクタコード)に変換する。
データベース操作部57は、文書登録/更新部53、索引管理部54及び検索部55がデータベース42にアクセスするのを可能とするインタフェースとして機能して、当該データベース42に対する処理を行う。
本実施形態において、要求処理部52、文書登録/更新部53、索引管理部54、検索部55、文字列変換部56及びデータベース操作部57は、図1のデータベースサーバ10が2次記憶装置40に格納されているデータベース管理プログラム41を当該サーバ10内のメモリ11に読み込んで実行することにより実現されるものとする。このプログラム41は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム41が、ネットワーク30を介してデータベースサーバ10にダウンロードされても構わない。なお、要求処理部52、文書登録/更新部53、索引管理部54、検索部55、文字列変換部56及びデータベース操作部57がハードウェアで構成されていても構わない。
次に、本実施形態におけるテキスト検索システム50の動作について説明する。
<文書登録処理>
まず、本実施形態における文書登録処理について、図4のフローチャートを参照して説明する。
今、ユーザが、データベース42に登録されるべき文書(テキストデータ)を指定して、当該文書の登録を指示するための操作を、クライアント端末20上で行ったものとする。するとクライアント端末20は、テキスト検索システム50に対して、指定の文書をデータベース42に登録させるための登録要求(文書登録要求)をネットワーク30経由で送出する。
要求処理部52は、クライアント端末20からの登録要求を受け取ると、当該登録要求を文書登録/更新部53に渡す。文書登録/更新部53は、クライアント端末20からの登録要求を要求処理部52を介して受け取ると、当該要求で指定された文書に存在する文字列の索引レコード化を索引管理部54に要求する。
すると索引管理部54は、文字列変換部56を用いて以下に述べる索引(索引レコード)作成処理(ステップS1)を行う。まず索引管理部54は、文書登録/更新部53によってデータベース42内の文書部421に登録されるべき文書に存在する索引レコード化の対象となる文字列(例えば単語を構成する文字列)を抽出する(ステップS11)。索引管理部54は、抽出された文字列(キャラクタコード列)の変換を文字列変換部56に要求する。これを受けて文字列変換部56は、要求された文字列(キャラクタコード列)を構成する各文字(キャラクタコード)を、変換規則記憶部58に格納されている変換規則43に従い、当該変換規則43の示すタイプの文字(キャラクタコード)、つまり代表文字に変換する(ステップS12)。
ここで、データベース42に登録されるべき文書が図2に示される文書#1であり、当該文書#1から抽出された文字列が、「ABC」であるものとする。この場合、文字列変換部56は、文字列「ABC」を構成する文字「A」「B」「C」を、それぞれ変換規則43で定められたタイプ(例えば英大文字)の代表文字「A」「B」「C」に変換する。つまり文字列変換部56は、文字列「ABC」を文字列「ABC」に変換する。この例では、変換後の文字列は、変換前の文字列に一致する。
同様に、データベース42に登録されるべき文書が図2に示される文書#2であり、当該文書#2から抽出された文字列が、「abc」であるものとする。この場合、文字列変換部56は、文字列「abc」を構成する文字「a」「b」「c」を、それぞれ変換規則43で定められたタイプ(英大文字)の代表文字「A」「B」「C」に変換する。つまり文字列変換部56は、文字列「abc」を文字列「ABC」に変換する。なお、抽出された文字列が例えば「Abc」である場合も、文字列「ABC」に変換される。
文字列変換部56は、変換結果、つまり変換後の文字列を索引管理部54に渡す。索引管理部54は、文字列変換部56から変換後の文字列を受け取ると、当該変換後の文字列と、変換前の文字列が存在している文書の文書IDとに基づき索引レコードRiを作成する(ステップS13)。即ち索引管理部54は、変換後の文字列が文字列フィールドF1に設定され、変換前の文字列が存在している文書の文書IDが文書位置フィールドF2に設定された索引レコードRiを作成する。索引管理部54は、作成された索引レコードRiを、データベース42内の索引部422に格納されている索引423に追加する(ステップS14)。
次に索引管理部54は、文書登録/更新部53によってデータベース42内の文書部421に登録されるべき文書に存在する全ての索引レコード化の対象となる文字列について処理したかを判定する(ステップ15)。もし、未処理の文字列が存在するならば、索引管理部54は上記ステップS11に戻って、当該未処理の文字列を抽出する。
これに対して、未処理の文字列が存在しないならば、索引管理部54は索引作成処理(ステップS1)を終了し、その旨を文書登録/更新部53に通知する。すると文書登録/更新部53は、索引管理部54による索引作成処理(ステップS1)の対象となっていた文書をデータベース42(内の文書部421)に格納するための格納処理を行う(ステップS2)。ここでは、データベース42に格納される文書自体に対しては、文字列変換部56による代表文字への変換は行われない。したがって、図2の文書#2の場合、当該文書#2上の文字列「abc」は、その「abc」のままで、データベース42に格納される。なお、索引管理部54による索引作成処理に先行して文書登録/更新部53による文書登録処理が行われても、或いは、両処理が並行して行われても構わない。
<テキスト検索処理>
次に、本実施形態におけるテキスト検索処理について、図5のフローチャートを参照して説明する。
今、ユーザがクライアント端末20を操作することにより、当該クライアント端末20からテキスト検索システム50に対して検索要求が送出されたものとする。この検索要求は検索条件として検索種別と検索文字列(キーワード)とを含む。検索種別は、同一視検索または非同一視検索のいずれの検索を行うかを指定する。
要求処理部52は、クライアント端末20からの検索要求を受け取ると、当該検索要求を検索部55に渡す。検索部55は、クライアント端末20からの検索要求を要求処理部52を介して受け取るとテキスト検索処理を開始する。まず検索部55内の同一視検索部552は、検索要求で指定された検索種別に無関係に、当該検索要求で指定された検索文字列の変換を文字列変換部56に要求する。
文字列変換部56は、同一視検索部552から要求された検索文字列を構成する各文字を、変換規則記憶部58に格納されている変換規則43に従い、当該変換規則43の示すタイプの文字(代表文字)に変換する(ステップS21)。文字列変換部56は、変換後の検索文字列を同一視検索部552に渡す。
同一視検索部552は、変換後の検索文字列を文字列変換部56から受け取ると、当該変換後の検索文字列を同一視検索のための検索文字列として用いることにより、当該検索文字列(変換後の検索文字列)に一致する文字列フィールドF1を含む索引レコードRiの群を索引423から検索する(ステップS22)。すると要求処理部52内の判定部551は検索種別判定部(後述する検索種別判定部551aに相当)として機能して、検索要求で指定された検索種別が同一視検索であるかを判定する(ステップS23)。
もし、検索要求で指定された検索種別が同一視検索であるならば(ステップS23)、判定部551はその旨を同一視検索部552に通知する。すると同一視検索部552は、ステップS22で検索された索引レコードRiの群の文書位置フィールドF2によって示される文書IDの文書の群を検索結果とする(ステップS24)。
これに対し、検索要求で指定された検索種別が同一視検索でないならば(ステップS23)、即ち非同一視検索であるならば、判定部551はその旨を非同一視検索部553に通知する。
すると非同一視検索部553は、データベース42内の文書部421に格納されている文書の集合のうち、同一視検索部552によって検索された索引レコードRiの群の文書位置フィールドF2によって示される文書IDの文書の群だけを非同一視検索の対象とする文書(以下、非同一視検索候補文書と称する)の群として、非同一視検索を行う(ステップS25)。
非同一視検索では、例えばアルファベットの小文字の文字列「abc」とアルファベットの大文字の文字列「ABC」とは異なる文字列として扱う必要がある。そこで、上記ステップS25において非同一視検索部553は、非同一視検索候補文書(同一視検索部552によって検索された文書)の群の内容をデータベース42内の文書部421から読み込んで参照することにより、更に具体的に述べるならば、当該文書の群の内容と検索要求で指定された検索文字列(つまり変換前の検索文字列)とを比較することにより、当該検索文字列が存在する部分を検索する。
非同一視検索部553は、非同一視検索候補文書の群のうち、変換前の検索文字列に一致する部分が存在する文書のみを検索結果とする(ステップS26)。ここで、非同一視検索候補文書の群のうちの残りの文書、即ち変換前の検索文字列に一致する部分が存在しない文書は検索結果から除外される。
ステップS24またはS26での検索結果は、要求処理部52及びネットワーク30を介してクライアント端末20に通知される。
このように本実施形態においては、非同一視検索が、同一視検索で検索された索引レコードRiの群の文書位置フィールドF2によって示される文書IDの文書の群だけを対象に行われる。つまり本実施形態においては、同一視検索結果を利用することで、非同一視検索の対象とされるべき文書の候補を絞ることができる。これにより本実施形態によれば、非同一視検索のための索引を用いないにも拘わらずに、一般に処理コストが高い非同一視検索のための文書内での検索回数を削減することができる。よって本実施形態においては、索引を格納するのに必要な記憶領域のサイズを抑制しつつ、非同一視検索を高速化することができる。
[変形例]
上記実施形態によれば、非同一視検索候補文書の群を、同一視検索で求められた文書の群に絞ることができる。しかし、非同一視検索候補文書を更に絞ることも可能である。そこで、非同一視検索候補文書を上記実施形態よりも更に絞ることを可能とする上記実施形態の変形例について、図1及び図3を援用して説明する。但し、索引423に代えて索引424が用いられるものとする。必要があれば、図1及び図3において、索引423を索引424に読み替えられたい。
図6は、索引部422内の索引424のデータ構造を文書部421内の文書と関連付けて示す。図6において、図2と同様の部分には同一符号を付してある。索引424が図2に示される索引423と相違するのは、索引レコードRiの構造である。索引424の索引レコードRiは、図6に示されるように、文字列フィールドF1と文書位置フィールドF2とに加えて、例えば1ビットの差異フラグフィールドF3を含む。差異フラグフィールドF3には、当該フィールドF3と組をなす文字列フィールドF1に保持される文字列(つまり変換規則43に基づく変換後の文字列)と元の文字列(つまり変換前の文字列)との間に差異が有るかを示すフラグビット(差異フラグ)が保持される。本実施形態において、このフラグビットは“1”のとき「差異有り(不一致)」を示し、“0”のとき「差異無し(一致)」を示す。
図6の例では、図2と同様に、文書部421に、文書IDが「1」の文書#1及び文書IDが「2」の文書#2を含む文書の集合が格納されている。文書#1には文字列「ABC」が存在し、文書#2には文字列「abc」が存在する。
また、索引部422に格納される索引424は、文書#1上の文字列「ABC」に対応する索引レコードR1及び文書#2上の文字列「abc」に対応する索引レコードR2を含む。索引レコードR1及びR2の文字列フィールドF1には、いずれも文字列「ABC」が保持される。また、索引レコードR1及びR2の文書位置フィールドF2には、それぞれ文書#1及び#2の文書IDが保持される。そして索引レコードR1及びR2の差異フラグフィールドF3には、それぞれフラグビット(差異フラグ)として“0”及び“1”が保持される。なお、文書部421に登録されるべき文書から抽出された文字列が例えば「Abc」である場合、当該文字列に対応する索引レコードRiの差異フラグフィールドF3には“1”が保持される。
図7は、本変形例で適用される判定部551の構成を示すブロック図である。本変形例において判定部551は、検索種別判定部551a及び検索文字列判定部551bを含む。検索種別判定部551aは、検索要求で指定された検索が、同一視検索または非同一視検索のいずれであるかを判定する。検索文字列判定部551bは、検索要求で指定された検索文字列(つまり変換前の文字列)と変換後の文字列とが一致するかを判定する。
<索引作成処理>
次に、本変形例における索引作成処理の上記実施形態と相違する部分について、図8のフローチャートを参照して説明する。
本変形例における索引作成処理が、上記実施形態と相違するのは、文書部421に登録されるべき文書から抽出された文字列を構成する各文字が、変換規則43で定められたタイプ(英大文字)の代表文字に変換されるステップS12(図4参照)の後の索引管理部54の動作である。つまり本変形例では、上記実施形態におけるステップS13に代えて、以下のステップS13a乃至S13cが実行される。ステップS12までの処理及びステップS13a乃至S13cより後の処理(ステップS14以降の処理)については、図4のフローチャートを参照されたい。
索引管理部54は、文字列変換部56から変換後の文字列を受け取ると、当該変換後の文字列を変換前の文字列と比較することにより、両文字列の間に差異が有るかを判定する(ステップS13a)。もし、差異が有るならば(ステップS13a)、索引管理部54は、差異有りを示す判定結果と、変換後の文字列と、変換前の文字列が存在している文書の文書IDとに基づき索引レコードRiを作成する(ステップS13b)。ここでは、索引レコードRiの差異フラグフィールドF3に“1”が設定される。
これに対し、差異が無いならば(ステップS13a)、索引管理部54は、差異無しを示す判定結果と、変換後の文字列と、変換前の文字列が存在している文書の文書IDとに基づき索引レコードRiを作成する(ステップS13c)。ここでは、索引レコードRiの差異フラグフィールドF3に“0”が設定される。
なお、文字列変換部56が、変換前の文字列を構成する各文字が代表文字であるかを判定し、代表文字である場合には変換動作を行わずに、当該変換前の文字列をそのまま変換後の文字列として決定する機能を有していてもよい。この場合、索引管理部54は、変換後の文字列を変換前の文字列と比較する代わりに、文字列変換部56が文字列を変換したかを当該文字列変換部56に問い合わせればよい。
索引管理部54は、ステップS13bまたは13cで索引レコードRiを作成すると、上記実施形態においてステップS13を実行した場合と同様にステップS14(図4参照)に進んで、当該作成された索引レコードRiを、データベース42内の索引部422に格納されている索引424に追加する。
<テキスト検索処理>
次に、本変形例におけるテキスト検索処理について、図9のフローチャートを参照して説明する。なお、図9において、図5のフローチャートと同一のステップには同一符号を付してある。
今、要求処理部52が、クライアント端末20から送出された検索要求を受け取って、当該検索要求を検索部55に渡したものとする。すると検索部55内の同一視検索部552は、クライアント端末20からの検索要求で指定された検索文字列の変換を文字列変換部56に要求する。
文字列変換部56は、同一視検索部552から要求された検索文字列を構成する各文字を、変換規則43の示すタイプの文字(代表文字)に変換する(ステップS21)。同一視検索部552は、文字列変換部56による変換後の検索文字列を同一視検索のための検索文字列として用いることにより、当該検索文字列(変換後の検索文字列)に一致する文字列フィールドF1を含む索引レコードRiの群を索引424から検索する(ステップS22)。すると要求処理部52内の判定部551(に含まれている検索種別判定部551a)は、検索要求で指定された検索種別が同一視検索であるかを判定する(ステップS23)。
もし、検索要求で指定された検索種別が同一視検索であるならば(ステップS23)、判定部551はその旨を同一視検索部552に通知する。すると同一視検索部552は、ステップS22で検索された索引レコードRiの群の文書位置フィールドF2によって示される文書IDの文書の群を検索結果とする(ステップS24)。
ここまでの動作は、上記実施形態と同様である(図5のフローチャート参照)。これに対し、検索要求で指定された検索種別が同一視検索でない場合(ステップS23)、即ち非同一視検索である場合の動作は、以下に述べるように上記実施形態と異なる。
まず判定部551内の検索種別判定部551aは、検索要求で指定された検索種別が非同一視検索である場合、当該判定部551内の検索文字列判定部551bを起動する。すると検索文字列判定部551bは、文字列変換部56による変換前の検索文字列と文字列変換部56による変換後の検索文字列とが一致するかを判定する(ステップS31)検索文字列判定部551bは、このステップS31での判定結果を非同一視検索部553に通知する。
ここで、変換前の検索文字列と変換後の検索文字列とが一致している第1の場合(ステップS31がYES)、同一視検索部552によって検索された索引レコードRiの群のうち、差異フラグが“1”の索引レコードRiの文字列フィールドF1に設定されている文字列の変換前の文字列は、上記変換前の検索文字列とは相違することに注意する。つまり、第1の場合、同一視検索部552によって検索された索引レコードRiの群の示す文書のうち、差異フラグが“1”の索引レコードRiによって示される文書は非同一視検索結果にはなり得ない。
一方、変換前の検索文字列と変換後の検索文字列とが一致していない第2の場合(ステップS31がNO)、上記検索された索引レコードRiの群のうち、差異フラグが“0”の索引レコードRiの文字列フィールドF1に設定されている文字列の変換前の文字列は、上記変換前の検索文字列とは相違することに注意する。つまり、第2の場合、同一視検索部552によって検索された索引レコードRiの群の示す文書のうち、差異フラグが“0”の索引レコードRiによって示される文書は非同一視検索結果にはなり得ない。
そこで非同一視検索部553は、第1の場合(ステップS31がYES)、上記検索された索引レコードRiの群から、差異フラグフィールドF3に設定されている差異フラグが“1”の索引レコードRiを除外する(ステップS32)。そして非同一視検索部553は、除外されなかった索引レコードRiの群(つまり残りの索引レコードRiの群)の文書位置フィールドF2によって示される文書IDの文書の群を検索結果とする(ステップS33)。明らかなように、残りの索引レコードRiの群は、検索された索引レコードRiの群のうち、差異フラグが“0”の索引レコードRiの群である。
このように本変形例においては、第1の場合、即ち変換前の検索文字列と変換後の検索文字列とが一致している場合には、非同一視検索のための索引を用いないにも拘わらず、文書(同一視検索で検索された索引レコードRiの群の文書位置フィールドF2によって示される文書IDの文書)内から検索文字列を検索しなくて済む。
一方、第2の場合(ステップS31がNO)、非同一視検索部553は、上記検索された索引レコードRiの群から、差異フラグフィールドF3に設定されている差異フラグが“0”の索引レコードRiを除外する(ステップS34)。そして非同一視検索部553は、データベース42内の文書部421に格納されている文書の集合のうち、ステップS34で除外されなかった索引レコードRiの群(残りの索引レコードRiの群)の文書位置フィールドF2によって示される文書IDの文書の群だけを非同一視検索候補文書として、非同一視検索を行う(ステップS35)。
明らかなように、残りの索引レコードRiの群は、検索された索引レコードRiの群のうち、差異フラグが“1”の索引レコードRiの群である。上記ステップS35において非同一視検索部553は、上記実施形態のステップS25と同様に、非同一視検索候補文書の群の内容をデータベース42内の文書部421から読み込み、当該文書の群の内容と検索要求で指定された検索文字列(変換前の検索文字列)とを比較することにより、当該検索文字列が存在する部分を検索する。
非同一視検索部553は、非同一視検索候補文書の群のうち、変換前の検索文字列に一致する部分が存在する文書のみを検索結果とする(ステップS36)。
このように本変形例においては、第2の場合、即ち変換前の検索文字列と変換後の検索文字列とが一致していない場合には、非同一視検索が、同一視検索で検索された索引レコードRiの群によって示される文書の群のうち、差異フラグが“0”の索引レコードRiによって示される文書だけを対象に行われる。つまり本変形例においては、同一視検索結果と、同一視検索で検索された索引レコードRiの群の差異フラグとを利用することで、非同一視検索の対象とされるべき文書の候補を上記実施形態よりも更に絞ることができる。これにより本変形例によれば、非同一視検索のための索引を用いないにも拘わらずに、非同一視検索のための文書内での検索回数を上記実施形態よりも更に削減することができる。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態及びその変形例では、データベース42(内の文書部421)に格納された文書(テキストデータ)を検索することを前提としている。しかし本発明は、例えばファイルシステムにおけるファイル検索にも適用することが可能である。
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係るテキスト検索システムを含むクライアント−サーバシステムのハードウェア構成を示すブロック図。 同実施形態で適用される索引部内の索引のデータ構造を、文書部内の文書と関連付けて示す図。 図1に示されるテキスト検索システムの主として機能構成を示すブロック図。 同実施形態における文書登録処理の手順を示すフローチャート。 同実施形態におけるテキスト検索処理の手順を示すフローチャート。 上記実施形態の変形例で適用される索引部内の索引のデータ構造を、文書部内の文書と関連付けて示す図。 同変形例で適用される判定部の構成を示すブロック図 同変形例における索引作成処理の上記実施形態と相違する部分の手順を示すフローチャート。 同変形例におけるテキスト検索処理の手順を示すフローチャート。
符号の説明
10…データベースサーバ、20…クライアント端末、30…ネットワーク、40…2次記憶装置、41…データベース管理プログラム、42…データベース、43…変換規則、50…テキスト検索システム、51…データベース管理システム(DBMS)、52…要求処理部、53…文書登録/更新部、54…索引管理部、55…検索部、56…文字列変換部、57…データベース操作部、421…文書部(テキスト記憶手段)、422…索引部(索引記憶手段)、423,424…索引、551…判定部、551a…検索種別判定部、551b…検索文字列判定部、552…同一視検索部、553…非同一視検索部、R1,R2…索引レコード、F1…文字列フィールド、F2…文書位置フィールド、F3…差異フラグフィールド。

Claims (5)

  1. 索引記憶手段に格納されている索引を利用してテキスト記憶手段に格納されているテキストデータを検索するテキスト検索システムにおいて、
    文字列を構成する各文字を当該文字と同一視すべき1つ以上のタイプの文字のうちの予め定められたタイプの文字に変換する文字列変換手段と、
    前記テキスト記憶手段に格納されるテキストデータに存在する文字列を構成する各文字を前記文字列変換手段により変換させることによって変換後の文字列を取得し、当該変換後の文字列を変換前の文字列が存在する前記テキストデータと対応付けて、前記索引に追加する索引管理手段と、
    クライアント端末から与えられる検索要求の指定する検索文字列を構成する各文字を前記文字列変換手段により変換させることによって変換後の検索文字列を取得し、当該変換後の検索文字列及び前記索引に基づいて、当該変換後の検索文字列と同一視すべき文字列を含むテキストデータを検索するための同一視検索を行う同一視検索手段と、
    前記検索要求によって非同一視検索が指定されている場合、前記同一視検索手段によって検索されたテキストデータを非同一視検索対象テキストデータとして、当該非同一視検索対象テキストデータから前記検索要求の指定する検索文字列を含むテキストデータを検索するための非同一視検索を行う非同一視検索手段と
    を具備することを特徴とするテキスト検索システム。
  2. 前記索引管理手段は、前記索引に、前記変換後の文字列を前記テキストデータと対応付けて追加する際に、当該変換後の文字列と変換前の文字列との間で差異が有るかを示す差異情報も前記テキストデータと対応付けて前記索引に追加し、
    前記非同一視検索手段は、前記索引内で前記非同一視検索対象テキストデータと対応付けられている差異情報に基づき、当該非同一視検索対象テキストデータから非同一視検索の結果にはなり得ないテキストデータを除外し、残りの非同一視検索対象テキストデータから前記検索要求の指定する検索文字列を含むテキストデータを検索する
    ことを特徴とする請求項1記載のテキスト検索システム。
  3. 前記検索要求によって非同一視検索が指定されている場合に、前記検索要求の指定する検索文字列と当該検索文字列に対応する前記変換後の検索文字列とが一致するかを判定する検索文字列判定手段を更に具備し、
    前記非同一視検索手段は、前記検索文字列判定手段によって不一致が判定された場合、前記非同一視検索対象テキストデータのうち、前記索引内で差異情報によって差異無しが示されているテキストデータを前記非同一視検索の結果にはなり得ないテキストデータと決定する
    ことを特徴とする請求項2記載のテキスト検索システム。
  4. 前記非同一視検索手段は、前記検索文字列判定手段によって一致が判定された場合、前記非同一視検索対象テキストデータのうち、前記索引内で差異情報によって差異有りが示されているテキストデータを前記非同一視検索の結果にはなり得ないテキストデータと決定する
    ことを特徴とする請求項3記載のテキスト検索システム。
  5. 索引記憶手段に格納されている索引を利用してテキスト記憶手段に格納されているテキストデータを検索するコンピュータを、
    文字列を構成する各文字を当該文字と同一視すべき1つ以上のタイプの文字のうちの予め定められたタイプの文字に変換する文字列変換手段と、
    前記テキスト記憶手段に格納されるテキストデータに存在する文字列を構成する各文字を前記文字列変換手段により変換させることによって変換後の文字列を取得して、当該変換後の文字列を変換前の文字列が存在する前記テキストデータと対応付けて、前記索引に追加する索引管理手段と、
    クライアント端末から与えられる検索要求の指定する検索文字列を構成する各文字を前記文字列変換手段により変換させることによって変換後の検索文字列を取得して、当該変換後の検索文字列及び前記索引に基づいて、当該変換後の検索文字列と同一視すべき文字列を含むテキストデータを検索するための同一視検索を行う同一視検索手段と、
    前記検索要求によって非同一視検索が指定されている場合、前記同一視検索手段によって検索されたテキストデータを検索対象テキストデータとして、当該検索対象テキストデータから前記検索要求の指定する検索文字列を含むテキストデータを検索するための非同一視検索を行う非同一視検索手段と
    して機能させるさせるためのプログラム。
JP2008066190A 2008-03-14 2008-03-14 テキスト検索システム及びプログラム Expired - Fee Related JP4734363B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008066190A JP4734363B2 (ja) 2008-03-14 2008-03-14 テキスト検索システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008066190A JP4734363B2 (ja) 2008-03-14 2008-03-14 テキスト検索システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2009223520A true JP2009223520A (ja) 2009-10-01
JP4734363B2 JP4734363B2 (ja) 2011-07-27

Family

ID=41240246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066190A Expired - Fee Related JP4734363B2 (ja) 2008-03-14 2008-03-14 テキスト検索システム及びプログラム

Country Status (1)

Country Link
JP (1) JP4734363B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109643322A (zh) * 2016-09-02 2019-04-16 株式会社日立高新技术 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877188A (ja) * 1994-09-05 1996-03-22 Oki Electric Ind Co Ltd フルテキストサーチ方法
JPH11353323A (ja) * 1998-06-09 1999-12-24 Toshiba Corp 文書検索装置および文書検索方法
JP2002269136A (ja) * 2001-03-14 2002-09-20 Ricoh Co Ltd 文書検索システム及びプログラム
JP2003316785A (ja) * 2002-04-25 2003-11-07 Ricoh Co Ltd テキストデータ検索装置及び方法
JP2004199282A (ja) * 2002-12-17 2004-07-15 Mitsubishi Electric Corp 文書検索装置および文書登録装置
JP2006106896A (ja) * 2004-09-30 2006-04-20 Toshiba Corp データベース登録システム、データベース検索システム、語彙索引登録方法及び異表記同一視検索方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877188A (ja) * 1994-09-05 1996-03-22 Oki Electric Ind Co Ltd フルテキストサーチ方法
JPH11353323A (ja) * 1998-06-09 1999-12-24 Toshiba Corp 文書検索装置および文書検索方法
JP2002269136A (ja) * 2001-03-14 2002-09-20 Ricoh Co Ltd 文書検索システム及びプログラム
JP2003316785A (ja) * 2002-04-25 2003-11-07 Ricoh Co Ltd テキストデータ検索装置及び方法
JP2004199282A (ja) * 2002-12-17 2004-07-15 Mitsubishi Electric Corp 文書検索装置および文書登録装置
JP2006106896A (ja) * 2004-09-30 2006-04-20 Toshiba Corp データベース登録システム、データベース検索システム、語彙索引登録方法及び異表記同一視検索方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109643322A (zh) * 2016-09-02 2019-04-16 株式会社日立高新技术 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统
CN109643322B (zh) * 2016-09-02 2022-11-29 株式会社日立高新技术 字符串辞典的构建方法、字符串辞典的检索方法及字符串辞典的处理系统

Also Published As

Publication number Publication date
JP4734363B2 (ja) 2011-07-27

Similar Documents

Publication Publication Date Title
US9195738B2 (en) Tokenization platform
KR100813806B1 (ko) 중심용어사전을 이용한 표제어의 중심용어 추출 방법 및그를 이용한 정보 검색 시스템 및 그 방법
US8055498B2 (en) Systems and methods for building an electronic dictionary of multi-word names and for performing fuzzy searches in the dictionary
US9020951B2 (en) Methods for indexing and searching based on language locale
US7979438B2 (en) Document management method and apparatus and document search method and apparatus
US8423885B1 (en) Updating search engine document index based on calculated age of changed portions in a document
JP4237813B2 (ja) 構造化文書管理システム
US12013903B2 (en) System and method for search discovery
JP4734363B2 (ja) テキスト検索システム及びプログラム
JP2011133928A (ja) 記憶装置に記憶してある文書ファイルを検索する検索装置、検索システム、検索方法及びコンピュータプログラム
KR20040039691A (ko) 정보 검색 시스템의 인덱싱 방법
JP4091586B2 (ja) 構造化文書管理システム、索引構築方法及びプログラム
CN113946365A (zh) 页面识别方法、装置、计算机设备和存储介质
JP4304226B2 (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP4160627B2 (ja) 構造化文書管理システム及びプログラム
US11954223B2 (en) Data record search with field level user access control
JP4550876B2 (ja) 構造化文書検索システム及びプログラム
JP2008197815A (ja) データベース管理システム及びプログラム
JP5145202B2 (ja) 文書検索装置および文書検索プログラム
US20080177729A1 (en) Apparatus, method and computer program product for searching document
CN115809664A (zh) 分词处理方法、装置、电子设备及存储介质
Kim et al. Fast, Flexible Text Search Using Genomic Short‐Read Mapping Model
KR20080024172A (ko) 중심용어사전의 데이터가 기록된 컴퓨터로 읽을 수 있는기록매체
JP2008198236A (ja) 構造化文書管理システム
JP2014186482A (ja) 全文検索装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100715

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110329

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110425

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4734363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees