WO2010041516A1 - 情報処理装置、文書検索システム、文書検索方法およびプログラム - Google Patents
情報処理装置、文書検索システム、文書検索方法およびプログラム Download PDFInfo
- Publication number
- WO2010041516A1 WO2010041516A1 PCT/JP2009/064360 JP2009064360W WO2010041516A1 WO 2010041516 A1 WO2010041516 A1 WO 2010041516A1 JP 2009064360 W JP2009064360 W JP 2009064360W WO 2010041516 A1 WO2010041516 A1 WO 2010041516A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- search
- level
- document
- index
- cache
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/93—Document management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2117—User registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
Definitions
- the present invention relates to document search, and more particularly to an information processing apparatus, a document search system, a document search method, and a program that improve search efficiency while ensuring security when a full-text index is used.
- full-text index search is possible in which the entire word of a document is searched as an index.
- document search there is a system that allows all users to search all documents in an open environment, and the access authority of the user who has accessed the document search system is used as user information.
- security search systems that ensure the security of documents stored in a database or the like by restricting the documents that can be accessed.
- a document search system having a function that inherits document security retains access right information for a document in the full-text index of the search target document, and searches the document as an access index. Perform access authority determination.
- secure search retains access right information for a document in the full-text index of the search target document, and searches the document as an access index. Perform access authority determination.
- user information user names and group names acquired when searching for users, or their hierarchical inclusion relations (hereinafter collectively referred to as user information) are the access rights that can be viewed.
- a secure search is realized by extracting only matching documents as search results.
- Such a document search system creates a search expression including user information at the time of executing a search, and enables secure search without greatly changing the base of full-text search.
- the search formula including the user information is an OR search formula that lists all group names to which the user belongs in addition to the access authority of the accessing user.
- the above-mentioned problem is caused by occurrence of a cache hit only when the same user inputs the same search expression a plurality of times in the conventional document search system. Such a search does not occur much unless there is some inconvenience in the user or document search system, and the cache hit rate is significantly reduced compared to the case of non-secure search.
- Patent Document 1 discloses a process for realizing secure search at high speed.
- secure search is enabled by setting an attribute value of access authority in a database in advance.
- Patent Document 1 before the search process, it is necessary to perform a process of labeling the combination of access right information in advance with respect to the index.
- the search efficiency is non-linear because the processing of generating the union of the number of documents and the overhead of the search processing increases nonlinearly as the number of documents increases and the number of documents stored in groups increases. Inefficient. As a result, it is not practical in terms of search efficiency to be applied as it is to a system for full text index search in secure search.
- Patent Document 2 discloses a search device and method and an index construction device thereof.
- Patent Document 2 is an invention related to a technique for realizing secure search.
- a security domain is defined, and a plurality of indexes for setting an access right for the security domain are registered. , Ensure security for each domain.
- the index for each security domain is generated by an administrator set for each domain executing a collection program that collects documents in the security domain, collecting accessible documents in the security domain, and indexing. It is done by creating and editing.
- the secure search can be performed by the processing of Patent Document 2
- the burden of index management by the administrator increases.
- the collection of documents by the collection program eventually involves the execution of a document retrieval process of retrieving and extracting documents.
- the document retrieval program is divided into a collection program for administrators and a document for general users. This causes a waste of software modules that must be implemented in the context of a search program.
- Patent Document 2 assigns a hierarchical structure to a document and reduces the number of documents to be searched by branching the access right check in units of indexes, thereby enabling a search efficiency or response in secure search. It improves the performance. It is also possible to reduce the search target space by using a process of assigning a hierarchical structure to the document and branching. However, even when a hierarchical structure is assigned to a document, if it is necessary to reach a document at the lowest level of a branch, an OR search including an exhaustive user access right must be executed after all. As a result, the search speed and response vary greatly depending on the search expression, and the scalability of the search process is reduced.
- a document may not be able to be assigned a unique hierarchical structure corresponding to its security level, and if the security level is changed, the tree structure must be reconstructed. is there.
- it can be assumed that even a document that is originally searchable will be excluded from the search target, and is not necessarily applicable to general-purpose document search. .
- a user accesses with a private access authority, it must be accessed without depending on the hierarchical structure, so a plurality of index structures must be prepared, and a full-text search is assumed. In secure search, it can be said that the feasibility is low as in Patent Document 1.
- an object of the present invention is to provide an information processing apparatus, a document search system, a document search method, and a program capable of improving the search efficiency of secure search processing using a full-text index.
- the present invention solves the above-described problems of the prior art by improving the cache hit probability without correcting the full-text index structure for secure search, and further reducing the number of set operations of the document search expression. Improve search efficiency.
- Securing of security for each user is performed by introducing a hierarchical structure for the user, not for the document, and the identification processing of the user's hierarchical structure is performed by using information at the time of user login
- the search server acquires it as user information at the time of execution.
- the search server generates a combined search expression by combining the search expression input by the user and the inclusion relation expression generated from the access authority of the user.
- the document search system generates a search expression for executing a user's private level search and a search expression for executing a shared level search from the combined search expression, and executes the search independently.
- Each search result is stored in the cache memory in association with a cache index that can identify a private level search result and a shared level search result.
- a cache index that indexes private level search results is generated by a hash calculation using a search expression that provides private level search results, and a cache that indexes shared level search results.
- the index is generated by hash calculation using a search expression that gives a shared level search result.
- the search result at the private level is registered as a cache item together with the cache index indicating the private level, and in the case of a search request at the private level, the cache index search is executed. In the case of a cache hit, the cache content is taken as the search result.
- a full-text index search using a full-text index is executed at both the shared level and the private level, and a new search result is generated.
- the generated new search result is registered in association with the cache index generated by the hash calculation for the search expression used to generate the new search result, and thereafter the search belonging to the same search expression
- the cache contents can be returned without executing a full-text index search in response to a cache hit.
- the cache contents are registered as a list of documents accessible by the user in the group hierarchy searched in the past.
- a search result set can be generated simply by executing a cache hit or index search result at the user's private level and at most one OR operation. It is possible to significantly reduce the processor capacity consumed for the set operation.
- the cache hit probability is improved only by increasing the number of users included in the group. Further, even when the user moves to the group or the group hierarchy increases, the set operation for the group hierarchy is performed. It is possible to minimize the probability that the accompanying full-text index search will be executed, improve the secure search efficiency, and enable a secure search that can flexibly cope with the increase in the group hierarchy and the accompanying increase in documents. It becomes.
- FIG. 1 is a schematic diagram of a document search system 100 of the present invention.
- generated in the cache memory 222 in this embodiment. 6 is a flowchart of document search processing executed by the search server 110 according to the present embodiment.
- FIG. 9 is a diagram illustrating OR processing reduction and cache item usability improvement by secure document search according to the present embodiment, using a combined search expression 900 for the process of FIG. 8 including a search result at a private level.
- FIG. 1 is a schematic diagram of a document search system 100 of the present invention.
- the document search system 100 includes a network 108 such as the Internet and a LAN, and a reciprocal terminal device (hereinafter simply referred to as a terminal device 102) connected to the network 108 and operated by a user to access the search server 110 via the network 108. It is configured to include 102, 104, and 106.
- the search server 110 executes a secure search for a document stored in a document database (not shown) managed by the search server 110 according to the present embodiment.
- the document means all electronic electronic data, and may include text, an image, audio, or multimedia contents in which these data are combined in combination.
- a user management server 120 Connected to the network 108 is a user management server 120 that manages access rights of users who access the search server 110.
- the user management server 120 receives an inquiry from the search server 110, and uses a user identification value (hereinafter referred to as a user ID) acquired at the time of logon. Search access rights for.
- the user management server 120 manages a user management database (not shown), and manages the access authority for each user using a relational database or the like.
- the user management server 120 When the user access authority is found, the user management server 120 returns a search result as user information to the search server 110, and enables the search server 110 to create an inclusion relational expression using the user access authority.
- the search server 110 manages a document database (not shown), and generates a full-text index as a transposed index for a document managed by the search server 110 in order to execute a full-text index search of documents registered in the document database. And indexing documents.
- the search server 110 and the user management server 120 shown in FIG. 1 are shown separately to explain the server functions provided by the document search system 100.
- IBM Corporation It can also be configured as a server integrated as a rack mount type server unit such as BladeCenter (BladeCenter is a registered trademark of International Business Machines Corporation).
- the search server 110 and the user management server 120 described above are implemented as information processing apparatuses and are compatible with PENTIUM (registered trademark) such as PENTIUM (registered trademark), XEON (registered trademark), CELERON (registered trademark), and ATHRON (registered trademark).
- PENTIUM registered trademark
- XEON registered trademark
- CELERON registered trademark
- ATHRON registered trademark
- a CISC architecture processor such as a chip, or a RISC architecture processor such as POWER PC (registered trademark) can be mounted, and may be single-core or multi-core.
- the search server 110 and the user management server 120 are controlled by an operating system (hereinafter simply referred to as OS) such as WINDOWS (registered trademark) 200X, UNIX (registered trademark), LINUX (registered trademark). .
- OS operating system
- the search server 110 and the user management server 120 are implemented using programming languages such as C, C ++, JAVA (registered trademark), JAVA (registered trademark) BEANS, PERL, RUBY, and PYTHON under the management of the OS described above.
- Server programs such as CGI, Servlet, and APACHE are executed to provide various services.
- the search server 110 may generate a transaction related to user information using DAP (Directory Access Protocol) or LDAP (Lightweight Directory Access Protocol) for authentication and access authority search of a user who has accessed the search server 110. it can.
- DAP Directory Access Protocol
- LDAP Lightweight Directory Access Protocol
- file transfer protocols such as HTTP and FTP can be used, and distributed computing environments such as RMI (Remote Method Invocation) and RPC (Remote Procedure Call) can also be used.
- RMI Remote Method Invocation
- RPC Remote Procedure Call
- the terminal device 102 is implemented as a personal computer or workstation, the terminal device 104 is configured as a PDA (Personal Data Assistant), and the terminal device 106 is implemented as an information processing device such as a mobile phone.
- the terminal device 102 may be implemented as a processor (MPU) including any known single-core processor or dual-core processor.
- the terminal devices 102, 104, and 106 are known so far, such as WINDOWS (registered trademark), WINDOWES (registered trademark) CE, UNIX (registered trademark), LINUX (registered trademark), MAC OS, or mobile phone OS. It may be controlled by any OS.
- the terminal devices 102, 104, and 106 are connected to the search server 110 via a network that uses a transaction that uses a file transfer protocol such as the HTTP protocol based on a transaction protocol such as TCP / IP.
- the terminal device 102 is implemented with browser software such as Internet Explorer (trademark), Mozilla, Opera, Netscape Navigator (trademark), etc., accesses the search server 110, and after logon authentication, Perform a secure search.
- the transaction between the search server 110 and the terminal devices 102, 104, and 106 is not limited to the HTTP protocol under a communication infrastructure using wired or wireless communication.
- RMI Remote Method Invocation
- RPC A remote call protocol such as (Remote Procedure Call) is used, and it is implemented as a terminal device-server system referred to as a so-called distributed computing system (DCE), which is implemented under CORBA (Common Object Object Resource Broker Architecture), etc.
- DCE distributed computing system
- CORBA Common Object Object Resource Broker Architecture
- FIG. 2 is a diagram showing a functional block 200 of the search server 110 of this embodiment.
- Each functional block shown in FIG. 2 is realized as a functional unit on the search server 110 by a processor reading a program into an execution space such as a RAM and causing the processor to execute the program.
- the search server 110 includes a network adapter 202, a database management unit 204, and a document search unit 206.
- the network adapter 202 receives a document search request or document registration request from the terminal device 102 via the network 108, passes each received request to a function unit that executes a corresponding process, and also selects an appropriate one from the search result set.
- a search result file in a format is created and sent to the clients 102, 104, and 106.
- the search server 110 calls the database management unit 204 to cause the document database 220 to register a document and a full-text index.
- the full-text index of the present embodiment is not limited to a specific format, but in the present embodiment, transposed index indexing is adopted from the viewpoint of the efficiency of full-text searchability.
- the database management unit 204 stores the received document in the document storage unit 220a of the document database 220, and registers the generated transposed index in the index list storage unit 220b of the document database 220 in association with the document.
- the document is given a unique document identification value, and the search term of the inverted index is registered in association with the document identification value.
- the database management unit 204 registers the access authority in the full-text index using the access authority set for the document.
- the access authority in the full text index is referred to in order to determine the access authority of the user during the execution of the secure search.
- the user access authority is collectively managed by the user management server 120 in this embodiment.
- the search server 110 calls the user information acquisition unit 208 to access the user management server 120 with reference to information such as a user ID and a password input by the user at the time of logon. Execute access authentication.
- the user information acquisition unit 208 acquires the access authority of the user as user information and passes it to the database management unit 204, thereby corresponding to the access authority permitted to the user during the full-text index. Create an index and register it with the inverted index.
- the document search unit 206 executes a secure search according to the present embodiment, and includes a search expression acquisition unit 210, a search control unit 212, and a search result creation unit 214.
- the search expression acquisition unit 210 acquires a search term included in the document search request and a logical operator that connects the search terms.
- the acquired search expression is sent to the search control unit 212 and buffered to generate a combined search expression.
- the search result creation unit 214 receives a search result from the search control unit 212, generates a search result file such as a format corresponding to a structured document such as HTML or XML, or a terminal device / program, as a search result file. It is returned to the issuer of the search request via the adapter 202.
- the search result creation unit 214 creates a union of the plurality of search results and executes processing for creating the search results.
- the search control unit 212 controls the secure search process according to the present embodiment.
- the search control unit 212 generates an inclusion relational expression from the access authority acquired by the user information acquisition unit 208 at the time of user logon, and combines it with the search expression received from the search expression acquisition unit 210 to generate a combined search expression.
- the search formula acquired by the search formula acquisition unit 210 is “ibm AND patent”, and GX ⁇ GY ⁇ UA (GY is an upper group including GX as a group hierarchy indicating the inclusion relationship of user access authority) , The user UA is a member of GX).
- the search control unit 212 uses the IN operator to generate an inclusion relational expression from the acquired user information as “acl: UA IN acl: GX IN acl: GY”, which is generated as a search expression “ibm AND patent”. And the combined search expression ⁇ (ibm AND patent) AND (acl: UA IN acl: GX IN acl: GY) ⁇ .
- the IN operator is an operator for instructing a search process that defines the inclusion relationship of the user's access authority, and will be described in detail later.
- the search control unit 212 controls the search of the index search execution unit 216 and the cache management unit 218 when performing a secure search.
- the search control unit 212 generates a combined search expression and passes the combined search expression to the cache management unit 218 and the index search execution unit 216.
- the cache management unit 218 manages a cache memory 222 configured as an L2 cache or an L3 cache.
- the cache item of the cache memory is a cache index based on the hash value generated using the search word and the access authority of the user, and until the capacity of the cache memory 222 is allowed as a record having the search result searched in the past as the cache content. It is registered.
- the cache management unit 218 When the cache management unit 218 receives the combined search expression from the search control unit 212, the cache management unit 218 searches the domain level and open domain level documents except for the information related to the private level access authority included in the inclusion relation expression. Therefore, the hash value for performing the cache search is calculated from the information related to the search term, operator, and access authority of the received search expression. The cache management unit 218 searches the cache memory 222 using the generated cache index.
- the access authority at the private level means an access authority or privilege level that allows only the user to access without being related to the hierarchical group to which the user belongs.
- a private level is, for example, a document that is being created or reviewed and is not yet published on the network, a document that needs to be highly restricted, or a search server 110 that has a specific commercial search service.
- Security level set according to guest or subscriber.
- the domain level means a user group including a plurality of users, and corresponds to a department or a department in a specific group.
- the domain level can be a group of users having the same access rights.
- the open domain level corresponds to a domain group including a plurality of domain levels, and can be the entire specific group, or has a guest level access authority in a commercial search system or the like. be able to.
- the domain hierarchy is appropriately set in the specific embodiment, and is not limited to the three layers of private, domain, and open domain.
- the cache management unit 218 returns the cache contents to the search control unit 212 and requests creation of a search result.
- the search control unit 212 is notified of the cache miss hit.
- the search control unit 212 instructs the index search execution unit 216 to execute a search using a combined search expression.
- Search formula A gives search results related to the user's private level
- search formula B gives search results related to the search terms for the group hierarchy to which the user belongs.
- the search result given by the search formula B is generated in order to prevent the search result related to the private level from being shared by all users in the group in the event of a cache hit.
- the search expression A allows a user to search for a document having an access right at the private level. Therefore, when the user requests a search including the private level, the search result creating unit 214.
- a search result set that is returned to the user by receiving each search result of search formula A and search formula B and generating (search result of search formula A) ⁇ (search result of search formula B) as a search result Create
- search result creating unit 214 search for search formula B
- the search result creating unit 214 Create a search result that only receives (result) and returns it to the user.
- the level of search results to be returned to the user is determined by setting radio buttons, check boxes, and the like when the user sends a search request in the closed document search system 100 within a specific group. It can also be specified as user on demand. Further, when the document search system 100 is an open system for performing a commercial search or the like, it is determined based on user authentication at the time of logon whether or not the user is a privileged user. It is possible to change the search result generation process by designating whether or not to generate a private level search result and acquiring it as user information by the search server 110.
- the search control unit 212 determines that the cache miss has occurred, the search control unit 212 passes the combined search expression to the index search execution unit 216.
- the IN operator included in the search expression is changed to an OR operator that can be interpreted by, for example, SQL (Structured Query Language) It is changed and converted into a format that enables the full-text index search execution by the index search execution unit 216.
- the conversion process from the IN operator to the OR operator can be executed by the search control unit 212, or the index search execution unit 216 can receive the join search expression including the IN operator and execute the conversion process.
- the processing unit that executes the conversion process is not limited.
- the index search execution unit 216 uses the search formula A and the search formula B after the conversion process to independently execute a full text index search. Execution of the full text search is analyzed by, for example, an SQL parser, search processing is executed, the index list storage unit 220b is scanned for each search term and access authority combined by AND operator and OR operator, and an inverted index is searched. Extracts information such as the title and storage location of the document corresponding to the document identification value referenced by. The extracted data is sent to the search control unit 212, sent from the search control unit 212 to the cache control unit 218 and the search result creation unit 214, and registration processing and search results in the cache memory 222 are created.
- the search result creation unit 214 calculates a union corresponding to the search request and creates a search result set. Thereafter, the document search unit 206 returns the created search result from the network adapter 202 to the issuer of the search request via the network 108, and the series of secure search transactions of this embodiment is completed.
- the search server 110 uses the cache management unit 218 to search the search formula A, the search formula B, or the past search results of the search formula A and the search formula B, and the hash of the search formula A and the search formula B.
- Each value can be registered as a cache index. For this reason, for example, when the cache management unit 218 receives a search request that gives the same search expression within the same group to which the user who executed the search belongs, the cache management unit 218 caches the search request from the same group. It becomes possible to generate hits. In this case, if the user does not need a search at the private level, a secure search can be performed without executing any set operation. Even when a secure search including the private level is executed, the set operation can be reduced to at most once, and the set operation can be performed regardless of the increase in the group hierarchy. It depends only on the necessity.
- the probability of a cache hit increases as the number of users belonging to a specific group increases, and search results related only to the inclusion relationship are registered as cache contents regardless of the increase in the group hierarchy. ing. For this reason, in the present embodiment, the search efficiency of the document search system 100 using the full text search can be remarkably improved and scalability can be ensured without depending on the increase in the number of users or the increase in the group hierarchy. .
- FIG. 3 shows an embodiment of the user group hierarchy 300 of the present embodiment.
- a specific user for example, UA 322 belongs to the group G (GB) 320, and the GB 320 further belongs to the group A (GA) 310.
- the user D (UD) 332 and the UE 334 belong to the group C (GC) 330, and the GC 330 belongs to the GA 310.
- the GB 320 and the GC 330 are not related in terms of the hierarchical structure, but the GB 320 and the GC 330 constitute members of the GA 310 that is a group in a higher hierarchy.
- the hierarchical structure of the group hierarchical structure 300 shown in FIG. 3 is that the UA 322 to UC 326, the UD 332, and the UE 334 are the private-level tiers with the smallest access authority, and the GB 320 and the GC 330 belong to the same group. It is a domain level hierarchy that grants access rights to other users.
- the GA 310 is an open domain level hierarchy that most widely grants access authority. Documents assigned to the GA 310 at the open domain level can be accessed from any domain of the GB 320 and the GC 330 based on the access authority.
- domain-level documents are assigned as access rights that only users belonging to each domain can access, and private-level documents are, in principle, secured only by those users. Search is possible.
- group hierarchical structure 300 shown in FIG. 3 is collectively managed by the user management server 120 instead of the search server 110 in the context of this embodiment, and the search server 110 receives the search request and performs on-the-fly.
- the access authority is received from the user management server 120 as user information. For this reason, the security hierarchy setting and the search process can be completely separated, and the access authority change and the hierarchy structure change of the user of the installed words of the document search system 100 can be set completely separately from the search server. Thus, the indexing process and search process of the search server 110 are not affected.
- FIG. 4 shows an embodiment of the full-text index 400 managed by the search server 110 of this embodiment.
- the full-text index 400 is configured as a so-called transposed index, and the word extracted from the document by the search server 110 and the document identification value of the document including the word are configured as a record for each specific word.
- the access authority index is also registered in the field 410 for registering words in order to process access authority at the same level as words. For example, the word “ibm” appears in document 1, document 2, document 4,..., And the word “patent” appears in document 2, document 3, document 4,. Is shown.
- the access authority set for the document is added as an inverted index.
- the documents that can be accessed at the private level for the user UA as acl: UA are document 1, document 4, It is shown that ...
- the documents that can be accessed by the user belonging to the group X as acl: GX are indexed in the field 420 as document 3, document 4,.
- the words included in the field 410 are used as search terms included in the search request.
- the access authority is also included in the search request at the same level as the search terms.
- the inverted index shown in FIG. 4 in addition to the document identification value, an appearance position of a word can be associated and registered, and as long as at least a word and a document identification value are associated, There is no limitation on the implementation format.
- Box 430 shows an embodiment of a cache index generation process in the case where the join search expression, search results, and search results used when the index search execution unit 216 executes are cached in this embodiment.
- the search request shown in box 430 is an embodiment where a user UA belonging to group GX requests a secure search including document search at his private level.
- the search control unit 212 synthesizes the received search expression and the inclusion relation expression.
- the queryA described above is a private-level search expression, and queryB is a shared-level search expression.
- the hash calculation to generate the cache index can be applied to the entire search expression as hash (ibm + AND + acl: UA), or hash (ibm) + hash (AND) + hash (acl: UA) Any hash calculation algorithm can be used as long as the search expression and the cache contents can be associated with each other.
- hash function any hash function known so far can be used, such as SHA-1, SHA-2, MD-2, MD-4, and MD-5.
- the cache index of the search result excluding the private level is hash (ibm + AND + acl: GX)
- the user of group X can generate a cache hit in the cache contents (search result) associated with the cache index hash (ibm + AND + acl: GX).
- the registered cache index is hash (ibm + AND + acl: UA)
- the cache management unit 218 Since the hash value to be generated is hash (ibm + AND + acl: UM), it is understood that a cache miss occurs and private level security can be ensured.
- FIG. 5 is a diagram comparing the cache index generation processing 500 when the search result is cached.
- the conventional cache index generation process as shown in box 510, all information included in the search expression is used and all information is hashed.
- the hash calculation is described as hash (ibm, acl: GX, in,: acl: GY), but in FIG. 5, the purpose is to illustrate data used for the hash calculation. How to use information or hash value to be used for hash calculation can be calculated. As shown in FIG. 5, a cache hit does not occur unless the same user uses the same search term and operator.
- the cache index generation process of this embodiment as shown in the box 520, in order to share the cache item at the domain level, information related to the access privilege at the private level included in the search expression is displayed. A hash value is generated using the excluded information as a cache index.
- a search expression including only information related to the private level is generated, a hash value is generated, and the cache index is stored in the cache memory 222 together with the cache index.
- the search result is cached.
- FIG. 6 shows an embodiment of a data structure 600 generated in the cache memory 222 in this embodiment.
- the data structure 600 is generated including a record in which a field 610 for registering a cache index is associated with cache contents (search results) indexed by the cache index.
- the cache management unit 218 searches the cache index and returns the cache content of the record with the matching hash value to the search control unit 212 as a search result, thereby achieving high-speed search processing.
- the hash value of the search expression excluding information related to the private level from the search terms (including the access authority) included in the combined search expression generated by the search control unit 212 is registered.
- the cache hit is achieved on a group basis.
- the cache content is registered in the field 620 as “DOC (ibm) in GX ⁇ DOC (ibm) in GY” or the like, in the field 620.
- Shared level search results and private level search results are identified in the cache index, as shown in field 610.
- the actual data of the search result can be registered, and the real address, the virtual address, the reference data of the search result can be referred to so that the cache capacity can be used efficiently.
- An absolute path name, URI, URL, etc. can be registered.
- FIG. 7 shows a flowchart of the document search process when the search is executed for the shared level, which is executed by the search server 110 of this embodiment.
- the processing in FIG. 7 starts from step S700, and in step S701, a search expression including a search term input by the logged-on user is acquired.
- query ibm AND patent is acquired.
- the user access authority is acquired from the user management server 120 as user information.
- the user information can be acquired from the user management database 120 as information including the access authority such as the private level, domain level, and open domain level of the user inquired by the user ID of the logged-on user.
- step S703 the combined search formula described above is sent to the cache management unit 218, and the search formula for the shared level from the information obtained by excluding the search term corresponding to the access authority at the private level of the user from the inclusion relation formula.
- a hash index, hash (ibm, and, in, GX, in, GY) is calculated to generate a cache index.
- the cache management unit 218 searches the cache index of the cache memory 222 and determines whether or not there is a cache hit.
- step S704 If the cache hit is determined in step S704 (yes), the process proceeds to step S705, the cache content corresponding to the hash value is read from the cache memory, the search result is acquired, and the content acquired in step S706 is generated as a search result.
- the search result is sent to the unit 214 and sent to the issuer of the search request via the network 108.
- step S712 a series of transactions is completed.
- step S704 if a cache miss hit is determined in step S704 (no), the process branches to step S707, and the index search execution unit 216 creates a shared level search expression.
- This processing can be performed, for example, by separating the private level access authority and the immediately following IN operator included in the inclusion relational expression in the join search expression.
- the IN operator in the join search expression is converted into an OR operator, and is corrected to a join search expression that can be processed by a normal SQL parser.
- step S708 the index list storage unit 222b of the document database 220 is scanned using SQL or the like, and a full-text search of the document is executed in units of OR operators.
- step S709 the capacity of the cache memory 222 is checked. If the capacity of the cache memory 222 exceeds (yes), unnecessary records are deleted from the cache items in step S710. Deletion of cache items can be performed using various methods and criteria, and can be adopted based on the fact that the access frequency is lower than a certain threshold, or the latest access such as a time stamp. The deletion method that has been used for updating the cache items so far, such as deleting the oldest time, can be executed as appropriate. If it is determined in step S709 that the cache memory capacity has not been exceeded (no), the process immediately branches to step S711.
- step S711 a cache index is generated from the search expression including the IN operator, the acquired search result is registered as a record in the cache memory 222 in association with the cache index, and the cache item is updated. Thereafter, each search result is sent to the search result creation unit 214 to generate a union and generate a search result.
- An embodiment for executing a search corresponding to ⁇ (ibm AND Patent) AND (acl: UA) ⁇ , which is a private-level search separated from the inclusion relational expression, will be described with reference to the processing of FIG. .
- FIG. 8 is a flowchart of document search processing for generating a search result including documents accessible at the private level in addition to the shared level described in FIG.
- the private level does not cause a cache hit, but the shared level is described as a cache hit.
- step S806 The processing of the embodiment shown in FIG. 8 is generally the same as the processing described with reference to FIG. 7, but in the embodiment described with reference to FIG. 8, a cache hit occurs for the search result at the shared level.
- the contents are read and passed to step S806.
- a cache hit is not made in step S804 (no)
- step S808 a search expression ⁇ ibm AND (acl: UA) at the private level from (acl: UA IN) separated from the inclusion relational expression.
- step S809 the search is performed independently using the private-level search expression ⁇ ibm ANDcl (acl: UA) ⁇ .
- step S810 it is determined whether or not the cache capacity has been exceeded. If not (no), in step S812, the search result at the private level is associated with the hash value as a cache index and associated as a cache item. And stored in the cache memory 222. If it is determined in step S810 that the cache capacity has been changed (yes), unnecessary records are deleted from the cache in step S810, and cached in step S812.
- step S 806 the search result at the private level is acquired, and the search result creation unit 214 searches the search result of the shared level that has been buffered in advance.
- a search result set is created as a union of the results, and in step S807, a process for returning the final search result to the issuer of the search request is executed.
- a security search that uses user input can be efficiently performed even when the access authority at the private level is included in the combined search expression.
- the private level access authority search result is distinguished from the domain level search result as a cache item, so that even if a private level secure search request is executed, if a cache hit occurs, an index is created. It is possible to generate a union of the contents of each cache without executing a search at all, and without causing a large processing load compared to caching all search results including access authority at the private level, The same search result can be generated.
- the user B can search the cache memory 222 for the already cached search result at the domain level of the change destination, while the private level of the user B is changed. If the search result is cached, it is possible to cope with a change in user group membership without re-executing the full-text index search.
- the cache items in the cache memory 222 are cleared when the access authority at the private level, domain level, or open domain level is modified, and a secure search is performed under the new access authority setting. Is called. Further, any of the methods known so far can be used for processing such as refresh or synchronization of cache items in the cache memory 222.
- FIG. 9 shows the use of the combined search expression 900 for the process of FIG. 8 to include the search results at the private level to reduce the OR process and improve the cache item usability by the secure document search of this embodiment. It is a figure explaining.
- the join search expression 910 When no cache hit occurs at the stage of performing the search of the join search expression, as shown by the join search expression 910, the OR operation is performed for the three levels of private level, domain level, and open domain level. This OR operation increases as the hierarchical level increases, and it is shown that the search efficiency of the secure search increases in calculation overhead depending on the number of hierarchies as well as the number of documents.
- search results at a hierarchy level at least higher than the private level are cached. Therefore, as shown by the combined search expression 920, the search results at the private level and the cached search are displayed. By performing an OR operation on the result, the same search result as that of the combined search expression 910 can be generated, and the search efficiency can be greatly improved.
- a cache index is separately generated and cached for a search result at a private level, and a combined search expression 910 is performed by performing an OR operation between cache items as shown by a combined search expression 930.
- FIG. 10 is a diagram illustrating a search efficiency improvement function by the document search system 100 of the present embodiment.
- a cache hit is not generated unless the same user inputs the same search formula, and the cache hit is extremely low as shown by an area 1010. Probability.
- the cache hit is increased by at least the number of users compared to the area 1010, and as a result, the probability that the cache hit occurs is in the area 1020. As shown, it increases at least three times.
- the probability of occurrence of a cache hit increases linearly as the number of users belonging to the domain level increases, and the increase in the number of users conversely increases the search efficiency. It becomes possible to improve.
- in this embodiment in addition to reducing the OR operation for each hierarchical level to 0 or 1, it becomes possible to use a cache memory together. According to this embodiment, a secure search using a full-text index It is possible to significantly improve the search efficiency.
- the functions of the present embodiment are object-oriented programming languages such as C, C ++, Java (registered trademark), Java (registered trademark) Beans, Java (registered trademark) Applet, Java (registered trademark) Script, Perl, Ruby, and PYTHON.
- the program can be realized by a device-executable program described in the above, and the program can be distributed by being stored in a device-readable recording medium such as a hard disk device, CD-ROM, MO, flexible disk, EEPROM, EPROM, In addition, it can be transmitted via a network in a format that other devices can.
- DESCRIPTION OF SYMBOLS 100 ... Document search system, 102, 104, 106 ... Terminal device, 108 ... Network, 110 ... Search server, 120 ... User management server, 200 ... Functional block (search server), 202 ... Network adapter, 204 ... Database management part , 206 ... Document search unit, 208 ... User information acquisition unit, 210 ... Search formula acquisition unit, 212 ... Search control unit, 214 ... Search result creation unit, 216 ... Index search execution unit, 218 ... Cache management unit, 220 ... Document Database, 222 ... cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】セキュリティを確保しつつ文書検索を実行する情報処理装置、文書検索システム、文書検索方法およびプログラムを提供する。 【解決手段】情報処理装置110は、文書に対するアクセス権限を含ませた索引を生成して、前記文書とともに管理するデータベース管理部204と、ユーザ識別値についてアクセス権限をユーザ情報として取得するユーザ情報取得部208と、ユーザ情報および検索式を含む検索要求を取得し、検索要求の発行元のアクセス権限についての包含関係を指定する演算子を含む包含関係式を検索式に結合して結合検索式を生成し、結合検索式から、複数のユーザ識別値を含むドメイン内で複数のユーザ識別値の下に共有できる共用レベルの検索結果を取得する文書検索部206と共用レベルであることを識別させたキャッシュ項目として前記共用レベルの検索結果を登録するキャッシュ管理部218とを含んでいる。
Description
本発明は、文書検索に関し、より詳細には、全文索引を使用する場合のセキュリティを確保しつつ、検索効率を向上させる、情報処理装置、文書検索システム、文書検索方法およびプログラムに関する。
ネットワーク技術および情報処理装置の性能向上に伴い、文書の全体の語句を索引として検索する、いわゆる全文索引検索が可能とされている。また、文書検索については、オープン環境で全ユーザに対してすべての文書を検索させるシステムもあるし、また、文書検索システムにアクセスしてきたユーザのアクセス権限をユーザ情報として使用し、アクセス権限に関連してアクセスできる文書を制限することにより、データベースなどに蓄積された文書のセキュリティを確保する、いわゆるセキュリティ検索システムも存在する。
文書セキュリティを継承する機能(以下、セキュア検索として参照する。)を有する文書検索システムは、多くの場合、検索対象文書の全文索引内に文書に対するアクセス権情報を保持させ、アクセス索引として文書検索時にアクセス権限の判断を実行する。従来の検索システムでは、多くの場合、ユーザの検索時に取得されるユーザ名やグループ名、またはそれらの階層包含関係(以下、これらを総じてユーザ情報として参照する。)が、閲覧可能なアクセス権にマッチする文書のみを検索結果として抽出することで、セキュア検索を実現する。
このような文書検索システムは、検索実行時にユーザ情報を含む検索式を作成し、全文検索の基盤を大きく変更することなくセキュア検索を実現可能とする。しかしながら、ユーザ情報を含む検索式は、アクセスしてきたユーザのアクセス権限の他、ユーザが属するすべてのグループ名を羅列したOR検索式となる。この結果、従来のセキュア検索は、文書数およびグループ階層が増加するにつれ、グループが含む文書数の増加およびグループ数の増加により、検索対象が非線型的に増加し、検索性能に大きな影響を及ぼすという問題がある。
上述した従来技術の問題点を改善するため、検索結果をキャッシュしておき、2回目以降の検索を、高速化する既存技術も知られている。検索結果をキャッシングする処理を採用することで、同一の検索式での検索処理を高速化することができる。しかしながら、セキュア検索についてみれば、ユーザ相互、グループ間相互のアクセス権限を保存しなければならないという特有の問題が生じる。すなわち、キャッシュ結果は、アクセス権限に基づいて登録されなければならないので、ユーザを識別するためにユーザ固有のアクセス権限を含むキャッシュ索引が作成されることになる。この結果、キャッシュ項目は、「同一のユーザ」が「同一の検索式」を使用して実行する場合にのみ、キャッシュヒットを生成させ、それ以外の場合には、キャッシュミスヒットを生じさせてしまい、キャッシュ載りよう効率が高められないという問題があった。
上述した問題は、キャッシュヒットの発生が、従来の文書検索システムでは同一ユーザが同一検索式を複数回入力する場合にのみ発生することに起因する。このような検索は、ユーザまたは文書検索システム内で何らかの不都合があった場合を除き多くは生じず、非セキュア検索の場合と比較してキャッシュのヒット率が著しく低下することによる。
これまで、セキュア検索を可能とする文書検索システムは多数知られている。例えば、特開2005-284608号公報(特許文献1)では、セキュア検索を高速に実現する処理を開示する。特許文献1では、事前にアクセス権限の属性値をデータベースに設定することによりセキュア検索を可能とする。
特許文献1では、検索処理以前に、事前に索引に対してアクセス権情報の組合わせにラベルを付する処理が必要となり、また検索は、ユーザのアクセス権限を網羅的にOR検索し、検索結果の和集合を生成する処理が必要とされ、グループの増加およびグループ単位で蓄積される文書数の増加に対して非線型的に検索処理のオーバーヘッドが増加するので、検索効率は、非線型的に非効率化する。この結果、セキュア検索において全文索引検索を対象とするシステムにそのまま適用するには、検索効率の点で現実性が低いものである。
また、特開2004-164555号公報(特許文献2)には、検索装置および方法ならびにそのインデクス構築装置が開示されている。特許文献2は、セキュア検索を実現する手法に関する発明であり、特許文献2では、セキュリティ・ドメインを規定し、当該セキュリティ・ドメインに対してアクセス権を設定するための複数のインデックスを登録させることにより、ドメインごとのセキュリティ性を確保する。この際、セキュリティ・ドメインごとのインデックスの生成は、ドメインごとに設定された管理者が、セキュリティ・ドメイン内の文書を収集する収集プログラムを実行させ、セキュリティ・ドメインでアクセス可能文書を収集し、インデックスの作成および編集などにより行われている。
特許文献2の処理によっても、セキュア検索は可能となるが、管理者によるインデックス管理などの負担が増加する。また、収集プログラムによる文書の収集は、結局の所、文書を検索し抽出するという文書検索処理の実行を伴い、実質的に文書検索プログラムを、管理者用の収集プログラムと、一般ユーザ用の文書検索プログラムというコンテキストで実装しなければならないという、ソフトウェアモジュールの無駄を発生させてしまう。
さらに、特許文献2の処理は、文書に対して階層構造を割当て、アクセス権のチェックをインデックス単位で枝狩りすることにより検索対象となる文書数を削減することで、セキュア検索における検索効率またはレスポンス性を向上させるものである。文書に対して階層構造を割当て、枝狩りする処理を使用することによっても、検索対象空間を削減することは可能となる。しかしながら、文書に階層構造を割当てる場合でも、枝の最下層にある文書にまで到達しなければならない場合、結局の所ユーザのアクセス権の網羅的に含むOR検索を実行しなければならない。この結果、検索式によって検索速度やレスポンスは大きく異なることになり、検索処理のスケーラビリティが低下する。
また、文書は、そのセキュリティ・レベルに対応して一義的な階層構造を割当てることができない場合もあり、また、セキュリティ・レベルの変更を伴う場合、ツリー構造を再構築しなければならないという不都合がある。さらに、文書に対する階層構造割当てに依存して、本来検索可能な文書であっても、検索対象から排除されてしまう文書が発生することも想定でき、必ずしも汎用的な文書検索に適用できるわけではない。加えて、例えば、ユーザがプライベートなアクセス権限でアクセスする場合には、階層構造に依存せずにアクセスさせなければならないので、複数の索引構造を用意しなければならず、全文検索を前提としたセキュア検索においては、特許文献1と同様に実現性が低いものということができる。
以上のように、従来のセキュア検索処理は、セキュア検索を実現するために管理者によるセキュリティ管理の負担が発生すること、セキュア検索および文書収集のための類似するソフトウェアの並列実装が必要となる。また、セキュリティ・レベルの変更に対応して索引構造を大幅に変更する必要が生じ、また異なる索引構造を並列的に実装することが必要となるなど、全文索引検索のためのセキュア検索にそのまま適用することが困難であった。加えて、ユーザが帰属されるグループの階層構造が増加するにつれて、非線型的に検索処理のオーバーヘッドが増大し、検索効率が低下するものであり、文書数の増加およびグループの階層構造の増加に柔軟に対応しながら検索効率を改善するものではない。
すなわち、本発明は、全文索引を使用するセキュア検索処理の検索効率を向上することが可能な、情報処理装置、文書検索システム、文書検索方法およびプログラムを提供することを目的とする。
本発明は、上記従来技術の問題点を、セキュア検索のための全文索引構造を修正することなく、キャッシュヒット確率を向上させ、さらに、文書検索式の集合演算回数を削減させることによりセキュア検索における検索効率を改善する。
ユーザ単位でのセキュア性の確保は、文書に対してではなく、ユーザに対して階層構造を導入することにより行われ、ユーザの階層構造の識別処理は、ユーザログイン時の情報を利用して検索実行時に検索サーバがユーザ情報として取得する。検索サーバは、ユーザ入力された検索式と、ユーザのアクセス権限から生成される包含関係式とを結合させて結合検索式を生成する。文書検索システムは、結合検索式からユーザのプライベート・レベルの検索を実行する検索式および共用レベルの検索を実行する検索式を生成し、独立して検索を実行させる。
各検索結果は、プライベート・レベルの検索結果および共用レベルの検索結果を識別することが可能なキャッシュ索引にそれぞれ対応付けられて、キャッシュメモリに格納される。
特定の実施形態では、プライベート・レベルの検索結果を索引付けするキャッシュ索引は、プライベート・レベルの検索結果を与える検索式を使用したhash計算により生成され、また共用レベルの検索結果を索引付けするキャッシュ索引は、共用レベルの検索結果を与える検索式を使用したhash計算により生成される。この結果、共用レベルの検索結果についてのキャッシュ索引の検索は、同一の共用レベルに関連した検索については、検索するユーザが相違してもキャッシュヒットを発生させるが、プライベート・レベルを含むキャッシュ項目に関してキャッシュヒットを発生させず、共用レベルでのキャッシュヒット確率を向上させつつ、プライベート・レベルのセキュリティを保証することができる。
プライベート・レベルでの検索結果は、同様にしてキャッシュ項目として、プライベート・レベルであることを示すキャッシュ索引とともに登録され、プライベート・レベルでの検索要求の場合には、キャッシュ索引の検索が実行され、キャッシュヒットの場合には、キャッシュ内容が検索結果とされる。
一方、キャッシュミスヒットの場合には、共用レベルでも、プライベート・レベルでも全文索引を使用した全文索引検索が実行され、新たな検索結果が生成される。生成された新たな検索結果は、新たな検索結果を生成するために使用した検索式についてのhash計算により生成されるキャッシュ索引に対応付けて登録され、以後、同一の検索式に帰属される検索要求を受領した場合、キャッシュヒットに対応して全文索引検索を実行させることなくキャッシュ内容を返すことを可能とする。
この結果、本発明では、共用レベルでは、キャッシュ内容は、ユーザが過去に検索したグループ階層単位でアクセス可能な文書を網羅したものとして登録される。この結果、共用レベルでキャッシュヒットが発生した場合、ユーザのプライベート・レベルでのキャッシュヒットまたは索引検索の検索結果と、たかだか1回のOR演算を実行するだけで検索結果集合を生成することができ、集合演算のために消費されるプロセッサ能力を著しく削減することが可能となる。
また、本発明では、グループに含まれるユーザ数が増加すれば増加するだけ、キャッシュヒット確率が向上しさらに、ユーザのグループ異動や、グループ階層が増加した場合にでも、グループ階層分の集合演算を伴う全文索引検索が実行される確率を最小限に抑制することが可能となり、セキュア検索効率を向上することができるとともに、グループ階層の増加およびそれに伴う文書の増加に柔軟に対応できるセキュア検索が可能となる。
以下、本発明につき、実施形態をもって説明するが、本発明は、後述する実施例に限定されるものではない。図1は、本発明の文書検索システム100の概略図である。文書検索システム100は、インターネット、LANなどのネットワーク108と、ネットワーク108に接続され、ユーザにより操作されて、ネットワーク108を介して検索サーバ110にアクセスする復数の端末装置(以下、単に端末装置102として参照する。)102、104、106を含んで構成されている。
検索サーバ110は、本実施形態にしたがい、検索サーバ110が管理する文書データベース(図示せず)に格納された文書に対するセキュア検索を実行する。本実施形態では、文書は、電子化された電子データ全般を意味し、テキスト、イメージ、オーディオ、またはこれらのデータが複合的に組み合わせされたマルチメディアコンテンツを含むことができる。ネットワーク108には、検索サーバ110にアクセスするユーザの、アクセス権限を管理するユーザ管理サーバ120が接続されている。ユーザ管理サーバ120は、ユーザが検索サーバ110にログオンする場合、検索サーバ110からの問合わせを受領し、ログオン時に取得したユーザ識別値(以下、ユーザIDとして参照する。)などを使用してユーザのアクセス権限を検索する。ユーザ管理サーバ120は、ユーザ管理データベース(図示せず)を管理しており、ユーザごとのアクセス権限をリレーショナル・データベースなどを使用して管理している。
ユーザ管理サーバ120は、ユーザのアクセス権限が見出された場合、ユーザ情報として検索結果を検索サーバ110に返し、検索サーバ110によるユーザのアクセス権限を使用した包含関係式の作成を可能としている。検索サーバ110は、文書データベース(図示せず)を管理しており、文書データベースに登録された文書の全文索引検索を実行するため、検索サーバ110が管理する文書に関して全文索引を、転置索引として生成して文書を索引付けしている。
なお、図1に示した検索サーバ110とユーザ管理サーバ120は、文書検索システム100が提供するサーバ機能を説明するために分離して示したものであり、特定の実施形態では、例えば、IBM社製のBladeCenter(BladeCenterは、インターナショナル・ビジネス・マシーンズ・コーポレーション社の登録商標である。)などのラックマウント型のサーバ・ユニットとして一体となったサーバとして構成することもできる。
上述した検索サーバ110、ユーザ管理サーバ120は、情報処理装置として実装され、PENTIUM(登録商標)、XEON(登録商標)、CELERON(登録商標)、ATHRON(登録商標)などのPENTIUM(登録商標)互換チップといったCISCアーキテクチャのプロセッサ、または、POWER PC(登録商標)などのRISCアーキテクチャのプロセッサを実装することができ、シングルコアでもマルチコアでもよい。また、検索サーバ110、ユーザ管理サーバ120は、WINDOWS(登録商標)200X、UNIX(登録商標)、LINUX(登録商標)などのオペレーティング・システム(以下、単にOSとして参照する。)により制御されている。
また検索サーバ110、ユーザ管理サーバ120は、上述したOSの管理下、C、C++、JAVA(登録商標)、JAVA(登録商標)BEANS、PERL、RUBY、PYTHONなどのプログラミング言語を使用して実装される、CGI、サーブレット、APACHEなどのサーバ・プログラムを実行し、各種サービスを提供している。
さらに、検索サーバ110とユーザ管理サーバ120との間のネットワーク108を介したトランザクションのため、これまで知られたいかなるトランザクション・プロトコルでも使用することができる。例えば、検索サーバ110が検索サーバ110にアクセスしたユーザの認証およびアクセス権限検索のため、DAP(Directory Access Protocol)やLDAP(Lightweight Directory Access Protocol)などを使用してユーザ情報に関するトランザクションを生成させることができる。また、ファイル転送などのため、HTTP、FTPなどのファイル転送プロトコルなどを使用することもできるし、RMI(Remote Method Invocation)やRPC(Remote Procedure Call)などの分散コンピューティング環境を使用することもできる。
一方、端末装置102は、パーソナル・コンピュータ、ワークステーションとして実装され、端末装置104は、PDA(Personal Data Assistant)として構成され、端末装置106は、携帯電話などの情報処理装置として実装されている。また、端末装置102は、プロセッサ(MPU)として、これまで知られたいかなるシングルコア・プロセッサまたはデュアルコア・プロセッサを含んで実装されていてもよい。また、端末装置102、104、106は、WINDOWS(登録商標)、WINDOES(登録商標)CE、UNIX(登録商標)、LINUX(登録商標)、MAC OS、または携帯電話専用OSなど、これまで知られたいかなるOSにより制御されてもよい。
端末装置102、104、106と検索サーバ110との間は、例えばTCP/IPなどのトランザクション・プロトコルに基づき、HTTPプロトコルなどのファイル転送プロトコルを使用するトランザクションを使用したネットワークで接続されている。端末装置102は、この目的のため、Internet Explorer(商標)、Mozilla、Opera、Netscape Navigator(商標)などのブラウザ・ソフトウェアを実装していて、検索サーバ110にアクセスし、ログオン認証の後、文書のセキュア検索を行う。
なお、検索サーバ110と端末装置102、104、106との間のトランザクションは、有線またはワイアレス通信を使用した通信基盤の下で、HTTPプロトコルに限定されず、例えば、RMI(Remote Method Invocation)、RPC(Remote Procedure Call)などの遠隔呼出プロトコルを使用し、CORBA(Common Object Resource Broker Architecture)などの下に実装される、いわゆる分散コンピューティングシステム(DCE)として参照される端末装置-サーバシステムとして実装することもできる。以下、ユーザ管理サーバ120は、本実施形態の要旨ではないので、より詳細な説明は省略する。
図2は、本実施形態の検索サーバ110の機能ブロック200を示した図である。図2に示した各機能ブロックは、プロセッサが、RAMなどの実行空間にプログラムを読み込んで、プロセッサがプログラムを実行させることによって、検索サーバ110上の機能手段として実現されている。検索サーバ110は、ネットワーク・アダプタ202と、データベース管理部204と、文書検索部206とを含んで構成されている。
ネットワーク・アダプタ202は、ネットワーク108を介して端末装置102からの文書検索要求や文書登録要求を受領し、受領した各要求を対応する処理を実行する機能部に渡し、また検索結果集合から適切なフォーマットの検索結果ファイルを作成し、クライアント102、104、106に送付する。検索サーバ110は、端末装置102から文書登録要求を受領すると、データベース管理部204を呼出して、文書データベース220に文書および全文索引の登録を実行させる。
本実施形態の全文索引は、特定の形式に限定するものではないが、本実施形態では、全文検索性の効率の観点から、転置索引方式の索引付けを採用する。データベース管理部204は、受領した文書を、文書データベース220の文書格納部220aに格納し、生成した転置索引を、文書データベース220の索引リスト格納部220bに、文書と対応付けて登録する。なお、文書には、固有の文書識別値が付されていて、転置索引の検索語が、文書識別値に対応付けされて登録される。また、データベース管理部204は、当該文書について設定されるアクセス権限を使用して全文索引中にアクセス権限を登録する。全文索引中のアクセス権限は、セキュア検索実行中に、ユーザのアクセス権限を判断するために参照される。
本実施形態では、ユーザのアクセス権限は、本実施形態では、ユーザ管理サーバ120により一括管理されている。検索サーバ110は、ユーザから文書の登録要求を受領すると、ユーザ情報取得部208を呼出して、ユーザがログオン時に入力したユーザIDおよびパスワードなどの情報を参照してユーザ管理サーバ120にアクセスし、ユーザのアクセス認証を実行する。そして、アクセス認証に成功すると、ユーザ情報取得部208は、当該ユーザのアクセス権限をユーザ情報として取得し、データベース管理部204に渡すことで、全文索引中にユーザに許可されたアクセス権限に対応する索引を生成し、転置索引に登録する。
文書検索部206は、本実施形態にしたがい、セキュア検索を実行し、検索式取得部210と、検索制御部212と、検索結果作成部214とを含んで構成されている。検索式取得部210は、文書検索要求が含む検索語および検索語間を接続する論理演算子を取得する。取得した検索式は、検索制御部212に送付されて、結合検索式を生成するためにバッファリングされる。検索結果作成部214は、検索制御部212から検索結果を受領して、検索結果をHTML、XMLなどの構造化文書または端末装置・プログラムに対応するフォーマットなどの検索結果ファイルを生成し、ネットワーク・アダプタ202を介して検索要求の発行元に返却する。また、検索結果作成部214は、複数の検索結果を検索制御部212から受領した場合、複数の検索結果の和集合を作成し、検索結果を作成する処理を実行する。
検索制御部212は、本実施形態にしたがい、セキュア検索処理のプロセスを制御する。検索制御部212は、ユーザ情報取得部208が、ユーザ・ログオン時に取得したアクセス権限から包含関係式を生成し、検索式取得部210から受領した検索式と合成して結合検索式を生成する。例えば、検索式取得部210が取得した検索式が、「ibm AND patent」であり、ユーザのアクセス権限の包含関係を示すグループ階層としてGX∈GY∈UA(GYがGXを包含する上位グループであり、ユーザUAは、GXのメンバである。)、というユーザ情報を受領しているものとする。
検索制御部212は、取得したユーザ情報から包含関係式を、IN演算子を使用して、「acl:UA IN acl:GX IN acl:GY」として生成し、これを検索式「ibm AND patent」と合成して、結合検索式{(ibm AND patent) AND (acl:UA IN acl:GX IN acl:GY)}として生成する。IN演算子は、ユーザのアクセス権限の包含関係を規定する検索処理を指令する演算子、であり、より詳細に後述する。本実施形態の上述したコンテキストにおいて、検索制御部212は、セキュア検索を実行する場合に、索引検索実行部216およびキャッシュ管理部218の検索を制御する。検索制御部212は、結合検索式を生成し、結合検索式をキャッシュ管理部218および索引検索実行部216に渡す。
キャッシュ管理部218は、L2キャッシュまたはL3キャッシュなどとして構成される、キャッシュメモリ222を管理している。キャッシュメモリのキャッシュ項目は、検索語およびユーザのアクセス権限を使用して生成したhash値をキャッシュ索引とし、過去に検索された検索結果をキャッシュ内容とするレコードとしてキャッシュメモリ222の容量が許容するまで登録されている。
また、キャッシュ管理部218は、検索制御部212から結合検索式を受領すると、包含関係式が含むプライベート・レベルのアクセス権限に関連する情報を除き、ドメイン・レベルおよびオープンドメイン・レベルの文書を検索するため、受領した検索式の検索語、演算子、およびアクセス権限に関連する情報から、キャッシュ検索を実行するためのhash値を計算する。キャッシュ管理部218は、生成したキャッシュ索引を使用してキャッシュメモリ222の検索を実行する。
本実施形態において、プライベート・レベルでのアクセス権限とは、ユーザの帰属する階層グループとは関連せず、ユーザのみがアクセスすることを許可するアクセス権限または特権レベルを意味する。このようなプライベート・レベルは、例えば作成中またはレビュー中であって、ネットワーク上に公開する段階にない文書や、高度に閲覧制限を行う必要がある文書、または検索サーバ110が特定の商用検索サービスを行っている場合、ゲストまたはサブスクライバなどに応じて設定されるセキュリティ・レベルである。
また、ドメイン・レベルとは、複数のユーザを含むユーザ集団を意味し、特定の集団内の部門、部署などに対応する。他の実施形態では、ドメイン・レベルは、同一のアクセス権限を有するユーザ集団とすることができる。さらに、オープンドメイン・レベルは、複数のドメイン・レベルを含むドメイン集団に対応し、特定の集団全体とすることもできるし、また、商用検索システムなどではゲスト・レベルのアクセス権限を有するものとすることができる。なお、ドメイン階層は、特定の実施形態において、適宜設定され、プライベート、ドメイン、オープンドメインの3階層に限定されるものではない。
キャッシュヒットが発生すると、キャッシュ管理部218は、キャッシュ内容を検索制御部212に返し、検索結果の作成を依頼する。また、キャッシュミスヒットが発生した場合、検索制御部212にキャッシュミスヒットを通知する。キャッシュミスヒットが通知されると、検索制御部212は、索引検索実行部216に対して結合検索式を使用した検索実行を指令する。
なお、当該処理では、上述した結合検索式{(ibm AND Patent) AND (acl:UA IN acl:GX IN acl:GY)}を、プライベート・レベルの検索式A=(ibm AND Patent) AND (acl:UA)および共用レベルの検索式B=(ibm AND Patent) AND (acl:GX IN acl:GY)に分離して独立した検索を実行させる。検索式Aは、ユーザのプライベート・レベルに関連する検索結果を与え、検索式Bは、ユーザが帰属されるグループ階層についての検索語に関連する検索結果を与える。検索式Bで与えられる検索結果を生成するのは、キャッシュヒットの際にプライベート・レベルに関連する検索結果がグループ内の全ユーザに共有されてしまうことを防止するためである。
一方、検索式Aは、ユーザのプライベート・レベルでのアクセス権限を有する文書を検索することを可能とするので、ユーザがプライベート・レベルまで含めた検索を要求する場合には、検索結果作成部214は、検索式Aおよび検索式Bの各検索結果を受領し、検索結果として、(検索式Aの検索結果)∪(検索式Bの検索結果)を生成することにより、ユーザに返す検索結果集合を作成する。一方、ユーザがプライベート・レベルまで含まない検索を要求する場合やユーザが特権レベルを有していない場合、検索結果Bのみの検索が実行され、検索結果作成部214は、(検索式Bの検索結果)のみを受領してユーザに返す検索結果を作成する。
なお、ユーザに対してどのレベルの検索結果を返すかについては、特定の集団内でのクロースドの文書検索システム100では、ユーザが検索要求を送付する際に、ラジオボタンやチェックボックスなどの設定でユーザオンデマンドに指定することもできる。また、文書検索システム100が、商用検索などを行うオープンなシステムである場合には、ログオン時のユーザ認証に基づき、ユーザが特権ユーザであるか否かの判断を使用して。プライベート・レベルの検索結果を生成するか否かを指定し、これをユーザ情報として検索サーバ110が取得することで、検索結果生成処理を変更することができる。
検索制御部212は、キャッシュミスヒットと判断した場合、結合検索式を索引検索実行部216に渡す。この際、本実施形態では、結合検索式から、検索式Aおよび検索式Bを作成した後、検索式が含むIN演算子を、例えばSQL(Structured Query Language)などが解釈可能なOR演算子に変更し、索引検索実行部216による全文索引検索実行を可能とする形式に変換する。IN演算子からOR演算子への変換処理は、検索制御部212が実行することもできるし、索引検索実行部216がIN演算子を含む結合検索式を受領して変換処理を実行することもでき、特に変換処理を実行する処理部に限定はない。
索引検索実行部216は、変換処理後の検索式Aおよび検索式Bを、使用して独立して全文索引検索を実行させる。全文検索の実行は、例えばSQLパーザなどにより解析し、検索処理を実行し、AND演算子、OR演算子で結合される検索語およびアクセス権限ごとに索引リスト格納部220bを走査して、転置索引により参照される文書識別値に対応する文書のタイトル、格納場所などの情報を抽出する。抽出したデータは、検索制御部212に送付され、検索制御部212からキャッシュ制御部218および検索結果作成部214に送付され、キャッシュメモリ222への登録処理および検索結果が作成される。
検索結果作成部214は、キャッシュ内容または索引検索の結果を、複数の検索結果がある場合、検索要求に対応して和集合を計算し、検索結果集合を作成する。その後、文書検索部206は、作成された検索結果を、ネットワーク・アダプタ202からネットワーク108を介して検索要求の発行元に返却し、本実施形態のセキュア検索の一連のトランザクションが終了する。
以上の処理において、検索サーバ110は、キャッシュ管理部218を介して上述した検索式A、検索式B、または検索式Aおよび検索式Bの過去検索結果を、検索式Aおよび検索式Bのhash値をそれぞれキャッシュ索引として登録することが可能となる。このため、例えば、キャッシュ管理部218は、過去に検索を実行したユーザが帰属される同一グループ内で、同一の検索式を与える検索要求を受領した場合、同一グループからの検索要求に対してキャッシュヒットを生成させることが可能となる。この場合、ユーザがプライベート・レベルでの検索を要しない場合、まったく集合演算を実行することなくセキュア検索が可能となる。また、プライベート・レベルまで含めたセキュア検索を実行する場合でも、集合演算は、たかだか1回まで削減でき、この集合演算は、グループ階層の増加に関わらず、キャッシュヒット確率およびプライベート・レベルの検索結果の要否にのみに依存する。
本実施形態では、キャッシュヒットの確率は、特定のグループに帰属されるユーザが増加すればするほど高まり、またグループ階層の増加に関わらずキャッシュ内容として、包含関係のみに関連した検索結果が登録されている。このため、本実施形態では、ユーザ数の増加やグループ階層の増加に依存することなく、全文検索を使用する文書検索システム100の検索効率を著しく改善でき、かつスケーラビリティを保証することが可能となる。
図3は、本実施形態のユーザのグループ階層構造300の実施形態を示す。図3に示すように本実施形態のグループ階層構造300では、特定のユーザ、例えばUA322は、グループG(GB)320に帰属され、さらにGB320が、グループA(GA)310に帰属されている。一方、ユーザD(UD)332、UE334は、グループC(GC)330に帰属され、GC330がGA310に帰属されている。
GB320およびGC330とは、階層構造的には関連性を有しないが、GB320およびGC330は、さらに上位階層のグループであるGA310のメンバを構成する。図3に示したグループ階層構造300の階層構造は、UA322~UC326、UD332、UE334の階層がアクセス権限の最も狭いプライベート・レベルの階層であり、GB320、GC330がご同一のグループに帰属される複数のユーザにアクセス権限を認めるドメイン・レベルの階層である。
さらに、GA310は、最もアクセス権限を広く認めるオープンドメイン・レベルの階層である。オープンドメイン・レベルであるGA310に割当てられる文書は、GB320、GC330のいずれのドメインからでも、そのアクセス権限に基づいてアクセスすることが可能とされている。一方、ドメイン・レベルの文書は、各ドメインに帰属されるユーザしか、アクセスできないアクセス権限として割当てられ、プライベート・レベルの文書は、原則的には、当該ユーザのみがアクセスすることができるものとしてセキュア検索が可能とされている。
なお、図3に示したグループ階層構造300は、本実施形態のコンテキストでは、検索サーバ110ではなく、ユーザ管理サーバ120が一括して管理し、検索サーバ110が、検索要求を受領してオンザフライにアクセス権限をユーザ情報としてユーザ管理サーバ120から受領する。このため、セキュリティ階層設定と、検索処理とは完全に分離することができ、文書検索システム100の設置語のユーザのアクセス権限変更や階層構造変更は、完全に検索サーバとは分離して設定可能となり、検索サーバ110の索引付処理や検索処理には影響を与えることはない。
図4は、本実施形態の検索サーバ110が管理する全文索引400の実施形態を示す。全文索引400は、いわゆる転置索引として構成されており、検索サーバ110が文書から抽出した単語と、当該単語を含む文書の文書識別値とが、特定の単語ごとにレコードとして構成されている。その他、図示した全文索引400では、単語と同レベルでアクセス権限を処理するため、アクセス権限索引も、単語を登録するフィールド410に登録されている。例えば、単語「ibm」は、フィールド420に示されるように、文書1、文書2、文書4、…に出現し、単語「patent」は、文書2、文書3、文書4、…に出現しているのが示されている。
また、フィールド410には、文書に対して設定されたアクセス権限が、転置索引として追加されており、例えば、acl:UAとしてユーザUAについてプライベート・レベルでアクセスできる文書が、文書1、文書4、…であることが示されている。また、フィールド410には、acl:GXとして、グループXに帰属されるユーザがアクセスできる文書が、フィールド420において文書3、文書4…であることが索引付けされている。フィールド410に含まれる単語は、検索要求に含まれる検索語として使用され、図示した実施形態では、アクセス権限も検索語と同レベルで検索要求に含まれる。なお、図4に示した転置索引には、文書識別値の他、単語の出現位置を対応付けて登録しておくことができ、少なくとも単語と、文書識別値とが対応付けられている限り、その実装形式には限定はない。
ボックス430には、本実施形態で、索引検索実行部216が実行する場合に使用する結合検索式、検索結果、および検索結果をキャッシュする場合のキャッシュ索引生成処理の実施形態を示す。ボックス430内に示された検索要求は、グループGXに属するユーザUAが、自己のプライベート・レベルでの文書検索も含むセキュア検索を要求する場合の実施形態である。ユーザUAは、端末装置102から、自己のユーザID、パスワードなどを入力して検索サーバ110にログオンし、検索要求を、例えば、検索語=ibmとして検索サーバ110に送付する。その後、検索制御部212は、受領した検索式と、包含関係式とを合成する。
説明する実施形態では、検索制御部212がキャッシュ管理部218からキャッシュミスヒットの通知を受け、結合検索式索引検索実行部216の索引検索を説明する。検索サーバ110は、キャッシュミスヒットであると判断した場合、検索制御部212が生成した、「query= ibm AND (acl:UA IN acl:GX)」を修正し、IN演算子を、SQLなどの標準演算子であるOR演算子に修正し、検索式「query=ibm AND (acl:UA OR acl:GX)」を生成する。ボックス430に示した実施形態では、さらに、索引検索実行部216は、queryA=ibm AND (acl:UA)およびqueryB=ibm AND (acl:GX)を生成し、独立した全文索引検索を実行する。なおこれらの検索は、順序的に実行されてもよく、また並列検索が行われてもよい。上述したqueryAは、プライベート・レベルの検索式であり、queryBが、共用レベルの検索式である。
図4に示した実施形態では、queryAで、検索語=ibmを含む文書が文書1、文書2、文書4であり、ユーザUAのアクセス権限が文書1および文書4を許容しているので、検索結果Aとして、{文書1、文書4}が生成される。また、グループXのアクセス権限は、文書3、文書4を許容しているので、queryBの検索結果Bは、{文書4}が返される。検索制御部212は、各検索結果A、Bを、特定の目的に応じて、それぞれキャッシュメモリ222に格納する。その際、使用したqueryA、queryBの情報を使用してhash値を計算し、キャッシュ索引とする。さらに検索制御部212は、検索結果A、Bを受領して和集合を生成させ、重複を排除して検索結果={文書1、文書4}を生成する。
キャッシュ索引を生成するためのhash計算は、hash(ibm+AND+acl:UA)として検索式全体を対象とすることもできるし、hash(ibm)+hash(AND)+hash(acl:UA)として生成することもでき、検索式とキャッシュ内容とを対応付けすることができる限り、いかなるhash計算アルゴリズムでも使用することができる。なお、ハッシュ関数としては、SHA-1、SHA-2、MD-2、MD-4、MD-5どのこれまで知られたいかなるハッシュ関数でも使用することができる。
上述したキャッシュ索引生成処理により、少なくともグループXに帰属する全ユーザが同一の検索語を使用して検索要求を発行する場合、プライベート・レベルを除く検索結果のキャッシュ索引は、hash(ibm+AND+acl:GX)となるので、グループXのユーザは、キャッシュ索引hash(ibm+AND+acl:GX)に対応付けられるキャッシュ内容(検索結果)にキャッシュヒットを発生させることができる。一方、プライベート・レベルについてみれば、グループXのユーザMが同一の検索語を発行したとしても、登録されたキャッシュ索引は、hash(ibm+AND+acl:UA)であり、キャッシュ管理部218が生成するhash値は、hash(ibm+AND+acl:UM)なので、キャッシュミスヒットが発生し、プライベート・レベルのセキュリティが確保できることが理解される。
図5は、検索結果をキャッシュする場合の、キャッシュ索引生成処理500を比較した図である。従来のキャッシュ索引生成処理は、ボックス510に示されるように、検索式に含まれる全情報を使用し、全情報をhashする。なお、図5では、hash計算について、hash(ibm, acl:GX, in, acl:GY)として記述するが、図5では、hash計算に使用するデータを例示する目的であり、hash値は、hash計算に使用するべき情報またはhash値をどのように使用して計算することができる。図5に示すように、同一のユーザが同一の検索語および演算子を使用した検索要求でなければキャッシュヒットは発生しない。一方、本実施形態のキャッシュ索引生成処理は、ボックス520で示されるように、ドメイン・レベルでのキャッシュ項目の共有化を行うため、検索式に含まれるプライベート・レベルのアクセス権限に関連する情報を除いた情報を使用してhash値を生成してキャッシュ索引とする。
なお、本実施形態で、ユーザがプライベート・レベルでの検索を要求する場合、プライベート・レベルに関連する情報のみを含む検索式が生成され、hash値が生成されて、キャッシュメモリ222にキャッシュ索引とともにその検索結果が、キャッシュされる。
図6は、本実施形態で、キャッシュメモリ222内に生成されるデータ構造600の実施形態を示す。データ構造600は、キャッシュ索引を登録するフィールド610と、キャッシュ索引により索引付けされるキャッシュ内容(検索結果)とが対応づけれたレコードを含んで生成されている。キャッシュ管理部218は、キャッシュ索引を検索し、ハッシュ値が一致するレコードのキャッシュ内容を、検索結果として検索制御部212に返すことで検索処理の高速化を達成している。
キャッシュ索引を登録するフィールド610は、検索制御部212が生成した結合検索式が含む検索語(アクセス権限を含む)の中から、プライベート・レベルに関連する情報を除いた検索式のハッシュ値が登録されていて、グループ単位でのキャッシュヒットを達成させている。また、キャッシュ内容は、すでに検索された共用レベルでの検索結果またたプライベート・レベルの検索結果が、フィールド620内に、例えば「DOC(ibm) in GX ∪ DOC(ibm) in GY」などとして登録されている。共用レベルの検索結果およびプライベート・レベルの検索結果は、フィールド610に示されるように、キャッシュ索引で識別されている。なお、キャッシュ内容としては、検索結果の実データを登録しておくこともできるし、キャッシュ容量を効率的に使用することができるように、検索結果の実データを参照させる実アドレス、仮想アドレス、絶対パス名、URI、URLなどを登録させておくことができる。
図7は、本実施形態の検索サーバ110が実行する、共用レベルについて検索を実行する場合の文書検索処理のフローチャートを示す。図7の処理は、ステップS700から開始し、ステップS701で、ログオンしたユーザが入力した検索語を含む検索式を取得する。説明する実施形態では、query=ibmが取得される。また、ユーザが検索式としてibm AND patentを入力した場合、query=ibm AND patentが取得される。ステップS702では、ユーザのアクセス権限をユーザ情報としてユーザ管理サーバ120から取得する。ユーザ情報は、ログオンしたユーザのユーザIDなどにより照会されたユーザのプライベート・レベル、ドメイン・レベル、オープンドメイン・レベルなどのアクセス権限を含む情報としてユーザ管理データベース120から取得することができる。
ステップS703では、取得したユーザの階層レベルごとの包含関係を参照して、例えば、包含関係式を、「acl:UA IN GX IN GY」などとして設定し、包含関係式と、ユーザ入力された検索式、例えば「ibm」や、「ibm AND patent」とをAANd演算子で結合し、結合検索式として、query={ibm AND (acl:UA IN GX IN GY)}またはquery={(ibm AND Patent) AND (acl:UA IN GX IN GY)}を生成する。
さらに、ステップS703では、上述した結合検索式をキャッシュ管理部218に送付し、包含関係式から、ユーザのプライベート・レベルでのアクセス権限に対応する検索語を除いた情報から共用レベルについての検索式について、hash値、hash (ibm, and, in, GX, in, GY)を計算して、キャッシュ索引を生成する。ステップS704では、キャッシュ管理部218が、キャッシュメモリ222のキャッシュ索引を検索し、キャッシュヒットか否かを判断する。
ステップS704でキャッシュヒットと判断された場合(yes)、処理をステップS705に進め、キャッシュメモリからhash値に対応するキャッシュ内容を読込んで検索結果を取得し、ステップS706で取得した内容を検索結果作成部214に送付して検索結果を作成し、検索要求の発行元にネットワーク108を介して送付し、ステップS712で、一連のトランザクションを終了する。
一方、ステップS704でキャッシュミスヒットと判断された場合(no)、処理をステップS707に分岐させ、索引検索実行部216において共用レベルの検索式を作成する。この処理は、例えば、結合検索式中の包含関係式内に含まれる、プライベート・レベルのアクセス権限および直後のIN演算子までを分離することにより行うことができる。その後、結合検索式中のIN演算子を、OR演算子に変換し、通常のSQLパーザが処理可能な結合検索式に修正する。その後、ステップS708でSQLなどを使用して文書データベース220の索引リスト格納部222bを走査して文書の全文検索をOR演算子単位で実行する。
ステップS709では、キャッシュメモリ222の容量を検査し、キャッシュメモリ222の容量が超過する場合(yes)、ステップS710でキャッシュ項目のうち不要なレコードを削除する。キャッシュ項目の削除は、種々の方法および基準を使用して実行することができ、アクセス頻度が一定のしきい値よりも低いことを基準として採用することもできるし、タイムスタンプなど、最新にアクセスされた時刻が古いものを削除するなど、これまでキャッシュ項目の更新のために利用されている削除方法を適宜使用して実行することができる。また、ステップS709の判断で、キャッシュメモリの容量が超過していないと判断された場合(no)、直ちに処理をステップS711に分岐させる。
ステップS711では、IN演算子を含む検索式からキャッシュ索引を生成し、取得した検索結果をキャッシュ索引に対応付けてキャッシュメモリ222のレコードとして登録し、キャッシュ項目を更新する。その後、各検索結果を、検索結果作成部214に送付して和集合を生成して検索結果を生成させる。なお、包含関係式から分離された、プライベート・レベルの検索である、{(ibm AND Patent) AND (acl:UA)}に対応する検索を実行する実施形態については、図8の処理で説明する。
図8は、図7で説明した、共用レベルの他、プライベート・レベルでアクセス可能な文書を含む検索結果を生成する文書検索処理のフローチャートである。なお、図8の実施形態では、プライベート・レベルはキャッシュヒットしなかったが、共用レベルについては、キャッシュヒットが発生したものとして説明する。
図8に示した実施形態の処理は、概ね図7で説明した処理と共通するが、図8で説明する実施形態では、共用レベルの検索結果については、キャッシュヒットが発生し、ステップS805でキャッシュ内容を読込み、ステップS806に渡される。一方、プライベート・レベルについてはステップS804でキャッシュヒットせず(no)、ステップS808で、包含関係式から分離した(acl:UA IN)からプライベート・レベルでの検索式{ibm AND (acl:UA)}を作成し、ステップS809で、プライベート・レベルでの検索式{ibm AND (acl:UA)}を使用して独立して検索を実行する。
ステップS810で、キャッシュ容量が超過しているかを判断し、超過していなければ(no)、ステップS812で、プライベート・レベルでの検索結果を、そのhash値をキャッシュ索引とし、キャッシュ項目として対応付けてキャッシュメモリ222に格納する。また、ステップS810の判断でキャッシュ容量釣果と判断された場合(yes)、ステップS810で、キャッシュのうち不要なレコードを削除し、ステップS812でキャッシュする。
その後、図8の処理では、処理をステップS806に処理を分岐させ、プライベート・レベルでの検索結果を取得し、予めバッファリングされていた共用レベルの検索結果を、検索結果作成部214において両検索結果の和集合として検索結果集合を作成し、ステップS807で、最終的な検索結果を検索要求の発行元に返す処理を実行する。
図8に示した文書検索処理では、結合検索式にプライベート・レベルでのアクセス権限が含まれている場合にも効率的にユーザ入力を利用するセキュリティ検索が可能となる。また、プライベート・レベルのアクセス権限の検索結果を、ドメイン・レベルの検索結果と区別してキャッシュ項目とすることで、プライベート・レベルでのセキュア検索要求を実行する場合でも、キャッシュヒットが発生すれば索引検索を全く実行することなく各キャッシュ内容の和集合を生成することが可能となり、プライベート・レベルでのアクセス権限を含めた全検索結果をキャッシュする場合に比較して大きな処理負荷を生じることなく、同一の検索結果を生成させることができる。
さらに、特定のユーザBのグループ帰属が変更された場合でも、ユーザBは、すでにキャッシュされた変更先のドメイン・レベルでの検索結果をキャッシュメモリ222から検索でき、一方、ユーザBのプライベート・レベルでの検索結果がキャッシュされている場合、全文索引検索を再実行させることなく、ユーザのグループ帰属変更に対応することができる。
なお、キャッシュメモリ222のキャッシュ項目は、プライベート・レベル、ドメイン・レベル、またはオープンドメイン・レベルでのアクセス権限が修正される場合にはクリアされ、新規なアクセス権限設定の下でのセキュア検索が行われる。また、キャッシュメモリ222のキャッシュ項目のリフレッシュまたは同期化などの処理のため、これまで知られたいかなる方法でも使用することができる。
図9は、本実施形態のセキュア文書検索によるOR処理の削減およびキャッシュ項目の利用性の改善を、プライベート・レベルでの検索結果を含ませる図8の処理についての結合検索式900を使用して説明する図である。結合検索式の検索を実行した段階で、まったくキャッシュヒットしない場合、結合検索式910で示されるように、OR演算は、プライベート・レベル、ドメイン・レベル、オープンドメイン・レベルの3階層について行われる。このOR演算は、階層レベルが増加するに連れて増加し、セキュア検索の検索効率は、文書数の他、階層数にも依存して計算オーバーヘッドが増大することが示される。
一方、本実施形態によれば、少なくともプライベート・レベル以上の階層レベルでの検索結果がキャッシュされているので、結合検索式920で示すように、プライベート・レベルでの検索結果と、キャッシュされた検索結果とをOR演算することで、結合検索式910と同一の検索結果が生成でき、検索効率をはるかに改善することが可能となる。
さらに他の実施形態でプライベート・レベルでの検索結果も別途キャッシュ索引を生成してキャッシュする実施形態では、結合検索式930で示すようにキャッシュ項目同士のOR演算を実行することで結合検索式910と同一の結果を生成することができるので、包含関係を含めて結合検索式を生成する処理が追加されたとしても、キャッシュ項目が増加すればするほど全文索引を使用する検索処理が大きく削減でき、検索サーバ110の検索処理は大きく改善される。
図10は、本実施形態の文書検索システム100による検索効率改善の機能を説明した図である。図10に示すように、従来の検索結果のキャッシュ方式では、同一のユーザが同一の検索式を入力した場合を除き、キャッシュヒットは生成されず、キャッシュヒットは、領域1010で示す程度の著しく低い確率となる。一方、本実施形態では、図10に示す例示的な実施形態においてもキャッシュヒットは、領域1010に比較して少なくともユーザ数分だけ増加し、この結果、キャッシュヒットが発生する確率は、領域1020で示すように、少なくとも3倍に増加する。
さらに、キャッシュヒットは発生する確率は、図10から示されるように、ドメイン・レベルに帰属されるユーザ数が増加するにつれて線形的に増加することになり、ユーザ数の増加が逆に検索効率を向上させることが可能となる。加えて、本実施形態では、階層レベルごとのOR演算を、0または1まで削減することに加え、キャッシュメモリを併用することが可能となり、本実施形態によれば、全文索引を使用するセキュア検索の検索効率を著しく改善することが可能となる。
これまで説明したように、本発明によれば、全文検索を使用するセキュア検索の検索効率を著しく改善することが可能な文書検索システム、情報処理装置、文書検索方法およびプログラムを提供することが可能となる。
本実施形態の上記機能は、C、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Ruby、PYTHONなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、当該プログラムは、ハードディスク装置、CD-ROM、MO、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
100…文書検索システム、102、104、106…端末装置、108…ネットワーク、110…検索サーバ、120…ユーザ管理サーバ、200…機能ブロック(検索サーバ)、202…ネットワーク・アダプタ、204…データベース管理部、206…文書検索部、208…ユーザ情報取得部、210…検索式取得部、212…検索制御部、214…検索結果作成部、216…索引検索実行部、218…キャッシュ管理部、220…文書データベース、222…キャッシュメモリ
Claims (20)
- 文書を検索するための情報処理装置であって、前記情報処理装置は、
前記文書に対するアクセス権限を含ませた索引を生成して、前記文書とともに管理するデータベース管理部と、
前記情報処理装置にアクセスする前記アクセス権限をユーザ情報として取得するユーザ情報取得部と、
前記ユーザ情報および検索式を含む検索要求を取得し、前記ユーザ情報から検索要求の発行元のアクセス権限についての包含関係を指定する演算子を含む包含関係式を前記検索式に結合して結合検索式を生成し、前記結合検索式から、複数のユーザ識別値を含むドメイン内で前記複数のユーザ識別値の下に共有できる共用レベルの検索結果を取得する文書検索部と、
前記共用レベルであることを識別させたキャッシュ項目として前記共用レベルの検索結果を登録するキャッシュ管理部と、
前記共用レベルのキャッシュ項目がない場合に前記結合検索式に基づいて索引検索を実行し、前記共用レベルの検索結果を生成する索引検索実行部と
を含む、情報処理装置。 - 前記文書検索部は、
前記検索要求から前記検索式を取得する検索式取得部と、
前記検索式取得部が取得した前記検索式と、前記ユーザ情報から生成した前記包含関係式を作成し、前記検索式に結合して前記結合検索式を生成し、前記結合検索式を使用して前記キャッシュ管理部および前記索引検索実行部の検索を制御する検索制御部と、
前記検索要求に対応する検索結果を取得し、前記検索要求の発行元に送付させる、検索結果作成部と
を含む、請求項1に記載の情報処置装置。 - 前記アクセス権限は、セキュア検索のため、ユーザのみがアクセスできるプライベート・レベル、複数の前記ユーザを含むドメイン・レベル、および複数のドメイン・レベルを含むオープンドメイン・レベルごとにそれぞれ設定される、請求項1に記載の情報処理装置。
- 前記索引は、転置索引として生成された全文索引である、請求項3に記載の情報処理装置。
- さらに前記文書および前記転置索引を管理する文書データベースと、前記検索結果をキャッシュするキャッシュメモリとを含み、前記キャッシュメモリは、前記共用レベルであることを示すキャッシュ索引と前記共用レベルの検索結果とを対応付け、前駆プライベート・レベルではキャッシュヒットしない前記キャッシュ項目として登録する、請求項4に記載の情報処理装置。
- ネットワークを介して文書を検索するための文書検索システムであって、前記文書検索システムは、
ユーザ識別値を使用して文書検索のための検索式を含む検索要求を前記ネットワークを介して送付する端末装置と、
前記端末装置からの前記検索要求を受領して文書検索を実行し、検索結果を前記端末装置に返す検索サーバとを含み、前記検索サーバは、
前記文書に対するアクセス権限を含ませた索引を生成して、前記文書とともに管理するデータベース管理部と、
前記情報処理装置にアクセスする前記アクセス権限をユーザ情報として取得するユーザ情報取得部と、
前記ユーザ情報および検索式を含む検索要求を取得し、前記ユーザ情報から検索要求の発行元のアクセス権限についての包含関係を指定する演算子を含む包含関係式を前記検索式に結合して結合検索式を生成し、前記結合検索式から、複数のユーザ識別値を含むドメイン内で前記複数のユーザ識別値の下に共有できる共用レベルの検索結果を取得する文書検索部と、
前記共用レベルであることを識別させたキャッシュ項目として前記共用レベルの検索結果を登録するキャッシュ管理部と、
前記共用レベルのキャッシュ項目がない場合に前記結合検索式に基づいて索引検索を実行し、前記共用レベルの検索結果を生成する索引検索実行部と
を含む、文書検索システム。 - 前記文書検索部は、
前記検索要求から前記検索式を取得する検索式取得部と、
前記検索式取得部が取得した前記検索式と、前記ユーザ情報から生成した前記包含関係式を作成し、前記検索式に結合して前記結合検索式を生成し、前記結合検索式を使用して前記キャッシュ管理部および前記索引検索実行部の検索を制御する検索制御部と、
前記検索要求に対応する検索結果を取得し、前記検索要求の発行元に送付させる、検索結果作成部と
を含む、請求項6に記載の文書検索システム。 - 前記ネットワークを介して接続され、前記ユーザ識別値に関連する前記アクセス権限を管理するユーザ管理サーバを含み、前記ユーザ管理サーバは、前記アクセス権限を、セキュア検索のため、ユーザのみがアクセスできるプライベート・レベル、複数の前記ユーザを含むドメイン・レベル、および複数のドメイン・レベルを含むオープンドメイン・レベルごとにそれぞれ管理する、請求項7に記載の文書検索システム。
- 前記索引は、転置索引として生成された全文索引である、請求項8に記載の文書検索システム。
- さらに前記文書および前記転置索引を管理する文書データベースと、前記検索結果をキャッシュするキャッシュメモリとを含み、前記キャッシュメモリは、前記共用レベルであることを示すキャッシュ索引と前記共用レベルの検索結果とを対応付け、前記プライベート・レベルではキャッシュヒットしない前記キャッシュ項目として登録する、請求項9に記載の文書検索システム。
- 文書を検索するための情報処理装置が実行する文書検索方法であって、前記文書検索方法は、
前記文書に対する前記アクセス権限を含ませた索引を生成して、前記文書とともに管理するステップと、
前記情報処理装置にアクセスするアクセス権限をユーザ情報として取得するステップと、
前記ユーザ情報および検索式を含む検索要求を取得し、前記ユーザ情報から検索要求の発行元のアクセス権限についての包含関係を指定する演算子を含む包含関係式を生成するステップと、
前記包含関係式を前記検索式に結合して結合検索式を生成し、前記結合検索式を使用して複数のユーザ識別値を含むドメイン内で前記複数のユーザ識別値の下で共用できる共用レベルの文書を検索するステップと、
共用レベルの検索結果であることを識別するキャッシュ索引を生成するステップと、
前記共用レベルの検索結果を前記キャッシュ索引と対応付けてキャッシュ項目として登録するステップと、
少なくとも前に共用レベルの検索結果を含む検索結果集合を生成するステップと
を実行する、コンピュータ実行可能な文書検索方法。 - 前記検索するステップは、
前記結合検索式から生成される、前記共用レベルの検索結果を生成するための検索式からhash値を生成するステップと、
前記hash値を使用して前記キャッシュ項目を検索するステップと、
前記キャッシュ項目の検索がキャッシュヒットを与える場合、前記キャッシュ項目に登録された検索済結果を前記共用レベルの検索結果とし、前記キャッシュ項目の検索がキャッシュミスを与える場合に、前記結合検索式に基づいて索引検索を実行し、前記共用レベルの検索結果とするステップと
を含む、請求項11に記載の文書検索方法。 - 前記検索するステップは、さらに
前記結合検索式から生成される、前記複数のユーザ識別値が共用できないプライベート・レベルの検索結果を生成するための検索式を生成するステップと、
前記プライベート・レベルの検索結果を生成するための検索式を使用して前記プライベート・レベルでの検索結果を取得するステップと、
前記プライベート・レベルの検索結果を、前記プライベート・レベルの検索結果を生成するための検索式のhash値をキャッシュ索引として、前記プライベート・レベルの検索結果に対応付けてキャッシュ項目として登録するステップと
を含む、請求項12に記載の文書検索方法。 - 前記検索結果集合を生成するステップは、前記共用レベルおよび前記プライベート・レベルについての各検索結果から和集合を生成するステップを含む、請求項13に記載の文書検索方法。
- 前記アクセス権限は、セキュア検索のため、ユーザのみがアクセスできるプライベート・レベル、複数の前記ユーザを含むドメイン・レベル、および複数のドメイン・レベルを含むオープンドメイン・レベルごとにそれぞれ設定され、さらに、前記索引は、転置索引として生成された全文索引である、請求項14に記載の文書検索方法。
- コンピュータが実行する文書検索方法のためのコンピュータ実行可能なプログラムであって、前記プログラムは、コンピュータが、
前記文書に対する前記アクセス権限を含ませた索引を生成して、前記文書とともに管理するステップと、
前記コンピュータにアクセスするアクセス権限をユーザ情報として取得するステップと、
前記ユーザ情報および検索式を含む検索要求を取得し、前記ユーザ情報から検索要求の発行元のアクセス権限についての包含関係を指定する演算子を含む包含関係式を生成するステップと、
前記包含関係式を前記検索式に結合して結合検索式を生成し、前記結合検索式を使用して複数のユーザ識別値を含むドメイン内で前記複数のユーザ識別値の下で共用できる共用レベルの文書を検索するステップと、
共有レベルの検索結果であることを識別するキャッシュ索引を生成するステップと、
前記共用レベルの検索結果を前記キャッシュ索引と対応付けてキャッシュ項目として登録するステップと、
少なくとも前に共用レベルの検索結果を含む検索結果集合を生成するステップと
を実行するための、コンピュータ実行可能なプログラム。 - 前記検索するステップは、
前記結合検索式から生成される、前記共用レベルの検索結果を生成するための検索式からhash値を生成するステップと、
前記hash値を使用して前記キャッシュ項目を検索するステップと、
前記キャッシュ項目の検索がキャッシュヒットを与える場合、前記キャッシュ項目に登録された検索済結果を前記共用レベルの検索結果とし、前記キャッシュ項目の検索がキャッシュミスを与える場合に、前記結合検索式に基づいて索引検索を実行し、前記共用レベルの検索結果とするステップと
を含む、請求項18に記載のプログラム。 - 前記検索するステップは、さらに
前記結合検索式から生成される、前記複数のユーザ識別値が共用できないプライベート・レベルの検索結果を生成するための検索式を生成するステップと、
前記プライベート・レベルの検索結果を生成するための検索式を使用して前記プライベート・レベルでの検索結果を取得するステップと、
前記プライベート・レベルの検索結果を、前記プライベート・レベルの検索結果を生成するための検索式のhash値をキャッシュ索引として、前記プライベート・レベルの検索結果に対応付けてキャッシュ項目として登録するステップと
を含む、請求項17に記載のプログラム。 - 前記検索結果集合を生成するステップは、前記共用レベルおよび前記プライベート・レベルについての各検索結果から和集合を生成するステップを含み、前記アクセス権限は、セキュア検索のため、ユーザのみがアクセスできるプライベート・レベル、複数の前記ユーザを含むドメイン・レベル、および複数のドメイン・レベルを含むオープンドメイン・レベルごとにそれぞれ設定され、さらに、前記索引は、転置索引として生成された全文索引である、請求項18に記載のプログラム。
- 文書を検索するための情報処理装置であって、前記情報処理装置は、
前記文書に対するアクセス権限を含ませた索引を生成して、前記文書とともに管理するデータベース管理部と、
前記情報処理装置にアクセスするユーザ識別値について前記アクセス権限をユーザ情報として取得するユーザ情報取得部と、
前記検索要求から検索式を取得する検索式取得部と、
前記検索式取得部が取得した前記検索式と、前記ユーザ情報から生成した検索要求の発行元のアクセス権限についての包含関係を指定する演算子を含む前記包含関係式を作成し、前記検索式に結合して前記結合検索式を生成し、前記結合検索式を使用して検索を制御し、複数のユーザ識別値を含むドメイン内で前記複数のユーザ識別値の下で共用できる共用レベルの検索結果を取得する検索制御部と、
前記検索要求に対応する検索結果を取得し、前記検索要求の発行元に送付させる検索結果作成部とを含む文書検索部と、
前記共用レベルのキャッシュ項目として前記共用レベルの検索結果と対応付けて登録するキャッシュ管理部と、
前記共用レベルのキャッシュ項目がない場合に前記結合検索式に基づいて索引検索を実行し、前記共用レベルの検索結果を生成する索引検索実行部と、
前記文書および前記転置索引を管理する文書データベースと、
前記共有レベルの検索結果をキャッシュするキャッシュメモリと、
を含み、
前記アクセス権限は、セキュア検索のため、ユーザのみがアクセスできるプライベート・レベル、複数の前記ユーザを含むドメイン・レベル、および複数のドメイン・レベルを含むオープンドメイン・レベルごとにそれぞれ設定され、前記索引は、転置索引として生成された全文索引であり、前記キャッシュメモリは、前記共用レベルであることを示すキャッシュ索引と前記共用レベルの検索結果とを対応付け、前駆プライベート・レベルではキャッシュヒットしない前記キャッシュ項目として登録する、情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09819052.3A EP2352103B1 (en) | 2008-10-08 | 2009-08-14 | Information processing apparatus, document retrieval system, document retrieval method, and program |
US13/121,400 US8612466B2 (en) | 2008-10-08 | 2009-08-14 | Information processing apparatus, document retrieval system, document retrieval method, and program |
JP2010532856A JP5419886B2 (ja) | 2008-10-08 | 2009-08-14 | 情報処理装置、文書検索システム、文書検索方法およびプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008261481 | 2008-10-08 | ||
JP2008-261481 | 2008-10-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010041516A1 true WO2010041516A1 (ja) | 2010-04-15 |
Family
ID=42100472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/064360 WO2010041516A1 (ja) | 2008-10-08 | 2009-08-14 | 情報処理装置、文書検索システム、文書検索方法およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8612466B2 (ja) |
EP (1) | EP2352103B1 (ja) |
JP (1) | JP5419886B2 (ja) |
WO (1) | WO2010041516A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014092105A1 (ja) * | 2012-12-12 | 2014-06-19 | 日本電気株式会社 | データベース検索装置、データベース検索方法及びプログラム |
CN110008740A (zh) * | 2019-03-05 | 2019-07-12 | 天津字节跳动科技有限公司 | 一种文档访问权限的处理方法、装置、介质和电子设备 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8204900B2 (en) * | 2009-05-21 | 2012-06-19 | Bank Of America Corporation | Metrics library |
US8768921B2 (en) * | 2011-10-20 | 2014-07-01 | International Business Machines Corporation | Computer-implemented information reuse |
JP2013205904A (ja) * | 2012-03-27 | 2013-10-07 | Toshiba Corp | サーバ装置、アノテーションシステム、方法、及びプログラム |
CN103678405B (zh) * | 2012-09-21 | 2016-12-21 | 阿里巴巴集团控股有限公司 | 邮件索引建立方法及系统、邮件搜索方法及系统 |
US9009197B2 (en) * | 2012-11-05 | 2015-04-14 | Unified Compliance Framework (Network Frontiers) | Methods and systems for a compliance framework database schema |
US9542377B2 (en) | 2013-05-06 | 2017-01-10 | Dropbox, Inc. | Note browser |
US9069986B2 (en) | 2013-06-18 | 2015-06-30 | International Business Machines Corporation | Providing access control for public and private document fields |
CN104424199B (zh) * | 2013-08-21 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 搜索方法和装置 |
US9582160B2 (en) | 2013-11-14 | 2017-02-28 | Apple Inc. | Semi-automatic organic layout for media streams |
US9489104B2 (en) | 2013-11-14 | 2016-11-08 | Apple Inc. | Viewable frame identification |
US20150134661A1 (en) * | 2013-11-14 | 2015-05-14 | Apple Inc. | Multi-Source Media Aggregation |
US12099936B2 (en) * | 2014-03-26 | 2024-09-24 | Unanimous A. I., Inc. | Systems and methods for curating an optimized population of networked forecasting participants from a baseline population |
US9667754B2 (en) * | 2014-08-11 | 2017-05-30 | Oracle International Corporation | Data structure and associated management routines for TCP control block (TCB) table in network stacks |
US9384357B2 (en) * | 2014-10-01 | 2016-07-05 | Quixey, Inc. | Providing application privacy information |
US9940393B2 (en) * | 2015-06-03 | 2018-04-10 | International Business Machines Corporation | Electronic personal assistant privacy |
US10691757B1 (en) * | 2016-09-29 | 2020-06-23 | EMC IP Holding Company LLC | Method and system for cached document search |
US10606902B1 (en) | 2016-09-29 | 2020-03-31 | EMC IP Holding Company LLC | Method and system for cached early-binding document search |
US11157447B2 (en) | 2018-08-05 | 2021-10-26 | Rapid7, Inc. | File system search proxying |
JP7155766B2 (ja) * | 2018-09-05 | 2022-10-19 | 富士フイルムビジネスイノベーション株式会社 | 管理装置及びプログラム |
CN109461092B (zh) * | 2018-09-14 | 2022-02-11 | 广东电网有限责任公司 | 一种站线变户关联关系自动生成系统与方法 |
US11875376B2 (en) | 2019-06-17 | 2024-01-16 | Optimizely North America Inc. | Minimizing impact of experimental content delivery on computing devices |
US11532013B2 (en) * | 2019-06-17 | 2022-12-20 | Optimizely, Inc. | Optimized simultaneous use of content experimentation and content caching |
US10769379B1 (en) | 2019-07-01 | 2020-09-08 | Unified Compliance Framework (Network Frontiers) | Automatic compliance tools |
US11386270B2 (en) | 2020-08-27 | 2022-07-12 | Unified Compliance Framework (Network Frontiers) | Automatically identifying multi-word expressions |
KR20220034488A (ko) * | 2020-09-11 | 2022-03-18 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
US20230031040A1 (en) | 2021-07-20 | 2023-02-02 | Unified Compliance Framework (Network Frontiers) | Retrieval interface for content, such as compliance-related content |
US11960544B2 (en) * | 2021-10-28 | 2024-04-16 | International Business Machines Corporation | Accelerating fetching of result sets |
US12067037B1 (en) | 2022-02-28 | 2024-08-20 | Apttus Corporation | System, method, and computer program for performing natural language searches for documents in a database using alternate search suggestions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09325968A (ja) * | 1995-11-17 | 1997-12-16 | Microsoft Corp | 情報検索システム |
JP2001344245A (ja) * | 2000-03-29 | 2001-12-14 | Fujitsu Ltd | 情報処理装置 |
JP2003162441A (ja) * | 2001-11-28 | 2003-06-06 | Oki Electric Ind Co Ltd | 分散ファイル共有システムおよびそのファイルアクセス制御方法 |
JP2004164555A (ja) | 2002-09-17 | 2004-06-10 | Fuji Xerox Co Ltd | 検索装置および方法ならびにそのインデクス構築装置および方法 |
JP2005284608A (ja) | 2004-03-29 | 2005-10-13 | Nec Corp | データ検索システム、データ検索方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199082B1 (en) * | 1995-07-17 | 2001-03-06 | Microsoft Corporation | Method for delivering separate design and content in a multimedia publishing system |
SE506853C2 (sv) * | 1996-06-20 | 1998-02-16 | Anonymity Prot In Sweden Ab | Metod för databearbetning |
US6985948B2 (en) * | 2000-03-29 | 2006-01-10 | Fujitsu Limited | User's right information and keywords input based search query generating means method and apparatus for searching a file |
US7840557B1 (en) * | 2004-05-12 | 2010-11-23 | Google Inc. | Search engine cache control |
US7874013B2 (en) * | 2006-04-10 | 2011-01-18 | Sawteeth, Inc. | Secure and granular index for information retrieval |
US7979458B2 (en) * | 2007-01-16 | 2011-07-12 | Microsoft Corporation | Associating security trimmers with documents in an enterprise search system |
US8099454B2 (en) * | 2007-08-03 | 2012-01-17 | International Business Machines Corporation | Staging a file within a distributed computing system |
US8555378B2 (en) * | 2009-03-11 | 2013-10-08 | Sas Institute Inc. | Authorization caching in a multithreaded object server |
-
2009
- 2009-08-14 WO PCT/JP2009/064360 patent/WO2010041516A1/ja active Application Filing
- 2009-08-14 JP JP2010532856A patent/JP5419886B2/ja not_active Expired - Fee Related
- 2009-08-14 US US13/121,400 patent/US8612466B2/en not_active Expired - Fee Related
- 2009-08-14 EP EP09819052.3A patent/EP2352103B1/en not_active Not-in-force
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09325968A (ja) * | 1995-11-17 | 1997-12-16 | Microsoft Corp | 情報検索システム |
JP2001344245A (ja) * | 2000-03-29 | 2001-12-14 | Fujitsu Ltd | 情報処理装置 |
JP2003162441A (ja) * | 2001-11-28 | 2003-06-06 | Oki Electric Ind Co Ltd | 分散ファイル共有システムおよびそのファイルアクセス制御方法 |
JP2004164555A (ja) | 2002-09-17 | 2004-06-10 | Fuji Xerox Co Ltd | 検索装置および方法ならびにそのインデクス構築装置および方法 |
JP2005284608A (ja) | 2004-03-29 | 2005-10-13 | Nec Corp | データ検索システム、データ検索方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2352103A4 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014092105A1 (ja) * | 2012-12-12 | 2014-06-19 | 日本電気株式会社 | データベース検索装置、データベース検索方法及びプログラム |
US10339140B2 (en) | 2012-12-12 | 2019-07-02 | Nec Corporation | Database search device, database search method, and program |
CN110008740A (zh) * | 2019-03-05 | 2019-07-12 | 天津字节跳动科技有限公司 | 一种文档访问权限的处理方法、装置、介质和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2352103B1 (en) | 2014-07-30 |
JP5419886B2 (ja) | 2014-02-19 |
EP2352103A1 (en) | 2011-08-03 |
JPWO2010041516A1 (ja) | 2012-03-08 |
US20110179075A1 (en) | 2011-07-21 |
US8612466B2 (en) | 2013-12-17 |
EP2352103A4 (en) | 2013-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5419886B2 (ja) | 情報処理装置、文書検索システム、文書検索方法およびプログラム | |
US9769278B2 (en) | Providing local access to managed content | |
US20200137189A1 (en) | Flexible caching | |
US7870392B2 (en) | Digital fingerprinting for management and recovery of data objects | |
JP4685782B2 (ja) | データベースのカラムを暗号化するための方法および装置 | |
US9002811B2 (en) | System, method and program for information processing | |
JP4671332B2 (ja) | ユーザ識別情報を変換するファイルサーバ | |
US8271424B2 (en) | Privacy and confidentiality preserving reporting of URLs | |
US20040078368A1 (en) | Indexing virtual attributes in a directory server system | |
US20130091116A1 (en) | Selecting and presenting search results based on distinct taxonomies | |
JP2005259112A (ja) | 情報処理装置、情報処理方法、情報処理プログラム及び記録媒体、並びに資源管理装置 | |
US8799321B2 (en) | License management apparatus, license management method, and computer readable medium | |
JP2013137740A (ja) | 機密情報識別方法、情報処理装置、およびプログラム | |
US8875222B1 (en) | Efficient XACML access control processing | |
Ananthi et al. | FSS-SDD: fuzzy-based semantic search for secure data discovery from outsourced cloud data | |
CN113377876B (zh) | 基于Domino平台的数据分库处理方法、装置及平台 | |
CN112818038A (zh) | 基于区块链和ipfs组合的数据管理方法及相关设备 | |
US7689584B2 (en) | Hybrid groups | |
US10263970B1 (en) | System, method and architecture for secure sharing of customer intelligence | |
US11954223B2 (en) | Data record search with field level user access control | |
CN116055082B (zh) | 一种基于OpenStack的用户管理方法及管理系统 | |
CN116451277B (zh) | 一种基于共享情况下工业数据安全的保护系统及方法 | |
US20230421559A1 (en) | Utilizing probability data structures to improve access control of documents across geographic regions | |
Li et al. | Application of Mass Data Retrieval Technology Based on Cloud Computing | |
JP2024540941A (ja) | 個人データ保護 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09819052 Country of ref document: EP Kind code of ref document: A1 |
|
DPE2 | Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2010532856 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13121400 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2009819052 Country of ref document: EP |