JP2009163772A - Retrieval system and computer program - Google Patents
Retrieval system and computer program Download PDFInfo
- Publication number
- JP2009163772A JP2009163772A JP2009103452A JP2009103452A JP2009163772A JP 2009163772 A JP2009163772 A JP 2009163772A JP 2009103452 A JP2009103452 A JP 2009103452A JP 2009103452 A JP2009103452 A JP 2009103452A JP 2009163772 A JP2009163772 A JP 2009163772A
- Authority
- JP
- Japan
- Prior art keywords
- search
- index
- hit
- records
- sorting
- 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.)
- Pending
Links
Images
Abstract
Description
この発明は、検索システムおよびコンピュータプログラムに関する。 The present invention relates to a search system and a computer program.
従来、分散環境において、独立して管理され、開示される複数の文書ファイリングをまたがって、論理的に唯一のインデクスを構築し、インデクスに対して、一回の検索操作で、複数の文書ファイリングに存在する、複数の、文書の属性や、URLなどで示される文書の位置を、一元的に管理し、検索が可能なデータベースが構築されている。このような検索を統合検索と呼ぶ。 Conventionally, a logically unique index is constructed across multiple document filings that are managed and disclosed independently in a distributed environment, and a single search operation is performed on the index to multiple document filings. A plurality of existing database attributes and the positions of documents indicated by URLs are managed in a centralized manner, and a database is constructed. Such a search is called an integrated search.
統合検索のためのインデクス構築に際して、検索操作と独立して行われる収集操作によって、複数の文書ファイリングから、文書が収集される。収集操作は、収集対象とする文書ファイリングから、所定のアクセス権を有するユーザ、またはアプリケーションが、所定のネットワークプロトコルで、文書名を指定するか検索を行って、文書を特定し取得する。取得した文書を解析し、インデクス構築に必要な属性やキーワードを作成して、インデクスを構築する。 When an index for integrated search is constructed, documents are collected from a plurality of document filings by a collection operation performed independently of the search operation. In the collection operation, from a document filing to be collected, a user or application having a predetermined access right specifies or retrieves a document by specifying or searching for a document name using a predetermined network protocol. The acquired document is analyzed, attributes and keywords necessary for index construction are created, and the index is constructed.
なお、この発明と関連する特許文献には、複数のデータベースにそれぞれ格納されている文章データを解析し必要項目を抽出し抽出結果をインデクス化し、単一のインデクスで複数のデータベースにアクセスすることを開示するものや(特許文献1)、記憶装置に記憶されている複数のファイルの各々から所定の情報を取得するとともに権限情報も取得し所定の情報と権限情報とを用いてインデクスを構築してユーザの権限に応じた範囲でしか検索が行われないようにすることを開示するもの(特許文献2)がある。 In addition, in patent documents related to the present invention, it is necessary to analyze sentence data stored respectively in a plurality of databases, extract necessary items, index the extraction results, and access a plurality of databases with a single index. Obtaining predetermined information from each of a plurality of files stored in the storage device (Patent Document 1) or (Patent Document 1), obtaining authority information, and constructing an index using the predetermined information and authority information There is a disclosure (Patent Document 2) that discloses that a search is performed only within a range according to the authority of a user.
この発明は、種々の文書ファイリングにわたって統合検索を行う場合でも、高速の検索が可能な検索技術を提供することを目的としている。 An object of the present invention is to provide a search technique capable of performing a high-speed search even when performing an integrated search over various document filings.
本発明の原理的な構成では、複数のインデクスを用いて検索を行う検索装置において、各インデクスから取得した、スコアを含むヒットレコードをスコアに基づいて各インデクスごとにソートし、ソートした上記スコアを含むヒットレコードを所定の規則で連結し、連結した上記スコアを含むヒットレコードをスコアに基づいて再度ソートし、再度ソートした後のヒットレコードの上位の所定数を検索結果として出力するようにしている。 In the basic configuration of the present invention, in a search device that performs a search using a plurality of indexes, the hit records including the scores obtained from each index are sorted for each index based on the scores, and the sorted scores are obtained. The hit records that are included are concatenated according to a predetermined rule, the hit records including the concatenated scores are sorted again based on the scores, and the predetermined number at the top of the hit records after the re-sorting is output as a search result. .
この構成においては、インデクスごとにスコアを計算しソートを行うので、複数のインデクスに対して分散処理が可能であり、応答性を高め、スケーラビリティを確保することができる。また、インデクスごとにソートしたヒットレコードを連結する際に、インデクスごとのヒットレコードの処理対象上限値を定めておけば、不必要なヒットレコードをヒットレコード連結部に送る必要がなくなり、例えば通信コストを低減することが可能となる。 In this configuration, since the score is calculated and sorted for each index, distributed processing can be performed for a plurality of indexes, responsiveness can be improved, and scalability can be ensured. In addition, when concatenating hit records sorted by index, if an upper limit for processing hit records for each index is determined, there is no need to send unnecessary hit records to the hit record concatenation unit. Can be reduced.
なお、この発明は装置またはシステムとして実現できるのみでなく、方法としても実現可能である。また、そのような発明の一部をソフトウェアとして構成することができることはもちろんである。またそのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品もこの発明の技術的な範囲に含まれることも当然である。 The present invention can be realized not only as an apparatus or a system but also as a method. Of course, a part of the invention can be configured as software. Of course, software products used to cause a computer to execute such software are also included in the technical scope of the present invention.
この発明の上述の側面およびこの発明の他の側面は特許請求の範囲に記載され、以下実施例を用いて詳細に説明される。 The above described aspects of the invention and other aspects of the invention are set forth in the appended claims and are described in detail below with reference to examples.
この発明によれば、複数のインデクスを用いた場合でも、本構成を有していない場合と比較して、高速に検索を行える。 According to this invention, even when a plurality of indexes, compared with the case not having this constitution, allows the high-speed retrieval.
以下、この発明の実施例について説明する。 Examples of the present invention will be described below.
[実施例1]
実施例1は複数のインデクスを用いアクセス権限に応じて検索を制御するものである。
[Example 1]
The first embodiment uses a plurality of indexes to control the search according to access authority.
図1は、実施例1の検索装置を模式的に示しており、この図において、検索装置は、検索部10、アクセス制御部11、ユーザ権限記憶部12およびインデクス記憶装置13を含んで構成されている。インデクス記憶装置13は、複数のインデクス(便宜上A〜Nを付す)14を記憶している。複数のインデクス14はそれぞれ異なるレベルのアクセス権限が付与されている。もちろん、同一のアクセス権限が複数のインデクス14に付与され、同一のアクセス権限のグループとして管理されても良い。1つのインデクス記憶装置13にすべてのインデクス14を記憶するのでなく、複数のインデクス記憶装置13を設け、分散させて記憶するようにしても良い。この実施例の検索装置には検索ユーザ端末15から検索要求が送られ、検索結果が検索ユーザ端末15に返される。
FIG. 1 schematically illustrates a search device according to the first embodiment. In FIG. 1, the search device includes a
インデクス記憶装置13のインデクス14は、後述するインデクス構築装置(図2)により構築・管理される。
The
この実施例において、検索ユーザ端末15から検索要求がなされると、検索部10はアクセス制御部11に検索ユーザのユーザID等を供給し、アクセス制御部11は、ユーザ権限記憶部12を参照して検索ユーザのアクセス権限を返す。アクセス制御部11は、例えば、アクセス権限とそれに対応するインデクスとの関係を規定した表を表引きして、検索ユーザのアクセス権限で参照可能なインデクス14の識別子(複数の場合もある)を検索部10に返す。検索部10は、参照可能なインデクス14の識別子に基づいて許容されるインデクス14を参照してヒットしたレコードを取りだし、検索ユーザ端末15に返す。ヒットしたレコードを、ランキングスコアに基づいて整理し、所定の表示数のレコードのみ検索ユーザ端末15に返すようにしてもよい。
In this embodiment, when a search request is made from the
この例では、インデクス14を参照してヒットしたレコードは、すべてアクセス可能なものであり、ヒットしたレコードについて個々にユーザのアクセス権限を検証する必要がない。
In this example, the records hit with reference to the
なお、検索ユーザが指定したインデクス14あるいはすべてのインデクス14に対して検索部10が参照要求を行い、アクセス制御部11が、ユーザ権限記憶部12のユーザのアクセス権限を参照して参照の許否を行うようにしても良い。
Note that the
つぎにこの実施例のインデクス構築装置について説明する。 Next, the index construction apparatus of this embodiment will be described.
図2は、この実施例のインデクス構築装置を模式的に示しており、この図において、インデクス構築装置は、プロセス起動部20、インデクスレコード管理部21、アクセス制御部23、プロセス権限記憶部24を含んで構成されている。プロセス起動部20は、予めアクセス権限が設定されている。プロセス起動部20は、インデクスレコード管理部21のインデクスレコード管理プロセス22を起動し、プロセス起動部20のプロセスを付与する。ユーザあるいは管理者がインデクスレコード管理部21のインデクスレコード管理プロセス22を起動し、そのアクセス権限を付与するようにしても良い。起動されたインデクスレコード管理プロセス22は、文書を保持する文書ファイリングシステム103(図3参照)にアクセスし、自らのアクセス権限で許容される文書を参照してインデクスレコードを生成する。文書ファイリングシステム103の文書へのアクセスはアクセス制御部23およびプロセス権限記憶部24により制御される。こうしてインデクスレコード管理プロセス22は、自らのアクセス権限に対応する(同等以下の)セキュリティドメインの文書のインデクスレコードを生成して、インデクス記憶装置13中の対応するアクセス権限のインデクス14を構築したり、修正(挿入・削除)したりする。このインデクス14の構築・修正の処理についてもアクセス制御部23およびプロセス権限記憶部24により制御される。
FIG. 2 schematically shows an index construction apparatus according to this embodiment. In this figure, the index construction apparatus includes a
このようにしてアクセス権限ごとにインデクス14が構築・管理される。
In this way, the
図3は、実施例1の検索装置およびインデクス構築装置をイントラネット環境で実現した構成例を示す。図3において、検索システム100、複数のインデクス構築システム102、複数の文書ファイリングシステム103、ディレクトリサーバ104、ウェブサーバ105、アプリケーションサーバ106、クライアント端末120等が、LAN108に配置されている。またLAN108にはルータ107、ネットワーク121を介してクライアント端末120が接続されている。
FIG. 3 shows a configuration example in which the search device and the index construction device of the first embodiment are realized in an intranet environment. In FIG. 3, a
検索システム100はインデクス保持部101を有し、複数のインデクス(図1のインデクス14)を参照できる。
The
検索システム100、インデクス構築システム102はそれぞれ記憶媒体109、110、あるいはネットワーク121を用いてインストールされる。
The
文書ファイリングシステム103は全体として単一のアクセス権限が付与されていても良いし(例えば103A)、文書ファイリングシステム103の個々の文書あるいはディレクトリにアクセス権限が個別に付与されても良い。文書ファイリングシステム103Aとインデクス構築システム102Aは例えば同一のアクセス権限を有し、対応するセキュリティドメイン200をなす。他のファイリングシステム103は種々のアクセス権限の文書等を含み、それぞれ、アクセス権限に対応するインデクス構築システム102によりインデクスレコードを生成できるようになっている。
The
インデクス構築システム102は対応するアクセス権限で各文書ファイリングシステム103の文書をアクセスしていき、文書ファイリングシステム103はディレクトリサーバ104を用いて権限を認証し、アクセスの許否を決定する。インデクス構築システム102は、対応するアクセス権限の文書を参照してインデクスレコードを生成して、インデクス保持部101の対応するインデクス14を構築し、あるいは対応するインデクスにレコードを挿入する。また、必要に応じ、インデクスのレコードの削除等の処理を行う。
The
このようにして、インデクス保持部101にアクセス権限ごとにインデクス14が構築されその後管理される。
In this way, the
検索ユーザはクライアント端末120を用いてウェブサーバ105およびアプリケーションサーバ106(あるいはCGIプログラム等を用いて)を介して検索システム100に検索要求を行う。検索システム100は、ディレクトリサーバ104を用いて検索ユーザのアクセス権限を調べ、これに応じて対応するインデクス14を参照して検索ユーザに許容されるヒットレコードのみをリストとしてクライアント端末120に返す。検索ユーザは、リストから選択した文書を所定の文書ファイリングシステム103から取り出すことができる。
The search user uses the
なお、インデクス保持部101をインデクス構築システム102サイトに分散して配置し、検索システム100がこれを参照するようにしても良い。また、インデクス構築システム102サイトに検索システム100およびインデクス保持部101を分散配置してもよい。この場合、クライアント端末120の検索要求を代行して分散配置された複数の検索システム100にディスパッチする。
In addition, the
[実施例2]
つぎにこの発明の実施例2について説明する。この実施例は複数のインデクスを用いた場合でも、ランキングスコアの小さなヒットレコードが表示リストに含まれないようにするものである。
[Example 2]
Next, a second embodiment of the present invention will be described. In this embodiment, even when a plurality of indexes are used, hit records having a small ranking score are not included in the display list.
図4は、この実施例の検索装置を模式的に示しており、この図において、検索部10は、インデクス別ヒットレコード数生成部30、インデクス選択部31、ヒットレコード併合部32、ヒットレコード一時記憶部33、表示レコード出力部34等を含んで構成されている。
FIG. 4 schematically shows the search device of this embodiment. In this figure, the
検索ユーザ端末15は、検索部10に検索要求を送る。検索要求には検索キーと共に表示レコードの数を含ませることができる。インデクス別ヒットレコード数生成部30は、検索キーに対してインデクス14ごとにヒットレコード数を算出する。これについては後に説明する。インデクス選択部31は、指定された表示レコード数あるいはデフォルトの表示レコード数に基づいてインデクス記憶装置13から取り出すヒットレコード数を決定する。これを閾値と呼ぶ。閾値は、表示レコード数のN倍である(Nは十分に精度の良い結果を得られるように決められる)。インデクス選択部31は、最も少ないインデクス数で閾値のヒットレコードを得られるようにインデクスを選択する。種々の態様が可能であるが、例えば、ヒットレコード数が多い順にインデクスを選び、それで閾値に達したら、そのインデクスのみを選ぶ。ヒットレコード数が閾値に達しない場合には、つぎにヒットレコード数が多いインデクスを選び、そのヒットレコード数を、現在のヒットレコード数の総数に累積する。累積値が閾値に達するまで、同様の処理を繰り返し、用いる1または複数のインデクスを確定する。
The
用いるインデクスが複数の場合にはヒットレコードをヒットレコード併合部32で併合し、ヒットレコード一時記憶部33にストアする。用いるインデクスが一個の場合にはヒットレコードをそのままヒットレコード一時記憶部33にストアする。
When there are a plurality of indexes to be used, the hit records are merged by the hit
ヒットレコード一時記憶部33のヒットレコードはそこの含まれるランキングスコアに基づいてソートされ、ソート順に表示レコード出力部34に送られる。表示レコード出力部34の出力表示レコードリストは検索ユーザ端末15に返される。
The hit records in the hit record temporary storage unit 33 are sorted based on the ranking score included therein, and sent to the display
こうして、ヒットレコードの併合処理の回数を少なくすることができる。 Thus, the number of hit record merging processes can be reduced.
つぎに、インデクス別ヒットレコード数生成部30で行うヒットレコード数算出処理について説明する。もちろん、キーごとにヒットレコード数を予め求めて表を作成し、このような表を表引きしても良い。
Next, a hit record number calculation process performed by the index-specific hit record
インデクス記憶装置13のインデクス14は、例えば、図5に示すように、管理ノード、中間ノードおよびリーフノードにより記述されるB+ツリー構造である。管理ノードは、図6に示すように、複数のB+ツリーを管理する。各B+ツリーはスキーマによりキー、バリュー等のバイト数等が規定される。管理ノードにより、検索キーが対応するB+ツリーに振り分けられる。中間ノードは、図7に示すように、分岐を制御するキーと分岐する下位ノード(サブツリー)が規定される。また、この実施例に特有の構成として、各下位ノードについてそのサブツリーのリーフノードに属するレコードの数を件数管理情報として保持している。リーフノードは図8に示すようにキーとバリュー(例えば文書ID)との複数の対を含んでいる。リーフノードは、中間ノードにおいて分岐を制御するキーについても、そのキーとバリューとの対を含んでいる。また、つぎのリーフノードへのポインタも含まれ、いわゆる水平検索を行える。
The
検索に際しては、図9に示すように、管理ノードによりB+ツリーが決定され、そのルートノードから中間ノードを沿って垂直検索が行われ、リーフノードに当直した後、水平検索が行われる。 In the search, as shown in FIG. 9, a B + tree is determined by the management node, a vertical search is performed along the intermediate node from the root node, and a horizontal search is performed after making contact with the leaf node.
ここで、図10を用いて、中間ノードの件数管理情報について説明する。図10において、中間ノードは、第1段目の中間ノード(管理ノードのつぎのノード)を例にすると、キー「LEFT」、K(0)1、K(0)2、K(0)3、・・・により下位ノード(サブツリー)に分岐する。キー「LEFT」の直下にはレコードは格納されない。「K(0)」は第1段目のキーであることを示す。第n段目の中間ノードのキーは同様に「K(n−1)」で表す。「LEFT」からK(0)1までの範囲のキーが分岐する下位ノード(サブツリー)のリーフノードに格納されるレコードの数R(0)1を、下位ノード0の件数管理情報にストアする。K(0)1からK(0)2までの範囲のキーが分岐する下位ノード(サブツリー)のリーフノードに格納されるレコードの数r(0)1を求め、これにその前の下位ノードのレコードの数(この場合R0)を足して、R(0)1=R(0)1+r(0)1を得、下位ノード1の件数管理情報に格納する。キーK(0)NからキーK(0)N+1までの範囲のキーが分岐する下位ノードNのリーフノードに格納されるレコードr(0)Nを求め、これにその直前の下位ノードN−1の件数管理情報(R(0)N−1)を足して、下位ノードNの件数管理情報R(0)N=R(0)N−1+r(0)Nを得る。同様に最後の下位ノードまで、件数管理情報を取得して管理する。
Here, the number management information of the intermediate node will be described with reference to FIG. In FIG. 10, the intermediate node is a key “LEFT”, K (0) 1 , K (0) 2 , K (0) 3 , taking the first-stage intermediate node (the node next to the management node) as an example. Branches to a lower node (subtree) by. No record is stored immediately below the key “LEFT”. “K (0)” indicates a key in the first row. Similarly, the key of the n-th intermediate node is represented by “K (n−1)”. The number of records R (0) 1 stored in the leaf node of the lower node (subtree) where the key in the range from “LEFT” to K (0) 1 branches is stored in the number management information of the
開始キーおよび終了キーを用いて検索するときに、中間ノードの件数管理情報を用いてリーフノードに到達した時点の順位を求めることができる。すなわち、順次辿っていく中間ノードにおいて、つぎに辿る下位の中間ノードを決定する。このとき、その左側の中間ノードの件数管理情報を求める。つぎに辿る中間ノードでも同様にし、この操作をリーフノードに至るまで繰り返す。例えば、第1段から第N段のそれぞれのキーK(0)A、K(1)B、K(2)C、・・・、K(N−1)Dを辿っていくとすると、中間ノード0のキー(下位のノードまたはサブツリー。以下同様)K(0)A−1の件数管理情報R(0)A−1、中間ノード1のキーK(1)B−1の件数管理情報R(1)B−1、中間ノード2のキーK(2)C−1の件数管理情報R(2)C−1、・・・中間ノード(N−1)のキーK(N−1)D−1の件数管理情報R(N−1)D−1を累積してリーフノードに到達したときレコードの順位を得ることができる。
When searching using the start key and the end key, it is possible to obtain the rank at the time of reaching the leaf node using the number management information of the intermediate node. That is, in the intermediate nodes that are sequentially traced, the lower intermediate node to be traced next is determined. At this time, the number management information of the intermediate node on the left side is obtained. The same operation is repeated for the next intermediate node, and this operation is repeated until the leaf node is reached. For example, if the keys K (0) A , K (1) B , K (2) C ,..., K (N−1) D from the first stage to the Nth stage are traced, Key of node 0 (subordinate node or subtree; the same applies hereinafter) K (0) A-1 number management information R (0) A-1 ,
まず、開始キーを基づいて中間ノードを辿り、対応する件数管理情報を累積してリーフノードに到達したときのレコードの順位を求め、さらにリーフノードを水平検索する。開始キーを含むレコードに到達したときにそのレコードに至るまでの水平検索時のレコード数を求め、これをリーフノードに到達したときのレコードの順位に足して開始キーを含むレコード(開始キーを含むレコードがない場合には、検索範囲に含まれて開始キーに最も近いキーを含むレコード)の順位(Nstart)を求める。 First, the intermediate node is traced based on the start key, the corresponding number management information is accumulated, the order of the records when reaching the leaf node is obtained, and the leaf node is horizontally searched. When the record containing the start key is reached, the number of records in the horizontal search up to that record is obtained, and this is added to the order of the records when the leaf node is reached (including the start key) If there is no record, the rank (Nstart) of the record that is included in the search range and includes the key closest to the start key is obtained.
つぎに、終了キーに基づいて中間ノードを辿り、対応する件数管理情報を累積してリーフノードに到達したときのレコードの順位を求め、さらにリーフノードを水平検索する。終了キーを含むレコードに到達したときにそのレコードに至るまでの水平検索時のレコード数を求め、これをリーフノードに到達したときのレコードの順位に足して終了キーを含むレコード(開始キーを含むレコードがない場合には、検索範囲に含まれて開始キーに最も近いキーを含むレコード)の順位(Nend)を求める。 Next, the intermediate node is traced based on the end key, the corresponding number management information is accumulated, the rank of the record when the leaf node is reached is obtained, and the leaf node is horizontally searched. When the record that includes the end key is reached, the number of records at the time of horizontal search until that record is obtained, and this is added to the order of the records when the leaf node is reached, and the record that includes the end key (including the start key) If there is no record, the rank (Nend) of the record including the key closest to the start key included in the search range is obtained.
インデクス別ヒットレコード数生成部30は、NstartおよびNendに基づいて検索範囲に含まれるキーを持つレコードの総数を算出する。終了キーを含むレコードが有る場合には、そのレコードの総数はNend−Nstart+1であり、終了キーを含むレコードがない場合には、そのレコードの総数はNend−Nstartである。
The index-specific hit record
図11は、インデクス別ヒットレコード数生成部30における各インデクスごとのヒットレコード数算出処理を示している。図11においては、語および文書IDを用いて範囲検索における検索範囲のレコード(文書)の総数を算出する。総数の算出の処理は以下のとおりである。なお、検索者が語を入力すると、文書IDの範囲が自動的に0x3000(16進数表示)から0x3fffとされる。
FIG. 11 shows the hit record number calculation processing for each index in the hit record
[ステップS10]:検索範囲を受け取る。
[ステップS11]:B+ツリーを決定する。
[ステップS12]:開始キーを検索キーとする。
[ステップS13]:検索キーが該当するキーを、選択する
[ステップS14]:順位算出ルーチンを実施する。図9参照。
[ステップS15]:順位算出ルーチンで取得した順位をNstartとする。
[ステップS16]:終了キーを検索キーとする。
[ステップS17]:順位算出ルーチンを実施する。
[ステップS18]:順位算出ルーチンで取得した順位をNendとする。
[ステップS19]:終了キーに該当するレコードがあるか。あればステップS20ヘ進み、なければステップS21へ進む。
[ステップS20]:検索範囲の件数をNend−Nstart+1で算出する。
[ステップS21]:検索範囲の件数をNend−Nstartで算出する。
[Step S10]: A search range is received.
[Step S11]: A B + tree is determined.
[Step S12]: The start key is used as a search key.
[Step S13]: Select a key corresponding to the search key [Step S14]: Implement a rank calculation routine. See FIG.
[Step S15]: The rank obtained by the rank calculation routine is set as Nstart.
[Step S16]: The end key is used as a search key.
[Step S17]: A rank calculation routine is executed.
[Step S18]: The rank obtained by the rank calculation routine is defined as Nend.
[Step S19]: Is there a record corresponding to the end key? If there is, the process proceeds to step S20, and if not, the process proceeds to step S21.
[Step S20]: The number of cases in the search range is calculated by Nend−
[Step S21]: The number of cases in the search range is calculated by Nend-Nstart.
順位算出ルーチンはつぎのとおりである。 The rank calculation routine is as follows.
[ステップS40]:順位を0にリセットする。
[ステップS41]:中間ノードにおいて検索キーが該当するキーの左のキーの件数管理情報を順位に累積する。
[ステップS42]:検索キーが該当するキーの下位のノードに進む。
[ステップS43]:ノードが中間ノードかリーフノードかを判別する。中間ノードであれば、ステップS41に戻る。リーフノードであればステップS44に進む。
[ステップS44]:リーフノードに到達したときのレコードから検索キーに対応するキーのレコードまで水平検索で辿る。
[ステップS45]:水平検索で辿ったレコードの数を上述の順位に累積する。
[Step S40]: The order is reset to zero.
[Step S41]: The number management information of the key to the left of the key corresponding to the search key in the intermediate node is accumulated in order.
[Step S42]: The search key proceeds to a node below the corresponding key.
[Step S43]: It is determined whether the node is an intermediate node or a leaf node. If it is an intermediate node, the process returns to step S41. If it is a leaf node, the process proceeds to step S44.
[Step S44]: The horizontal search is performed from the record when the leaf node is reached to the record of the key corresponding to the search key.
[Step S45]: The number of records traced in the horizontal search is accumulated in the above-described order.
以上で実施例2の説明を終了する。 This is the end of the description of the second embodiment.
[実施例3]
つぎにこの発明の実施例3について説明する。この実施例は、インデクスを用いた検索処理を行う検索装置本体と検索装置本体の検索結果を連結等する検索管理装置とをネットワークを介して接続して検索システムを構築するものである。
[Example 3]
Next,
図13は、実施例3の検索システムを全体として示しており、図13において図3と対応する箇所には対応する符号を付した。図13において、検索システム100は、検索管理サーバ300と複数の検索サーバ301とを有して構成されている。検索サーバ301はそれぞれ対応するインデクス保持部302を有し、例えばこのインデクス保持部302に格納されているB+ツリーの情報(実施例1、2と同様)を用いて検索を行う。検索管理サーバ300は、クライアント120からの検索要求を受取り、アクセス制御等を行うとともに、検索要求に対して許容された検索サーバ301に検索要求をディスパッチする。検索管理サーバ300は、検索要求をディスパッチした検索サーバ301から検索結果を受取り、出力上限値(例えばユーザが指定したもの。あるいはシステム上のデフォルト値)だけヒットレコードを取り出して検索結果としてクライアント端末120に返す。
FIG. 13 shows the entire search system according to the third embodiment. In FIG. 13, portions corresponding to those in FIG. In FIG. 13, the
図14は、実施例3の検索システム100における処理を示しており、その詳細は以下のとおりである。なお、これらの処理は検索管理サーバ300および検索サーバ301で実行されるものであり、例えば記録媒体303、304に記憶されたプログラムを検索管理サーバ300や検索サーバ301にインストールして実現できる。
FIG. 14 shows processing in the
[ステップS50]:各検索サーバ301でインデクス保持部302のインデクスを用いて検索を行う。なお、各検索サーバ301は、出力制限値(ユーザに出力するレコードの数の上限)の例えば10倍のレコード数を上限としてレコードを取り出す(上限値を超えたら検索を終了する)。このレコードは例えば図15に示すようなキーとバリューとを含むものであり、キーは語キー(キーワード等の文書の属性)および文書IDからなる。バリューは各レコードの検索スコアを算出するためのオカレンスデータであり、例えば、更新時刻、出現頻度、出現分布のデータからなる。オカレンスデータからスコアを計算し、このスコアに基づいてヒットレコードをソートする。
[Step S50]: Each
[ステップS51]:検索管理サーバ300は、検索サーバ301からソート済みのヒットレコードを受け取る。受け取るレコードはスコアを直接に含み、オカレンスデータは基本的には不要である。
[ステップS52]:ソート済みのヒットレコード数が多い順に、検索サーバ301からのヒットレコードを連結する。
[ステップS53]:連結したヒットレコードの総数が累積上限値、例えば、出力上限値の10倍に達したかどうかを判別する。累積上限値に達しない場合にはステップS52に戻り処理を繰り返す。達した場合にはステップS54へ進む。
[ステップS54]:連結したヒットレコードをスコアで再度ソートする。
「ステップD55]:出力上限値だけ上位からヒットレコードを出力する。
[Step S51]: The search management server 300 receives the sorted hit records from the
[Step S52]: Concatenate the hit records from the
[Step S53]: It is determined whether or not the total number of linked hit records has reached a cumulative upper limit, for example, 10 times the output upper limit. If the cumulative upper limit value is not reached, the process returns to step S52 and is repeated. If reached, the process proceeds to step S54.
[Step S54]: Sort linked hit records again by score.
[Step D55]: Hit records are output from the top by the output upper limit value.
各レコードのスコアは例えばつぎのように算出される。
[数1]
{A1×(出現密度)+A2×(更新日−基準日)}×(出現分布情報で決定される値。例えば1〜2の値)
A1、A2は係数である。
The score of each record is calculated as follows, for example.
[Equation 1]
{A1 × (appearance density) + A2 × (update date−reference date)} × (value determined by appearance distribution information. For example, a value of 1 to 2)
A1 and A2 are coefficients.
出現密度は、キーワードが文書中に含まれる割合であり、例えば、定数×出現数/文書サイズで求められる。出現密度が大きいほどスコアが大きくなる。 The appearance density is a ratio in which a keyword is included in a document, and is obtained by, for example, constant × number of appearances / document size. The higher the appearance density, the higher the score.
更新日は文書を更新した日付であり、原則として基準時は検索を行っている日付に「2048」(約4年)を足したものである。「日付」は例えば0〜32767の整数値であり、およそ、1970年1月1日から2038年1月19日をカバーする。1日は1.3に相当する。通常、更新日は数カ月から数年程度前の日付である。更新日をそのまま用いると、約30年分使用しない期間ができてしまうので、ダイナミックレンジが小さくなってしまう。そのため検索実行日から4年前(約2048)を基準日としている(更新日−基準日=更新日−検索実行日+2048)。更新日が新しいほどスコアは大きくなる。 The update date is the date when the document was updated. As a general rule, the reference date is obtained by adding “2048” (about 4 years) to the search date. “Date” is an integer value of 0 to 32767, for example, and covers approximately from January 1, 1970 to January 19, 2038. One day corresponds to 1.3. Usually, the renewal date is several months to several years ago. If the renewal date is used as it is, a period in which it is not used for about 30 years will be created, so the dynamic range will be reduced. Therefore, the reference date is four years before the search execution date (about 2048) (update date−reference date = update date−search execution date + 2048). The newer the update date, the higher the score.
出現分布情報は、文書中の文の列に語キーがどのように分布するかを示すものであり、文の列を32ビットであらわし、当該文の位置に語キーが出現すれば「1」を立てる。文の数だけビットを設ければより性格であるが、この例では、語キーが出現する文の番号の32の剰余が示すビット位置に「1」を立てている。複数の語キーを用いたときに32ビットの出現分布情報のANDをとり、同一文中に当該複数の語キーが共起するかどうかを表す。AND結果の32ビットの各値を評価すればより正確であるが、8ビットずつに4つのフラグメントに分け、1つのフラグメント中に「1」があれば25%ずつ増分する。4つのフラグメントのすべてに「1」があれば2倍となり、すべてのフラグメントに「1」がなければ1倍のままである。 Appearance distribution information indicates how word keys are distributed in a sentence column in a document. If a word key appears at the position of the sentence, the sentence column is represented by 32 bits. Stand up. In this example, “1” is set at the bit position indicated by the remainder of the number of the sentence in which the word key appears. When a plurality of word keys are used, AND of 32-bit appearance distribution information is performed to indicate whether or not the plurality of word keys co-occur in the same sentence. It is more accurate if each value of 32 bits of the AND result is evaluated, but it is divided into 4 fragments every 8 bits, and if there is “1” in one fragment, it is incremented by 25%. If all of the four fragments have “1”, it is doubled, and if all of the fragments do not have “1”, it remains at 1.
また、スコアが同一の値にならないように、スコアに文書サイズの下位数ビットを連結する。 Further, the lower-order bits of the document size are concatenated with the score so that the scores do not have the same value.
図16は、スコア計算の一例を示している。この例では、「コピー」と「富士ゼロックス株式会社」(「富士ゼロックス」は商標である)のOR検索を行って、文書A、B、Cがヒットした例である。検索日は「2002年8月1日」である。 FIG. 16 shows an example of score calculation. In this example, an OR search of “copy” and “Fuji Xerox Co., Ltd.” (“Fuji Xerox” is a trademark) is performed, and documents A, B, and C are hit. The search date is “August 1, 2002”.
文書Aのスコアはつぎのとおりである。すなわち、実際の出現密度の和が「0x09+0x13=0x1C」(0xは16進を表す)であり、文書サイズと合わせて「0x1CB8」である。更新日の寄与を合わせて、「0x3CB8」となり、出現分布で1.75倍になり、「0x6A47=27207」がスコアとなる。 The score of document A is as follows. That is, the sum of the actual appearance densities is “0x09 + 0x13 = 0x1C” (0x represents hexadecimal) and is “0x1CB8” together with the document size. The total contribution of the update date is “0x3CB8”, the appearance distribution is 1.75 times, and “0x6A47 = 27207” is the score.
文書Bのスコアはつぎのとおりである。出現密度と文書サイズから同様に「0x1F40」となる。「富士ゼロックス株式会社」からのオカレンスからは得られないので、デフォルト値の「0x1800」が用いられ、合わせて「0x3740」となり、出現分布により2倍され、「0x6E80=28288」がスコアとなる。 The score of document B is as follows. Similarly, “0x1F40” is obtained from the appearance density and the document size. Since it is not obtained from the occurrence from “Fuji Xerox Co., Ltd.”, the default value “0x1800” is used, and “0x3740” is added together, doubled by the appearance distribution, and “0x6E80 = 28288” is the score.
文書Cのスコアはつぎのとおりである。実際の出現密度の和が「0x1D+0x00=0x1D」であり、文書サイズと合わせて「0x1D80」である。更新日の寄与を合わせて「0x17E3」となる。出現分布により2倍され、「0x2FC6=12230」がスコアとなる。 The score of document C is as follows. The sum of the actual appearance densities is “0x1D + 0x00 = 0x1D”, which is “0x1D80” together with the document size. The contribution of the update date is “0x17E3” together. The score is doubled by the appearance distribution, and “0x2FC6 = 1230” is the score.
以上の結果、文書B、A、Cの順にソートされる。 As a result, the documents B, A, and C are sorted in this order.
以上で実施例3の説明を終了する。この実施例によれば、スコア計算やソートを分散させて実行するため、応答性を高くでき、スケーラビリティもある。また、所定の上限値を超えるヒットレコードは検索管理サーバへ送らないので、通信コストが減少する。 This is the end of the description of the third embodiment. According to this embodiment, since score calculation and sorting are executed in a distributed manner, the responsiveness can be increased and the scalability is also achieved. Further, since the hit record exceeding the predetermined upper limit value is not sent to the search management server, the communication cost is reduced.
なお、図13では、検索管理サーバと検索サーバとを別々に構成し、ネットワーク(LANやWAN)で接続したが、図3に示すように、検索管理サーバの機能と検索サーバの機能を一体化した場合にも、インデクスごとにスコアでソートを行い、これを連結し、その後、再度スコアでソートして検索結果とすることもできることはもちろんである。 In FIG. 13, the search management server and the search server are configured separately and connected via a network (LAN or WAN). However, as shown in FIG. 3, the functions of the search management server and search server are integrated. Even in this case, it is possible to sort by score for each index, concatenate them, and then sort again by score to obtain a search result.
なお、この発明は上述の実施例に限定されるものではなくその趣旨を逸脱しない範囲で種々変更が可能である。例えば、実施例2の検索装置を図4に示すイントラネット環境に適用できることはもちろんであり、その際記録媒体等を用いて同様のシステムをコンピュータシステムにインストールして構築することもできる。 The present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the spirit of the invention. For example, the search apparatus according to the second embodiment can be applied to the intranet environment shown in FIG. 4 and can be constructed by installing a similar system in a computer system using a recording medium or the like.
10 検索部
11 アクセス制御部
12 ユーザ権限記憶部
13 インデクス記憶装置
14 インデクス
15 検索ユーザ端末
20 プロセス起動部
21 インデクスレコード管理部
22 インデクスレコード管理プロセス
23 アクセス制御部
24 プロセス権限記憶部
30 インデクス別ヒットレコード数生成部
31 インデクス選択部
32 ヒットレコード併合部
33 ヒットレコード一時記憶部
34 表示レコード出力部
100 検索システム
101 インデクス保持部
102 インデクス構築システム
103 文書ファイリングシステム
104 ディレクトリサーバ
105 ウェブサーバ
106 アプリケーションサーバ
107 ルータ
108 LAN
109、110 記憶媒体
120 クライアント端末
121 ネットワーク
200 セキュリティドメイン
300 検索管理サーバ
301 検索サーバ
302 インデクス保持部
DESCRIPTION OF
109, 110 Storage medium 120
Claims (4)
各々異なる上記検索インデクスに対応し該対応する検索インデクスを検索して予め定められたレコード数を上限として検索スコアを含むヒットレコードを該検索スコアでソートして検索結果として出力する複数の検索手段と、
上記複数の検索手段により出力された上記複数の検索結果を、該検索結果が含むヒットレコード数の多い順に、合計のヒットレコード数が予め定められた累積上限値に達するまで、連結する連結手段と、
上記連結手段により連結された検索結果に含まれるヒットレコードを上記検索スコアでソートするソート手段と、
上記ソート手段によりソートされたヒットレコードを上位から予め定められた出力上限値だけ出力する出力手段と、
を備える検索システム。 Index storage means for storing a plurality of different search indexes,
A plurality of search means for searching for the corresponding search index corresponding to each different search index, sorting hit records including the search score up to a predetermined number of records, and sorting the search scores according to the search score and outputting the results as search results; ,
Connecting means for connecting the plurality of search results output by the plurality of search means in the descending order of the number of hit records included in the search results until the total number of hit records reaches a predetermined cumulative upper limit; ,
Sort means for sorting the hit records included in the search results connected by the connecting means by the search score;
Output means for outputting hit records sorted by the sorting means from the upper limit only by a predetermined output upper limit value;
A search system comprising:
上記検索装置の各々は、
検索インデクスを記憶するインデクス記憶部と、
上記検索インデクスに対応し該対応する検索インデクスを検索する検索手段と、
を備え、上記インデクス記憶部に記憶される検索インデクスは検索装置毎に異なっており、
上記検索管理装置は、
検索要求を受け取る受取手段と、
上記受取手段により受け取られた検索要求を上記複数の検索装置に転送し、各検索装置に該検索要求に対応するヒットレコードを予め定められたレコード数を上限として上記ヒットレコードに含まれる検索スコアでソートして検索結果として出力させる転送手段と、
上記複数の検索装置により出力された上記複数の検索結果を該検索結果が含んでいるヒットレコード数の多い順に合計のヒットレコード数が予め定められた累積上限値に達するまで連結する連結手段と、
上記連結手段により連結された検索結果に含まれるヒットレコードを上記検索スコアでソートするソート手段と、
上記ソート手段によりソートされたヒットレコードを上位から出力上限値だけ出力する出力手段と、
を備える検索システム。 A plurality of search devices, and a search management device that communicates with the plurality of search devices,
Each of the above search devices
An index storage unit for storing a search index;
Search means corresponding to the search index and searching for the corresponding search index;
The search index stored in the index storage unit is different for each search device,
The search management device is
A receiving means for receiving the search request;
The search request received by the receiving means is transferred to the plurality of search devices, and each search device has a hit record corresponding to the search request as a search score included in the hit record up to a predetermined number of records. Transfer means for sorting and outputting as search results;
Connecting means for connecting the plurality of search results output by the plurality of search devices until the total number of hit records reaches a predetermined cumulative upper limit in descending order of the number of hit records included in the search results;
Sort means for sorting the hit records included in the search results connected by the connecting means by the search score;
Output means for outputting hit records sorted by the sorting means from the top only by the output upper limit value;
A search system comprising:
検索インデクスを記憶するインデクス部と該検索インデクスに対応し該検索インデクスを検索する検索手段とを備え上記インデクス記憶部に記憶される検索インデクスが各々異なっている複数の検索装置に上記検索要求を転送し、各検索装置に該検索要求に対応するヒットレコードを予め定められたレコード数を上限として上記ヒットレコードに含まれる検索スコアでソートして出力させる転送手段と、
上記複数の検索装置により出力された複数の検索結果を該検索結果が含んでいるヒットレコード数が多い順に合計のヒットレコード数が予め定められた累積上限値に達するまで連結する連結手段と、
上記連結手段により連結されたヒットレコードを上記検索スコアでソートするソート手段と、
上記ソート手段によりソートされたヒットレコードを出力上限値だけ上位から出力する出力手段と、
を備える検索管理装置。 A receiving means for receiving the search request;
The search request is forwarded to a plurality of search devices each having a different search index stored in the index storage unit, comprising an index unit for storing the search index and search means for searching the search index corresponding to the search index. Transfer means for causing each search device to sort and output hit records corresponding to the search request according to a search score included in the hit records up to a predetermined number of records;
Connecting means for connecting the plurality of search results output by the plurality of search devices until the total number of hit records reaches a predetermined cumulative upper limit value in descending order of the number of hit records included in the search results;
Sorting means for sorting hit records linked by the linking means by the search score;
Output means for outputting the hit records sorted by the sorting means from the top by the output upper limit value;
A search management apparatus comprising:
検索要求を受け取る受取手段と、
検索インデクスを記憶するインデクス部と該検索インデクスに対応し該検索インデクスを検索する検索手段とを備え上記インデクス記憶部に記憶される検索インデクスが各々異なっている複数の検索装置に上記検索要求を転送し、各検索装置に該検索要求に対応するヒットレコードを予め定められたレコード数を上限として上記ヒットレコードに含まれる検索スコアでソートして出力させる転送手段と、
上記複数の検索装置により出力された複数の検索結果を該検索結果が含んでいるヒットレコード数が多い順に合計のヒットレコード数が予め定められた累積上限値に達するまで連結する連結手段と、
上記連結手段により連結されたヒットレコードを上記検索スコアでソートするソート手段と、
上記ソート手段によりソートされたヒットレコードを出力上限値だけ上位から出力する出力手段
として機能させるコンピュータプログラム。 Computer
A receiving means for receiving the search request;
The search request is forwarded to a plurality of search devices each having a different search index stored in the index storage unit, comprising an index unit for storing the search index and search means for searching the search index corresponding to the search index. Transfer means for causing each search device to sort and output hit records corresponding to the search request by a search score included in the hit records up to a predetermined number of records;
A connecting means for connecting the plurality of search results output by the plurality of search devices until the total hit record number reaches a predetermined cumulative upper limit value in descending order of the number of hit records included in the search result;
Sorting means for sorting hit records linked by the linking means by the search score;
A computer program that functions as output means for outputting hit records sorted by the sorting means from the upper level by an output upper limit value.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009103452A JP2009163772A (en) | 2002-09-17 | 2009-04-21 | Retrieval system and computer program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002269346 | 2002-09-17 | ||
JP2009103452A JP2009163772A (en) | 2002-09-17 | 2009-04-21 | Retrieval system and computer program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003075724A Division JP2004164555A (en) | 2002-09-17 | 2003-03-19 | Apparatus and method for retrieval, and apparatus and method for index building |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009163772A true JP2009163772A (en) | 2009-07-23 |
Family
ID=40966242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009103452A Pending JP2009163772A (en) | 2002-09-17 | 2009-04-21 | Retrieval system and computer program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009163772A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012238050A (en) * | 2011-05-10 | 2012-12-06 | Hitachi Solutions Ltd | Integrated retrieval device, integrated retrieval system, and integrated retrieval method |
JP2013161438A (en) * | 2012-02-08 | 2013-08-19 | Canon Inc | Document management system, computer program, and document management method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172711A (en) * | 1998-12-10 | 2000-06-23 | Fujitsu Ltd | Document retrieval mediating device, document retrieval system and storage medium recording document retrieval mediating program |
-
2009
- 2009-04-21 JP JP2009103452A patent/JP2009163772A/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172711A (en) * | 1998-12-10 | 2000-06-23 | Fujitsu Ltd | Document retrieval mediating device, document retrieval system and storage medium recording document retrieval mediating program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012238050A (en) * | 2011-05-10 | 2012-12-06 | Hitachi Solutions Ltd | Integrated retrieval device, integrated retrieval system, and integrated retrieval method |
JP2013161438A (en) * | 2012-02-08 | 2013-08-19 | Canon Inc | Document management system, computer program, and document management method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6985948B2 (en) | User's right information and keywords input based search query generating means method and apparatus for searching a file | |
US7409401B2 (en) | Method and system for supporting multivalue attributes in a database system | |
JP2004164555A (en) | Apparatus and method for retrieval, and apparatus and method for index building | |
US11386081B2 (en) | System and method for facilitating efficient indexing in a database system | |
US10108614B2 (en) | Document handling in a web application | |
US20050050014A1 (en) | Method, device and software for querying and presenting search results | |
CA2622625A1 (en) | Networked information indexing and search apparatus and method | |
JPH10143532A (en) | Information filtering device/method | |
JPH11212980A (en) | Production of index and retrieval method | |
KR20060049239A (en) | System and method for scoping searches using index keys | |
US7716211B2 (en) | System and method for facilitating full text searching utilizing inverted keyword indices | |
KR101892067B1 (en) | Method for storing and searching of text logdata based relational database | |
JP5994490B2 (en) | Data search program, database device, and information processing system | |
JP2009163772A (en) | Retrieval system and computer program | |
JP3908634B2 (en) | Search support method and search support device | |
Xiao-Gang et al. | Web mining based on user access patterns for web personalization | |
JP3859044B2 (en) | Index creation method and search method | |
JP3838857B2 (en) | Dictionary device | |
US5715442A (en) | Data unit group handling apparatus | |
JPH09245046A (en) | Information retrieval device | |
JP2004110216A (en) | Searching device and method | |
Škrbić et al. | Bibliographic records editor in XML native environment | |
JP2009294768A (en) | Information sharing device and information sharing program | |
JP4111508B2 (en) | Data attribute management method | |
Fan et al. | Mining collective pair data from the web |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090507 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110914 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120313 |