WO2012132395A1 - 検索装置、検索システム、方法およびプログラム - Google Patents

検索装置、検索システム、方法およびプログラム Download PDF

Info

Publication number
WO2012132395A1
WO2012132395A1 PCT/JP2012/002090 JP2012002090W WO2012132395A1 WO 2012132395 A1 WO2012132395 A1 WO 2012132395A1 JP 2012002090 W JP2012002090 W JP 2012002090W WO 2012132395 A1 WO2012132395 A1 WO 2012132395A1
Authority
WO
WIPO (PCT)
Prior art keywords
identification information
data
information
unit
index file
Prior art date
Application number
PCT/JP2012/002090
Other languages
English (en)
French (fr)
Inventor
則行 高橋
登志夫 道具
Original Assignee
デジタルア-ツ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by デジタルア-ツ株式会社 filed Critical デジタルア-ツ株式会社
Publication of WO2012132395A1 publication Critical patent/WO2012132395A1/ja
Priority to US14/038,701 priority Critical patent/US20140032511A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Definitions

  • the present invention relates to a search device, a search system, a method, and a program.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2005-122702
  • Patent Document 2 Japanese Patent Application Laid-Open No. 9-265420
  • the search engine analyzes the file and creates an index file for the purpose of facilitating file search.
  • the search engine updates the index file every time a file is registered in the file server.
  • the index file is provided as a single database for all files on the file server. Therefore, the update load of the index file increases as the number of files in the file server increases. Accordingly, an object of one aspect of the present invention is to provide a search device, a search system, a method, and a program that can solve the above-described problems. This object is achieved by a combination of features described in the independent claims.
  • the dependent claims define further advantageous specific examples of the present invention.
  • an acquisition unit that acquires extraction target information indicating characteristics of data to be extracted, feature information indicating characteristics of each of a plurality of data, and identification for identifying each of the plurality of data
  • An identification information extraction unit that extracts identification information associated with feature information related to the extraction target information from the plurality of index files with reference to the plurality of index files associated with the information, and identification information extraction
  • a list creation unit that judges whether or not a plurality of the same identification information is included in the plurality of identification information extracted by the unit, and creates an identification information list that does not include the same identification information in duplicate A search device is provided.
  • the feature information may include information indicating features relating to each of a plurality of pieces of data.
  • the search device may further include an index file update unit that updates the index file, and the index file update unit updates the first index file until a predetermined event occurs, When an event occurs, a second index file may be created based on the first index file.
  • the identification information included in the identification information list You may further provide the access information extraction part which extracts the access information matched with the matching identification information from a management file.
  • the search device may further include a plurality of storage devices that store a plurality of data, and a management server that stores a management file and exchanges information with each of the plurality of storage devices via a network.
  • the search device may further include a request receiving unit that receives a search request including extraction target information from a user, and an output unit that presents an identification information list to the user as a search result for the search request.
  • the apparatus includes a client terminal and a server that exchanges information with the client terminal via a network, and the server acquires an extraction target information indicating characteristics of data to be extracted; Referring to a plurality of index files in which identification information for identifying each of a plurality of data and feature information indicating the characteristics of each of the plurality of data are associated with each other, the information is associated with the feature information related to the extraction target information.
  • the identification information extraction unit that extracts the identification information from the plurality of index files, and the transmission unit that transmits the plurality of identification information extracted by the identification information extraction unit to the client terminal. Determine whether multiple pieces of the same identification information are included in the multiple pieces of identification information extracted by the information extraction unit, and duplicate the same identification information It has a list creation section that creates the identification information list does not contain Te, the search system is provided.
  • an acquisition stage for acquiring extraction target information indicating characteristics of data to be extracted, identification information for identifying each of the plurality of data, and characteristics indicating the characteristics of the plurality of data
  • An identification information extraction stage for extracting identification information associated with feature information related to extraction target information from a plurality of index files with reference to a plurality of index files associated with the information;
  • a list creation step of determining whether or not a plurality of the same identification information is included in the plurality of extracted identification information, and creating an identification information list that does not include the same identification information in duplicate Is provided.
  • the method may further comprise an index file update step for updating the index file, the index file update step being predetermined with the step of updating the first index file until a predetermined event occurs. Generating a second index file based on the first index file when the event occurs.
  • a method in which the server provides a service to a client terminal via a network, and the service obtains extraction target information indicating characteristics of data to be extracted Referring to a plurality of index files in which identification information for identifying each of a plurality of data and feature information indicating the characteristics of each of the plurality of data are associated with each other, the information is associated with the feature information related to the extraction target information A plurality of identification information extracted from the plurality of index files, and whether or not the same identification information is included in the plurality of identification information extracted in the extraction step. And a list creation step of creating an identification information list that does not contain duplicate identification information.
  • a program for causing a computer to execute the above method Also provided is a computer-readable medium for storing a program for a search device, which causes the computer to function as the search device or the search system described above.
  • a computer readable medium storing a program is provided, the computer readable medium causing the computer to perform the above method.
  • An example of the system configuration of information processor 100 is shown roughly.
  • An example of the data structure of the update index file 152 is shown schematically.
  • An example of the data structure of the management file 172 is shown schematically.
  • An example of the method of updating an index file is shown roughly.
  • An example of the method of searching data is shown roughly.
  • An example of a method for creating an identification information list will be schematically shown.
  • An example of the system configuration of information processor 700 is shown roughly.
  • An example of the data structure of the update index file 752 is shown schematically.
  • An example of a system configuration of information processor 900 is shown roughly.
  • An example of the data structure of the update index file 952 is shown schematically.
  • An example of the data structure of the update index file 954 is shown schematically.
  • 1 schematically illustrates an exemplary hardware configuration of a computer 1900 according to an embodiment.
  • FIG. 1 schematically shows an example of the system configuration of the information processing apparatus 100.
  • the information processing apparatus 100 may be a search engine or a file management system that receives a search request from a user, creates a list of data files that meet the search condition, and presents the list to the user.
  • the information processing apparatus 100 may be a system or controller specialized for the application, or may be a general-purpose information processing apparatus such as a personal computer, a portable terminal, or a wireless terminal.
  • the information processing apparatus 100 includes an input unit 110, a request reception unit 120, an output unit 130, a file management unit 140, an access control unit 170, and a storage unit 180.
  • the file management unit 140 includes an index file update unit 150 and a search unit 160.
  • the search unit 160 includes an acquisition unit 162, an identification information extraction unit 164, and a list creation unit 166.
  • the information processing device 100, the file management unit 140, and the search unit 160 may be an example of a search device.
  • the index file update unit 150 may hold the update index file 152.
  • the access control unit 170 may hold a management file 172.
  • the storage unit 180 may store a data file 182, a temporary index file 192, and a master index file 194.
  • the update index file 152, the temporary index file 192, and the master index file 194 may be an example of a plurality of index files.
  • the storage unit 180 may store at least one of the update index file 152 and the management file 172.
  • the update index file 152, the temporary index file 192, and the master index file 194 are information (index information) in which feature information indicating the characteristics of each of a plurality of data is associated with identification information for identifying each of the plurality of data. Is stored).
  • the temporary index file 192 is created based on the update index file 152.
  • the master index file 194 is created based on a plurality of temporary index files 192 or a plurality of temporary index files 192 and an update index file 152.
  • the feature information may be information indicating the feature of the data included in the data file.
  • the data characteristic may be an attribute of the data file.
  • the attribute of the data file may be data format, data type, data display or non-display, or data creation date or update date.
  • the data feature may be information indicating a user request for the data.
  • the data feature may be information indicating that the data has been deleted.
  • the feature information may include information indicating features related to a part of the data.
  • the data is text data
  • the data feature may be a part of the text included in the data.
  • the characteristics of the data may be the hue, saturation, and brightness of the pixels constituting the image included in the data.
  • the identification information may be identification information for identifying each of the plurality of data files.
  • the identification information may be the name of the data file and the identification number assigned to the data file.
  • the identification information may be information indicating the position of data in the data file.
  • the identification information may be associated with the time series.
  • identification information may be added for each frame.
  • the management file 172 may store information in which each piece of identification information of a plurality of data is associated with access information indicating each access destination of the plurality of data.
  • the access information may be information indicating a storage location or a reference destination of the data file.
  • the access information may be information indicating a storage location or a reference destination of specific data in the data file.
  • the data file 182 may be image data, text data, video data, sound data, data used by various software, or a program such as software.
  • the data stored in the storage unit 180 is input to the input unit 110.
  • the input unit 110 may be an information reading device or a communication device that exchanges information with an external computer, a storage device, or a storage medium.
  • Data input to the input unit 110 may be a data file such as image data, text data, video data, sound data, software, and data used by the software.
  • the input unit 110 may receive the data file 182 from the outside and transmit it to the index file update unit 150.
  • the input unit 110 may store the data file 182 in the storage unit 180 via the access control unit 170.
  • the request reception unit 120 receives a request for the information processing apparatus 100.
  • the request receiving unit 120 may be an input device such as a keyboard, a mouse, a touch panel, and a microphone, a character recognition device, or a sound recognition device.
  • the request receiving unit 120 may be an information reading device or a communication device that exchanges information with an external computer, a storage device, or a storage medium.
  • the request reception unit 120 receives a search request including extraction target information indicating the characteristics of data to be extracted from the user.
  • the characteristic of the data to be extracted may be the characteristic of the data included in the data file to be extracted.
  • extraction object information the same information as the case of feature information can be illustrated.
  • the request reception unit 120 may transmit the extraction target information to the search unit 160.
  • the request reception unit 120 may be an example of an acquisition unit.
  • the output unit 130 presents the search result for the search request to the user.
  • the output unit 130 may be a display device such as a liquid crystal display, an organic EL display, or a CRT display, a printer, or a speaker.
  • the output unit 130 may be an information writing device or a communication device that exchanges information with an external computer, a storage device, or a storage medium.
  • the output unit 130 may receive a list of data files that match the user search conditions from the search unit 160.
  • the output unit 130 may present the list received from the search unit 160 to the user as a search result for the user search request.
  • the output unit 130 may receive information on the access destination of the data file 182 from the access control unit 170 and present it to the user.
  • the output unit 130 may be an example of a transmission unit.
  • the file management unit 140 manages the data file stored in the storage unit 180.
  • the file management unit 140 creates or updates an index file when storing the data file 182 input from the input unit 110 in the storage unit 180.
  • the file management unit 140 receives the extraction target information from the request reception unit 120.
  • the file management unit 140 may create a list of data files that match the extraction target information from a plurality of data files stored in the storage unit 180.
  • the file management unit 140 may create a list indicating the position of data matching the extraction target information in the data file.
  • the file management unit 140 transmits the created list to the output unit 130.
  • the index file update unit 150 updates the index file.
  • the index file update unit 150 analyzes the data file 182 input from the input unit 110 and extracts feature information indicating the characteristics of data included in the data file 182.
  • the index file updating unit 150 creates index information in which the extracted feature information is associated with the data file 182 or identification information for identifying data included in the data file 182.
  • the index file update unit 150 updates the update index file 152 by comparing the created index information with the index information included in the update index file 152, and changing, adding, or deleting the index information. To do.
  • the index file update unit 150 may update the update index file 152 even when receiving an instruction to delete the data file 182 from the request reception unit 120.
  • the update index file 152 may be stored in a storage device that has a faster response speed than the storage unit 180.
  • the update index file 152 may be stored on the memory.
  • the index file update unit 150 updates the update index file 152 when storing the data file 182 input from the input unit 110 in the storage unit 180 until a predetermined event occurs. When a predetermined event occurs, the index file update unit 150 outputs the index information included in the update index file 152 as a temporary index file 192 and stores it in the storage unit 180.
  • the update index file 152 may be an example of a first index file.
  • the temporary index file 192 may be an example of a second index file.
  • the predetermined event may be that a predetermined period has elapsed since the update index file 152 was created.
  • the predetermined event may be that a predetermined period has elapsed since the index information included in the update index file 152 was output to the storage unit 180 last time.
  • the predetermined event may be that the size of the update index file 152 exceeds a predetermined size.
  • the predetermined event may be that the request reception unit 120 has received a user search request.
  • the predetermined event may be that the index file update unit 150 creates the master index file 194.
  • the size of the index file for update 152 can be reduced as compared with the case where the index file is provided as a single database for all files on the file server.
  • the index file update load can be dramatically reduced.
  • the update time of the index file can be greatly shortened. As a result, a sufficient processing speed can be realized even if a general-purpose device is used, and the cost for constructing the information processing apparatus 100 can be reduced.
  • the index file update unit 150 creates a plurality of update index files 152 and stores a plurality of update index files 152 when the data file 182 input to the input unit 110 is stored in the storage unit 180.
  • the index file 152 may be updated.
  • the index file update unit 150 may select the update index file 152 to be updated based on the data format of the data file 182.
  • the index file update unit 150 may select the update index file 152 to be updated based on the creator, input person, or sender of the data file. This can reduce the index information to be searched at the time of search.
  • the index file update unit 150 may divide and output the data of the update index file 152 into a plurality of temporary index files 192 based on a predetermined rule. Thereby, the search of the several temporary index file 192 by the identification information extraction part 164 can be performed in parallel. As a result, the index file update time can be significantly reduced.
  • the index file update unit 150 may divide the plurality of index information included in the update index file 152 into a plurality of temporary index files 192 such that the size of the temporary index file 192 becomes a predetermined size.
  • the index file update unit 150 may divide a plurality of index information included in the update index file 152 into a plurality of temporary index files 192 using random numbers.
  • the index file update unit 150 determines a plurality of pieces of index information included in the update index file 152 based on information in which identification information for identifying each of a plurality of pieces of data and a classification of each of the plurality of pieces of data are associated with each other.
  • the file may be divided into a plurality of temporary index files 192.
  • the index file update unit 150 converts a plurality of index information included in the update index file 152 into a plurality of temporary indexes based on information in which a plurality of feature information and respective classifications of the plurality of feature information are associated with each other.
  • the file 192 may be divided.
  • the index file update unit 150 outputs the index information included in the current update index file 152 to the storage unit 180, then deletes the current update index file 152 and newly creates the update index file 152 You can do it.
  • the index file update unit 150 may clear the index information included in the current update index file 152 after outputting the index information included in the current update index file 152 to the storage unit 180.
  • the index file updating unit 150 creates a master index file 194 based on the plurality of temporary index files 192 or the plurality of temporary index files 192 and the update index file 152 when a predetermined event occurs. May be updated.
  • the predetermined event may be that a predetermined period has elapsed since the master index file 194 has been created or updated.
  • the predetermined event may be that a predetermined time has come.
  • the master index file 194 can be created or updated by, for example, collecting index information included in a plurality of index files into one and deleting duplicate index information.
  • the index file update unit 150 may delete the temporary index file 192 after creating the master index file 194.
  • the search unit 160 creates a search result for a user search request.
  • the search unit 160 receives the extraction target information from the request reception unit 120.
  • the search unit 160 may create a list of data files that match the extraction target information from a plurality of data files stored in the storage unit 180.
  • the search unit 160 may create a list indicating the position of data that matches the extraction target information in the data file.
  • the search unit 160 transmits the created list to the output unit 130.
  • the acquisition unit 162 acquires extraction target information indicating the characteristics of data to be extracted.
  • the acquisition unit 162 may acquire the extraction target information from the request reception unit 120.
  • the acquisition unit 162 transmits the acquired extraction target information to the identification information extraction unit 164.
  • the identification information extraction unit 164 refers to a plurality of index files in which identification information for identifying each of a plurality of data and feature information indicating the characteristics of the plurality of data are associated with each other, and features related to the extraction target information Identification information associated with the information is extracted from a plurality of index files.
  • the identification information extraction unit 164 may extract identification information from the index file with reference to the one or more temporary index files 192 and the master index file 194.
  • the identification information extraction unit 164 may further extract identification information from the update index file with reference to the update index file.
  • the identification information extraction unit 164 may extract not only identification information associated with the same feature information as the extraction target information but also identification information associated with feature information similar to the extraction target information.
  • the identification information associated with the synonym or synonym of the character string that is the extraction target information may be extracted.
  • the extraction target information is compared with the feature information stored in the index file, and the matching degree of the image or sound is greater than a predetermined threshold value.
  • identification information associated with the feature information may be extracted.
  • the list creation unit 166 determines whether a plurality of the same identification information is included in the plurality of identification information extracted by the identification information extraction unit, and the identification information list in which the same identification information is not redundantly included Create The list creation unit 166 transmits the identification information list to the output unit 130 as a search result for the search request.
  • the index file is not provided as a single database.
  • the index file is provided as a plurality of databases. Therefore, the update load of the index file can be dramatically reduced. Also, since index file searches can be performed in parallel, the update time of the index file can be greatly reduced.
  • Each index file is created so that duplicate identification information is not extracted during search.
  • the identification information extraction unit 164 refers to a plurality of index files, and extracts identification information that is a candidate for a search result from each index file. Therefore, the identification information extracted by the identification information extraction unit 164 may include the same identification information in duplicate.
  • the list creation unit 166 creates an identification information list that does not include duplicate identification information based on a plurality of pieces of identification information extracted by the identification information extraction unit. Therefore, even if the index file is provided as a plurality of databases, search results without duplication can be provided. The effect is increased when the frequency of accepting search requests is small compared to the update frequency of the index file. The effect increases when the update time of the index file is long, such as when the data file is stored in distributed storage on the network.
  • the access control unit 170 controls access to the storage unit 180.
  • the access control unit 170 may extract access information associated with identification information that matches the identification information included in the identification information list from the management file 172 with reference to the management file 172.
  • the access control unit 170 may be an example of an access information extraction unit.
  • the access control unit 170 may receive the data file 182 from the input unit 110 and store it in the storage unit 180. At this time, the access control unit 170 may update the management file 172. The access control unit 170 may receive the temporary index file 192 from the index file update unit 150 and store it in the storage unit 180. At this time, the access control unit 170 may update the management file 172.
  • the access control unit 170 receives an access request to the temporary index file 192 and the master index file 194 from the identification information extraction unit 164, and receives the access destination of the temporary index file 192 and the master index file 194 from the identification information extraction unit 164. Information may be sent.
  • the access control unit 170 may receive an access request to the data file 182 from the request receiving unit 120 and transmit information on the access destination of the data file 182 to the output unit 130.
  • the storage unit 180 stores data.
  • the storage unit 180 may be a storage device or storage medium such as a hard disk, a CD-ROM, an IC card, or a flash memory.
  • the storage unit 180 may be a virtualized or cloud storage device or storage medium.
  • the storage unit 180 may be a memory such as a ROM, a RAM, or a cache memory.
  • the storage unit 180 may be an example of a storage device.
  • the information processing apparatus 100 and each unit of the information processing apparatus 100 may be realized by hardware or may be realized by software.
  • the information processing apparatus 100 may be a system specialized for each application, or may be a general-purpose information processing apparatus such as a personal computer.
  • the specialized system and information processing apparatus described above may be configured by a single computer or may be configured by a plurality of computers distributed on a network.
  • the information processing apparatus 100 may function as the information processing apparatus 100 by executing a program.
  • an information processing apparatus having a general configuration including a data processing device having a CPU, ROM, RAM, communication interface, etc., an input device, an output device, and a storage device, the operation of each part of the information processing device 100 is defined.
  • the information processing apparatus 100 may be realized by starting the software.
  • FIG. 2 schematically shows an example of the data structure of the temporary index file 192.
  • FIG. 2 schematically shows an example of the data structure of the temporary index file 192 when the data file is text data.
  • the update index file 152 and the master index file 194 may also have the same data structure as the temporary index file 192.
  • the temporary index file 192 may store index information in which a character string 296 included in the data file is associated with an identification number 298 that identifies the data file.
  • the character string 296 may be a character string obtained by decomposing a character string included in the data file in character units.
  • the character string 296 may be an example of feature information.
  • the identification number 298 may be an example of identification information.
  • the identification information extraction unit 164 can extract the identification information associated with the feature information related to the extraction target information from the temporary index file 192 by the following procedure, for example.
  • the identification information extraction unit 164 decomposes the extraction target information into a character string having the same length as the character string stored in the temporary index file 192.
  • the extraction target information is “abc”
  • the extraction target information includes character strings “ab” and “bc”.
  • the identification information extraction unit 164 refers to the temporary index file 192 and searches for the identification number of the data file including the character string “ab”. As can be seen from FIG. 2, the identification number of the data file including the character string “ab” is “10”, “123”, “125”, and the like. Further, the identification information extraction unit 164 refers to the temporary index file 192 and searches for the identification number of the data file including the character string “bc”. According to FIG. 2, it can be seen that the identification number of the data file including the character string “bc” is “100”, “123”, “1050”, and the like.
  • the identification information extraction unit 164 compares the identification number of the data file including the character string “ab” with the identification number of the data file including the character string “bc”, and determines the identification number including both character strings.
  • the identification information associated with the feature information related to the extraction target information is extracted. In this case, the data file with the identification number “123” is extracted.
  • the index file may be a set of information obtained by analyzing data contents.
  • FIG. 3 schematically shows an example of the data structure of the management file 172.
  • the management file 172 may store information in which an identification number 376 for identifying a data file is associated with a data file storage location 378.
  • the identification number 376 may be an example of identification information.
  • the access control unit 170 can extract the access information associated with the identification information from the management file 172.
  • FIG. 4 schematically shows an example of a method for updating the index file.
  • the input unit 110 determines whether or not the data file 182 has been input.
  • the information processing apparatus 100 waits.
  • the index file update unit 150 analyzes the data file 182 and updates the update index file 152 in S404.
  • the access control unit 170 stores the data file 182 in the storage unit 180. At this time, the access control unit 170 may update the management file 172.
  • the index file update unit 150 determines whether or not a predetermined event has occurred. The index file update unit 150 determines whether a predetermined event has occurred. When the index file update unit 150 determines that a predetermined event has occurred (Yes in S408), the index file update unit 150 converts the index information included in the update index file 152 into temporary information in S410. The index file 192 is output to the access control unit 170. The access control unit 170 stores the temporary index file 192 in the storage unit 180. At this time, the access control unit 170 may update the management file 172.
  • the index file update unit 150 determines in S408 that a predetermined event has not occurred (Yes in S408), whether or not the request reception unit 120 has received an end instruction from the user in S412. Determine whether. Even when the access control unit 170 stores the temporary index file 192 in the storage unit 180 in S410, the request reception unit 120 determines in S412 whether an end instruction has been received from the user.
  • FIG. 5 schematically shows an example of a method for retrieving data.
  • the request receiving unit 120 receives a search request including extraction target information indicating the characteristics of data to be extracted from the user.
  • the request reception unit 120 transmits the extraction target information to the acquisition unit 162.
  • the acquisition unit 162 transmits the acquired extraction target information to the identification information extraction unit 164.
  • the identification information extraction unit 164 refers to the plurality of index files, extracts identification information associated with the feature information related to the extraction target information from the plurality of index files, and creates a search result. To do.
  • the search result includes the identification information extracted by the identification information extraction unit 164.
  • the identification information extraction unit 164 may create a search result obtained by searching each of the plurality of index files for each of the plurality of index files.
  • the identification information extraction unit 164 transmits the search result to the list creation unit 166.
  • the list creation unit 166 receives a search result from the identification information extraction unit 164.
  • the list creation unit 166 determines whether or not a plurality of the same identification information is included in the plurality of identification information extracted by the identification information extraction unit 164, and the identification information in which the same identification information is not redundantly included Create a list.
  • FIG. 6 schematically shows an example of a method for creating an identification information list.
  • FIG. 6 schematically illustrates an example of a method in which the list creation unit 166 creates an identification information list in S506 described with reference to FIG. As described above, in S506, the list creation unit 166 receives a plurality of search results corresponding to each of the plurality of index files from the identification information extraction unit 164.
  • the search result A includes data file identification numbers 1, 3, 3, 5, and 6 as identification information.
  • the search result B includes data file identification numbers 3, 4, 5, 7, and 8 as identification information.
  • the search result B includes data file identification numbers 2, 5, 6, and 7 as identification information.
  • the list creation unit 166 rearranges the identification information in ascending order for each of the plurality of search results. At this time, when the same identification information is duplicated in each search result, the duplicate identification information may be deleted. Thereby, in the present embodiment, the identification numbers included in the search result A are arranged in the order of 1, 3, 5, and 6. Other search results are similarly aligned.
  • the list creation unit 166 extracts the smallest identification number from each of the plurality of search results.
  • the list creation unit 166 extracts the identification number 1 from the search result A.
  • identification number 3 and identification number 2 are extracted from search result B and search result C, respectively.
  • the list creation unit 166 compares the extracted identification numbers with each other and adds the smallest identification number to the identification information list.
  • the list creation unit 166 compares the identification number 1 extracted from the search result A, the identification number 3 extracted from the search result B, and the identification number 2 extracted from the search result C. As a result, the list creation unit 166 adds the identification number 1 extracted from the search result A to the identification information list X.
  • the identification numbers to be added to the identification information list X may be determined according to a predetermined priority order.
  • the priority order may be determined among a plurality of search results. In this embodiment, it is assumed that the priority order is determined in the order of search result A, search result B, and search result C.
  • the list creation unit 166 deletes the identification number added to the identification information list from the original search result. In this case, list creation unit 166 deletes identification number 1 from search result A. As a result, the identification numbers included in the search result A are 3, 5, and 6.
  • the list creation unit 166 determines whether the comparison is complete. If the list creation unit 166 determines in S610 that the comparison has been completed (Yes in S610), the list creation unit 166 transmits the identification information list to the output unit 130 in S612 and ends the process. . If the list creation unit 166 determines in S610 that the comparison has not been completed (No in S610), the processing from S602 to S610 is repeated.
  • the list creation unit 166 determines that the comparison is not completed, and performs steps S602 to S610. Repeat the process. As a result, finally, the list creation unit 166 transmits the identification information list X including the identification numbers 1, 2, 3, 4, 5, 6, 7, and 8 to the output unit 130.
  • FIG. 7 schematically shows an example of the system configuration of the information processing apparatus 700.
  • FIG. 7 shows the information processing apparatus 700 together with the network 10 and the client terminal 20.
  • the network 10 may be the Internet, a dedicated line, or a wireless packet communication network.
  • the client terminal 20 may be any device that can send and receive information to and from the mail server 710 and the distributed storage 720 via the network 10, and may be a personal computer, a mobile phone, a portable terminal, or a wireless terminal in which Web browser software is installed. .
  • the client terminal 20 may be a system or controller specialized for the application, or may be a general-purpose information processing apparatus such as a personal computer.
  • the information processing apparatus 700 may be a mail management system that stores received mail, receives a search request from a user, creates a list of mail that meets the search conditions, and presents the list to the user.
  • the information processing apparatus 700 includes a mail server 710 and a distributed storage 720.
  • the mail server 710 includes a file management unit 140 and a communication control unit 712.
  • the file management unit 140 may hold an update index file 152 and an update index file 752.
  • the distributed storage 720 includes a management server 730 and one or more nodes 740.
  • the management server 730 includes an access control unit 170.
  • Each of the one or more nodes 740 may include a storage unit 180.
  • the storage unit 180 may store a data file 182, a temporary index file 192, and a master index file 194.
  • the data file 182, the temporary index file 192, and the master index file 194 may be distributed and stored in the plurality of storage units 180.
  • the information processing device 700 and the mail server 710 may be an example of a search device.
  • the information processing apparatus 700 and the mail server 710 may be an example of a search system server.
  • the information processing apparatus 700 is different from the information processing apparatus 100 in that the file management unit 140 exchanges information with the access control unit 170 and the storage unit 180 via the network 10.
  • the information processing apparatus 700 is different from the information processing apparatus 100 in that the data file 182, the temporary index file 192, and the master index file 194 are stored in the distributed storage 720.
  • the information processing apparatus 700 is different from the information processing apparatus 100 in that the file management unit 140 analyzes the data file and updates a plurality of update index files.
  • the information processing apparatus 700 may have the same configuration as the information processing apparatus 100. Parts that are the same as or similar to the parts of the information processing apparatus 100 are assigned the same reference numerals, and redundant descriptions are omitted. Further, the information processing apparatus 100 may have a configuration similar to that of the information processing apparatus 700.
  • the mail server 710 exchanges information with the client terminal 20, the management server 730 and the plurality of nodes 740 via the network 10.
  • the mail server 710 receives the mail and stores the received mail in the distributed storage 720.
  • the mail server 710 analyzes the received mail and updates the update index file 152.
  • the mail server 710 When a predetermined event occurs, the mail server 710 outputs the index information included in the update index file 152 as a temporary index file 192 and transmits it to the distributed storage 720.
  • the mail server 710 receives a search request from the client terminal 20.
  • the mail server 710 creates an identification information list including mail identification information that meets the search conditions.
  • the mail server 710 presents an identification information list to the user as a search result for the search request.
  • the mail server 710 may be composed of a single server or a plurality of servers.
  • the mail server 710 may be a virtual server or a cloud system.
  • the mail server 710 may be a system or controller specialized for the application, or may be a general-purpose information processing device such as a personal computer.
  • the mail server 710 exchanges information with the client terminal 20, the management server 730, and the node 740 via the communication control unit 712.
  • the communication control unit 712 may be an interface that exchanges information with other computers, mobile phones, mobile terminals or wireless terminals, storage devices, storage media, and the like via the network 10.
  • the communication control unit 712 may be an example of a transmission unit.
  • the index file update unit 150 holds an update index file 752 in addition to the update index file 152.
  • the index file update unit 150 analyzes the data file 182 and updates the update index file 152 and the update index file 752.
  • the index file update unit 150 may create a corresponding temporary index file and master index file for each of the update index file 152 and the update index file 752.
  • the update index file 752 may store index information in which feature information of a different type from the update index file 152 and data identification information are associated with each other. Thereby, various search requests can be handled. In addition, more accurate search results can be presented.
  • the update index file 152 may store index information in which a character string included in the data file is associated with an identification number for identifying the data file.
  • the update index file 752 may store index information in which a user request for a data file is associated with an identification number for identifying the data file.
  • the identification information extraction unit 164 refers to the temporary index file and the master index file corresponding to the update index file 152.
  • the identification information list A in which the identification information of the mail including the character string “abc” is listed may be created. Further, the identification information extraction unit 164 refers to the temporary index file and the master index file corresponding to the update index file 752, and lists, for example, the identification information of the deleted mail and the mail set to be hidden.
  • the identification information list B may be created.
  • the identification information extraction unit 164 may compare the identification information list A and the identification information list B, delete the identification information included in the identification information list B from the identification information list A, and create the identification information list C. .
  • the mail server 710 may present the identification information list C to the user as a search result for the search request. Thereby, only the search result which should be displayed to a user can be shown to a user.
  • the distributed storage 720 stores data received from the mail server 710.
  • the distributed storage 720 may store one data file distributed to a plurality of nodes 740.
  • the management server 730 manages data stored in the plurality of nodes 740.
  • the management server 730 may store the management file 172.
  • the management server 730 may exchange information with the mail server 710 and each of the plurality of storage units 180 via the network 10.
  • the management server 730 may be a system or controller specialized for the application, or may be a general-purpose information processing device such as a personal computer.
  • the management server 730 may be a virtual server or a cloud system.
  • Node 740 stores data.
  • the node 740 may exchange information with each of the mail server 710 and the management server 730 via the network 10.
  • the node 740 may be a system or controller specialized for the application, and may be a general-purpose information processing device such as a personal computer, a storage device such as a hard disk, or a storage medium.
  • the node 740 may be a virtualized or cloud storage device or storage medium.
  • the index file is compared with the case where the index file is stored in the local storage device.
  • the update time of the index file becomes very long.
  • the update index file 152 stored in the storage device of the mail server 710 is used for updating the index file.
  • the temporary index file 192 and the master index file 194 are stored in the distributed storage 720 and are not normally updated. Therefore, the update time of the index file can be significantly shortened as compared with the case where the index file is provided as a single database for all the files on the file server.
  • the storage device of the mail server 710 may be an example of a local storage device.
  • the case where the update index file 152 is stored in the mail server 710 and the temporary index file 192 and the master index file 194 are stored in the distributed storage 720 has been described.
  • the storage location of the update index file 152 is not limited to the mail server 710.
  • the update index file 152 may be stored in the distributed storage 720. Even in this case, the size of the index file for update 152 is small compared to the case where the index file is provided as a single database for all the files on the file server. It can be shortened.
  • a plurality of index files are referred to at the time of search.
  • the search for the index file can be executed in parallel, and the search time can be shortened.
  • the frequency of searching for mail is very small compared to the number of received mails. Therefore, the effect of providing the index file as a plurality of databases becomes remarkable.
  • the information processing apparatus 700 is not limited to this.
  • the client terminal 20 may include the list creation unit 166 of the search unit 160.
  • the identification information extraction unit 164 of the mail server 710 extracts the identification information associated with the feature information related to the extraction target information from the plurality of index files.
  • the communication control unit 712 transmits one or more pieces of identification information extracted by the identification information extraction unit 164 to the client terminal 20.
  • the list creation unit 166 of the client terminal 20 determines whether or not the same identification information is included in one or more pieces of identification information extracted by the identification information extraction unit 164, and includes the same identification information in duplicate. Create an identification information list that has not been registered.
  • the mail server 710 may instruct a program running on the client terminal 20 to create an identification information list.
  • the mail server 710 may transmit a program for creating an identification information list to the client terminal 20.
  • a system including the information processing apparatus 700 and the client terminal 20 may be an example of a search system.
  • FIG. 8 schematically shows an example of the data structure of the update index file 752.
  • the update index file 752 may store index information in which a request 856 for the data file is associated with an identification number 858 for identifying the data file.
  • the request 856 may be an example of feature information.
  • the identification number 858 may be an example of identification information.
  • FIG. 9 schematically shows an example of the system configuration of the information processing apparatus 900.
  • the information processing apparatus 900 may be a system that accepts a search request from a user, extracts data that meets a search condition from a data file that includes a plurality of time-sequential data, and presents the data to the user.
  • Video data or sound data can be exemplified as a data file including a plurality of data continuous in time series.
  • the information processing apparatus 900 includes an input unit 110, a request reception unit 120, an output unit 130, a file management unit 940, an access control unit 170, and a storage unit 180.
  • the file management unit 940 includes an analysis unit 942, an index file update unit 150, and a search unit 160.
  • the index file update unit 150 may hold an update index file 952 and an update index file 952.
  • the storage unit 180 may store a data file 182, a temporary index file 192, and a master index file 194.
  • the information processing device 900 and the file management unit 940 may be an example of a search device.
  • the information processing apparatus 900 is different from the information processing apparatus 100 and the information processing apparatus 700 in that the file management unit 940 includes an analysis unit 942.
  • the information processing apparatus 900 may have the same configuration as the information processing apparatus 100 or the information processing apparatus 700. Parts that are the same as or similar to each part of the information processing apparatus 100 or the information processing apparatus 700 are assigned the same reference numerals, and redundant descriptions are omitted. Further, the information processing apparatus 100 and the information processing apparatus 700 may have the same configuration as the information processing apparatus 900.
  • the information processing apparatus 900 stores the data file 182 input to the input unit 110 in the storage unit 180.
  • the information processing apparatus 900 analyzes the data file 182 and updates the update index file 952 and the update index file 954.
  • the information processing apparatus 900 accepts a search request from a user input to the request accepting unit 120.
  • the information processing apparatus 900 creates an identification information list including identification information of the data file 182 that matches the search condition.
  • the information processing apparatus 900 presents an identification information list to the user as a search result for the search request.
  • the analysis unit 942 analyzes each of a plurality of data files when a plurality of data files are included in one data file. As a case where a plurality of data files are included in one data file, a case where a plurality of image data is included in one data file, or a case where a data file includes a plurality of continuous data in time series is exemplified. can do.
  • the analysis unit 942 will be described by taking as an example a case where the data file is video data including a plurality of image data continuous in time series.
  • the analysis unit 942 receives the input data file 182 from the input unit 110.
  • the analysis unit 942 determines whether the data file 182 is video data.
  • the analysis unit 942 may determine whether the data file 182 is video data based on the data format of the data file. If the analysis unit 942 determines that the data file 182 is not video data, the analysis unit 942 may transmit the data file 182 to the index file creation unit.
  • the analysis unit 942 determines that the data file 182 is video data
  • the analysis unit 942 assigns identification information to each of the plurality of image data included in the data file 182.
  • the analysis unit 942 may associate information regarding time series with identification information.
  • the analysis unit 942 analyzes the feature information for each of the plurality of image data.
  • the analysis unit 942 transmits the identification information of the image data and the analysis result of the image data to the index file update unit 150.
  • the analysis unit 942 transmits image data identification information to the access control unit 170.
  • the analysis unit 942 may analyze the presence / absence or ratio of the hue, saturation, or brightness of the pixels included in the image as the feature information. At this time, the analysis unit 942 determines that a pixel having the specific feature is present in the image when the ratio of the pixel having the specific feature to the total pixels is larger than a predetermined number. Good. Thereby, for example, bluish image data can be extracted from the video data.
  • the analysis unit 942 may compare a plurality of image data and analyze the change in the image as feature information.
  • the analysis unit 942 compares the currently analyzed image data with the image data whose time series is earlier than the image data. When the number of pixels different from the predetermined number is different, the image is changed. You may judge.
  • the analysis unit 942 may analyze the presence / absence of the change or the content of the change as the feature information of the data.
  • the contents of the change include an identification number for identifying the area where the change has occurred, an identification number for identifying the pixel included in the area where the change has occurred, and the hue, saturation or lightness of the pixel where the change has occurred, or its ratio It can be illustrated.
  • image data having a change in the upper left of the screen can be extracted from the video data of the surveillance camera.
  • image data at the moment when a fire has occurred can be extracted from the video data of the surveillance camera.
  • the index file update unit 150 receives the image data identification information and the analysis result of the image data from the analysis unit 942.
  • the index file update unit 150 may update one or more index files based on the type of feature information included in the received analysis result.
  • the index file update unit 150 includes, in the analysis result, information that associates the identification number of the area where the change has occurred or the identification number of the pixel included in the area with the identification information of the image data.
  • the update index file 952 may be updated.
  • the update index file 954 may be updated when the analysis result includes information that associates the hue identification number of the pixel in which the change has occurred with the identification information of the image.
  • the access control unit 170 receives the data file 182 input from the input unit 110. Image data identification information is received from the analysis unit 942. The access control unit 170 updates the management file 172 using the received identification information when storing the data file 182 in the storage unit 180.
  • the information processing apparatus 900 can create an identification information list including the identification information of the data file 182 that matches the search condition, and provide it to the user. Further, when the user requests access to the image data included in the identification information list, the information processing apparatus 900 can provide the user with an access destination of the image data.
  • the frequency of searching for an image is very small compared to the number of stored frames. Therefore, the effect of providing the index file as a plurality of databases becomes remarkable.
  • FIG. 10 schematically shows an example of the data structure of the update index file 952.
  • the update index file 952 may store index information in which an identification number 1056 of a pixel included in an area where a change has occurred and an identification number 1058 that identifies a data file and image data are associated with each other.
  • the pixel identification number 1056 may be an example of feature information.
  • the identification number 1058 may be an example of identification information.
  • FIG. 11 schematically shows an example of the data structure of the update index file 954.
  • the update index file 954 may store index information in which an identification number 1156 for identifying the hue of a pixel included in a region where a change has occurred and an identification number 1158 for identifying a data file and image data are associated with each other.
  • the hue identification number 1156 may be an example of feature information.
  • the identification number 1158 may be an example of identification information.
  • FIG. 12 schematically illustrates an exemplary hardware configuration of a computer 1900 according to an embodiment.
  • a computer 1900 according to this embodiment is connected to a CPU peripheral unit having a CPU 2000, a RAM 2020, a graphic controller 2075, and a display device 2080 that are connected to each other by a host controller 2082, and to the host controller 2082 by an input / output controller 2084.
  • Input / output unit having communication interface 2030, hard disk drive 2040, and CD-ROM drive 2060, and legacy input / output unit having ROM 2010, flexible disk drive 2050, and input / output chip 2070 connected to input / output controller 2084 With.
  • the host controller 2082 connects the RAM 2020 to the CPU 2000 and the graphic controller 2075 that access the RAM 2020 at a high transfer rate.
  • the CPU 2000 operates based on programs stored in the ROM 2010 and the RAM 2020 and controls each unit.
  • the graphic controller 2075 acquires image data generated by the CPU 2000 or the like on a frame buffer provided in the RAM 2020 and displays it on the display device 2080.
  • the graphic controller 2075 may include a frame buffer for storing image data generated by the CPU 2000 or the like.
  • the input / output controller 2084 connects the host controller 2082 to the communication interface 2030, the hard disk drive 2040, and the CD-ROM drive 2060, which are relatively high-speed input / output devices.
  • the communication interface 2030 communicates with other devices via a network.
  • the hard disk drive 2040 stores programs and data used by the CPU 2000 in the computer 1900.
  • the CD-ROM drive 2060 reads a program or data from the CD-ROM 2095 and provides it to the hard disk drive 2040 via the RAM 2020.
  • the ROM 2010, the flexible disk drive 2050, and the relatively low-speed input / output device of the input / output chip 2070 are connected to the input / output controller 2084.
  • the ROM 2010 stores a boot program that the computer 1900 executes at startup and / or a program that depends on the hardware of the computer 1900.
  • the flexible disk drive 2050 reads a program or data from the flexible disk 2090 and provides it to the hard disk drive 2040 via the RAM 2020.
  • the input / output chip 2070 connects the flexible disk drive 2050 to the input / output controller 2084 and inputs / outputs various input / output devices via, for example, a parallel port, a serial port, a keyboard port, a mouse port, and the like. Connect to controller 2084.
  • the program provided to the hard disk drive 2040 via the RAM 2020 is stored in a recording medium such as the flexible disk 2090, the CD-ROM 2095, or an IC card and provided by the user.
  • the program is read from the recording medium, installed in the hard disk drive 2040 in the computer 1900 via the RAM 2020, and executed by the CPU 2000.
  • the CPU 2000 executes a communication program loaded on the RAM 2020 and executes a communication interface based on the processing content described in the communication program.
  • a communication process is instructed to 2030.
  • the communication interface 2030 reads transmission data stored in a transmission buffer area or the like provided on a storage device such as the RAM 2020, the hard disk drive 2040, the flexible disk 2090, or the CD-ROM 2095, and sends it to the network.
  • the reception data transmitted or received from the network is written into a reception buffer area or the like provided on the storage device.
  • the communication interface 2030 may transfer transmission / reception data to / from the storage device by a DMA (direct memory access) method. Instead, the CPU 2000 transfers the storage device or the communication interface 2030 as a transfer source.
  • the transmission / reception data may be transferred by reading the data from the data and writing the data to the communication interface 2030 or the storage device of the transfer destination.
  • the CPU 2000 is all or necessary from among files or databases stored in an external storage device such as a hard disk drive 2040, a CD-ROM drive 2060 (CD-ROM 2095), and a flexible disk drive 2050 (flexible disk 2090). These parts are read into the RAM 2020 by DMA transfer or the like, and various processes are performed on the data on the RAM 2020. Then, CPU 2000 writes the processed data back to the external storage device by DMA transfer or the like. In such processing, since the RAM 2020 can be regarded as temporarily holding the contents of the external storage device, in the present embodiment, the RAM 2020 and the external storage device are collectively referred to as a memory, a storage unit, or a storage device.
  • the CPU 2000 can also hold a part of the RAM 2020 in the cache memory and perform reading and writing on the cache memory. Even in such a form, the cache memory bears a part of the function of the RAM 2020. Therefore, in the present embodiment, the cache memory is also included in the RAM 2020, the memory, and / or the storage device, unless otherwise indicated.
  • the CPU 2000 performs various operations, such as various operations, information processing, condition determination, information search / replacement, etc., described in the present embodiment, specified for the data read from the RAM 2020 by the instruction sequence of the program. Is written back to the RAM 2020. For example, when performing the condition determination, the CPU 2000 determines whether or not the various variables shown in the present embodiment satisfy the conditions such as large, small, above, below, equal, etc., compared to other variables or constants. If the condition is satisfied (or not satisfied), the program branches to a different instruction sequence or calls a subroutine.
  • the CPU 2000 can search for information stored in a file or database in the storage device. For example, in the case where a plurality of entries in which the attribute value of the second attribute is associated with the attribute value of the first attribute are stored in the storage device, the CPU 2000 displays the plurality of entries stored in the storage device. The entry that matches the condition in which the attribute value of the first attribute is specified is retrieved, and the attribute value of the second attribute that is stored in the entry is read, thereby associating with the first attribute that satisfies the predetermined condition The attribute value of the specified second attribute can be obtained.
  • the program or module shown above may be stored in an external recording medium.
  • an optical recording medium such as DVD or CD
  • a magneto-optical recording medium such as MO
  • a tape medium such as an IC card, and the like
  • a storage device such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium, and the program may be provided to the computer 1900 via the network.
  • a program that is installed in the computer 1900 and causes the computer 1900 to function as each unit of the search device, the search system, or the search device or the search system includes a module that defines the operation of each unit. These programs or modules work on the CPU 2000 or the like to cause the computer 1900 to function as each part of the output control system or the output control device.
  • the information processing described in these programs functions as a specific means in which the software and the various hardware resources described above cooperate with each other by being read into the computer 1900. Then, by using these specific means, calculation or processing of information according to the purpose of use of the computer 1900 in the present embodiment is realized, so that a specific search device or search system according to the purpose of use, for example, the information processing apparatus 100 is used.
  • the information processing apparatus 700 or the information processing apparatus 900 can be constructed.
  • the specification of the present application includes an acquisition stage for acquiring extraction target information indicating characteristics of data to be extracted, identification information for identifying each of the plurality of data, and each of the plurality of data.
  • a method comprising: is described. Further, a program for causing a computer to execute the above method is described.
  • the specification of the present application includes a method in which a server provides a service to a client terminal via a network, and the service obtains extraction target information indicating characteristics of data to be extracted.
  • the identification information extraction stage that extracts the identification information associated with the information from the plurality of index files, and whether or not the same identification information is included in the plurality of identification information extracted in the extraction stage And a list creation step of creating an identification information list that does not contain duplicate identification information. Further, a program for causing a computer to execute the above method is described.
  • 10 network 20 client terminal, 100 information processing device, 110 input unit, 120 request reception unit, 130 output unit, 140 file management unit, 150 index file update unit, 152 update index file, 160 search unit, 162 acquisition unit, 164 identification information extraction unit, 166 list creation unit, 170 access control unit, 172 management file, 180 storage unit, 182 data file, 192 temporary index file, 194 master index file, 296 character string, 298 identification number, 376 identification number, 378 storage location, 700 information processing device, 710 mail server, 712 communication control unit, 720 distributed storage, 730 management server, 740 node, 752 update Index file, 856 request, 858 identification number, 900 information processing device, 940 file management unit, 942 analysis unit, 952 update index file, 954 update index file, 1056 identification number, 1058 identification number, 1156 identification number, 1158 identification Number, 1900 computer, 2000 CPU, 2010 ROM, 2020 RAM, 2030 communication interface, 2040 hard disk drive, 2050 flexible disk drive, 2060 CD-ROM drive, 2070 I / O chip,

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部とを備える。

Description

検索装置、検索システム、方法およびプログラム
 本発明は、検索装置、検索システム、方法およびプログラムに関する。
 インターネット上またはファイルサーバ上のファイルにアクセスするための検索エンジンが知られている。検索エンジンは、ユーザからの検索要求を受け付けて、検索条件に適合するファイルのリストを取得して、当該リストをユーザに送信する(例えば、特許文献1および2を参照。)。
 (先行技術文献)
 (特許文献)
 特許文献1 特開2005-122702号公報
 特許文献2 特開平9-265420号公報
 検索エンジンは、ファイル検索を容易にする目的で、ファイルを解析してインデックスファイルを作成する。検索エンジンは、ファイルサーバにファイルが登録される度にインデックスファイルを更新する。しかし、インデックスファイルは、ファイルサーバの全てのファイルに対して、単一のデータベースとして提供される。そのため、ファイルサーバ内のファイル数が増加するにつれて、インデックスファイルの更新負荷が増大する。そこで本発明の1つの側面においては、上記の課題を解決することのできる検索装置、検索システム、方法およびプログラムを提供することを目的とする。この目的は請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
 本発明の第1の態様においては、抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれの特徴を示す特徴情報と、複数のデータのそれぞれを識別する識別情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部とを備える、検索装置が提供される。
 上記の検索装置において、特徴情報は、複数のデータのそれぞれの一部に関する特徴を示す情報を含んでよい。上記の検索装置において、インデックスファイルを更新するインデックスファイル更新部をさらに備えてよく、インデックスファイル更新部は、予め定められたイベントが発生するまで、第1のインデックスファイルを更新し、予め定められたイベントが発生すると、第1のインデックスファイルに基づき、第2のインデックスファイルを作成してよい。
 上記の検索装置において、複数のデータのそれぞれの識別情報と、複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた管理ファイルを参照して、識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、管理ファイルから抽出するアクセス情報抽出部をさらに備えてよい。上記の検索装置において、複数のデータを格納する複数の記憶装置と、管理ファイルを格納し、ネットワークを介して、複数の記憶装置のそれぞれと情報をやり取りする管理サーバとをさらに備えてよい。上記の検索装置において、ユーザから、抽出対象情報を含む検索要求を受け付ける要求受付部と、検索要求に対する検索結果として、ユーザに識別情報リストを提示する出力部とをさらに備えてよい。
 本発明の第2の態様においては、クライアント端末と、クライアント端末とネットワークを介して情報をやりとりするサーバとを備え、サーバは、抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出部と、識別情報抽出部が抽出した複数の識別情報を、クライアント端末に送信する送信部とを有し、クライアント端末は、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部を有する、検索システムが提供される。
 本発明の第3の態様においては、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が提供される。
 上記の方法において、インデックスファイルを更新するインデックスファイル更新段階をさらに備えてよく、インデックスファイル更新段階は、予め定められたイベントが発生するまで、第1のインデックスファイルを更新する段階と、予め定められたイベントが発生すると、第1のインデックスファイルに基づき、第2のインデックスファイルを作成する段階とを有してよい。
 本発明の第4の態様においては、サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、サービスが、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が提供される。
 本発明の第4の態様においては、コンピュータに、上記の方法を実行させる、プログラムが提供される。また、検索装置用のプログラムを記憶するコンピュータ読み取り可能な媒体であって、プログラムは、コンピュータを、上記の検索装置または検索システムとして機能させる、コンピュータ読み取り可能な媒体が提供される。プログラムを記憶するコンピュータ読み取り可能な媒体であって、プログラムは、コンピュータに上記の方法を実行させる、コンピュータ読み取り可能な媒体が提供される。
 なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
情報処理装置100のシステム構成の一例を概略的に示す。 更新用インデックスファイル152のデータ構造の一例を概略的に示す。 管理ファイル172のデータ構造の一例を概略的に示す。 インデックスファイルを更新する方法の一例を概略的に示す。 データを検索する方法の一例を概略的に示す。 識別情報リストを作成する方法の一例を概略的に示す。 情報処理装置700のシステム構成の一例を概略的に示す。 更新用インデックスファイル752のデータ構造の一例を概略的に示す。 情報処理装置900のシステム構成の一例を概略的に示す。 更新用インデックスファイル952のデータ構造の一例を概略的に示す。 更新用インデックスファイル954のデータ構造の一例を概略的に示す。 一実施形態に係るコンピュータ1900のハードウエア構成の一例を概略的に示す。
 以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。また、図面を参照して、実施形態について説明するが、図面の記載において、同一または類似の部分には同一の参照番号を付して重複する説明を省く場合がある。
 図1は、情報処理装置100のシステム構成の一例を概略的に示す。情報処理装置100は、ユーザから検索要求を受け付けて、検索条件に適合するデータファイルのリストを作成し、当該リストをユーザに提示する検索エンジンまたはファイル管理システムであってよい。情報処理装置100は、当該用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ、携帯端末、無線端末等の汎用の情報処理装置であってもよい。
 情報処理装置100は、入力部110と、要求受付部120と、出力部130と、ファイル管理部140と、アクセス制御部170と、記憶部180とを備える。ファイル管理部140は、インデックスファイル更新部150と、検索部160とを有する。検索部160は、取得部162と、識別情報抽出部164と、リスト作成部166とを含む。情報処理装置100、ファイル管理部140および検索部160は、検索装置の一例であってよい。
 インデックスファイル更新部150は、更新用インデックスファイル152を保持してよい。アクセス制御部170は、管理ファイル172を保持してよい。記憶部180は、データファイル182と、テンポラリーインデックスファイル192と、マスターインデックスファイル194とを格納してよい。更新用インデックスファイル152、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、複数のインデックスファイルの一例であってよい。記憶部180は、更新用インデックスファイル152および管理ファイル172の少なくとも一方を格納してもよい。
 更新用インデックスファイル152、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、複数のデータのそれぞれの特徴を示す特徴情報と、複数のデータのそれぞれを識別する識別情報とが対応付けられた情報(インデックス情報と称する場合がある。)を格納する。テンポラリーインデックスファイル192は、更新用インデックスファイル152に基づいて作成される。マスターインデックスファイル194は、複数のテンポラリーインデックスファイル192、または、複数のテンポラリーインデックスファイル192および更新用インデックスファイル152に基づいて作成される。
 特徴情報は、データファイルに含まれるデータの特徴を示す情報であってよい。データの特徴は、データファイルの属性であってよい。データファイルの属性は、データの形式、データの種類、データの表示もしくは非表示、または、データの作成日時もしくは更新日時であってよい。データの特徴は、当該データに対するユーザの要求を示す情報であってよい。データの特徴は、当該データが削除されたことを示す情報であってよい。特徴情報は、データの一部に関する特徴を示す情報を含んでよい。データがテキストデータの場合、データの特徴は、データに含まれるテキストの一部であってよい。データが画像データまたは映像データの場合、データの特徴は、データに含まれる画像を構成する画素の色相、彩度、明度であってよい。
 識別情報は、複数のデータファイルのそれぞれを識別する識別情報であってよい。識別情報は、データファイルの名称、データファイルに付された識別番号であってよい。識別情報は、データファイル中におけるデータの位置を示す情報であってもよい。映像データ、サウンドデータのように、データファイルが、時系列に連続する複数のデータを含む場合、識別情報は、時系列に対応付けられてよい。データファイルが映像データである場合、フレームごとに識別情報が付されてよい。
 管理ファイル172は、複数のデータのそれぞれの識別情報と、複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた情報を格納してよい。アクセス情報は、データファイルの格納場所または参照先を示す情報であってよい。アクセス情報は、データファイル中の特定のデータの格納場所または参照先を示す情報であってよい。データファイル182は、画像データ、テキストデータ、映像データ、サウンドデータ、各種ソフトウエアにより使用されるデータ、または、ソフトウエアなどのプログラムであってよい。
 入力部110は、記憶部180に格納するデータが入力される。入力部110は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報読取装置または通信装置であってよい。入力部110に入力されるデータは、画像データ、テキストデータ、映像データ、サウンドデータ、ソフトウエア、ソフトウエアにより使用されるデータなどのデータファイルであってよい。入力部110は、外部からデータファイル182を受け取り、インデックスファイル更新部150に送信してよい。入力部110は、アクセス制御部170を介して、記憶部180にデータファイル182を格納してよい。
 要求受付部120は、情報処理装置100に対する要求を受け付ける。要求受付部120は、キーボード、マウス、タッチパネル、マイクなどの入力装置、文字認識装置またはサウンド認識装置であってよい。要求受付部120は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報読取装置または通信装置であってもよい。
 要求受付部120は、ユーザから、抽出すべきデータの特徴を示す抽出対象情報が含まれる検索要求を受け付ける。抽出すべきデータの特徴は、抽出すべきデータファイルに含まれるデータの特徴であってもよい。抽出対象情報の例としては、特徴情報の場合と同様の情報を例示することができる。要求受付部120は、抽出対象情報を検索部160に送信してよい。要求受付部120は、取得部の一例であってもよい。
 出力部130は、検索要求に対する検索結果をユーザに提示する。出力部130は、液晶ディスプレイ、有機ELディスプレイ、CRTディスプレイなどの表示装置、プリンタまたはスピーカであってよい。出力部130は、外部のコンピュータ、記憶装置または記憶媒体との間で情報をやり取りする情報書込装置または通信装置であってもよい。
 出力部130は、検索部160から、ユーザの検索条件に適合するデータファイルのリストを受け取ってよい。出力部130は、ユーザの検索要求に対する検索結果として、検索部160から受け取ったリストを、ユーザに提示してよい。出力部130は、アクセス制御部170から、データファイル182のアクセス先の情報を受け取り、ユーザに提示してもよい。出力部130は送信部の一例であってもよい。
 ファイル管理部140は、記憶部180に格納されたデータファイルを管理する。ファイル管理部140は、入力部110から入力されたデータファイル182を記憶部180に格納するときに、インデックスファイルを作成または更新する。ファイル管理部140は、要求受付部120から抽出対象情報を受け取る。ファイル管理部140は、記憶部180に格納された複数のデータファイルの中から、抽出対象情報に適合するデータファイルのリストを作成してよい。ファイル管理部140は、データファイル中における、抽出対象情報に適合するデータの位置を示すリストを作成してもよい。ファイル管理部140は、作成したリストを出力部130に送信する。
 インデックスファイル更新部150は、インデックスファイルを更新する。インデックスファイル更新部150は、入力部110から入力されたデータファイル182を解析して、データファイル182に含まれるデータの特徴を示す特徴情報を抽出する。インデックスファイル更新部150は、抽出した特徴情報と、データファイル182またはデータファイル182に含まれるデータを識別する識別情報とが対応づけられたインデックス情報を作成する。インデックスファイル更新部150は、作成したインデックス情報と、更新用インデックスファイル152に含まれるインデックス情報とを比較して、インデックス情報の変更、追加、削除などを実行して、更新用インデックスファイル152を更新する。
 インデックスファイル更新部150は、要求受付部120からデータファイル182を削除する指示を受け取った場合にも、更新用インデックスファイル152を更新してよい。更新用インデックスファイル152は、記憶部180よりも応答速度の速い記憶装置に格納されてよい。更新用インデックスファイル152は、メモリ上に格納されてよい。
 インデックスファイル更新部150は、予め定められたイベントが発生するまで、入力部110から入力されたデータファイル182を記憶部180に格納するときに、更新用インデックスファイル152を更新する。インデックスファイル更新部150は、予め定められたイベントが発生すると、更新用インデックスファイル152に含まれるインデックス情報をテンポラリーインデックスファイル192として出力して、記憶部180に格納する。更新用インデックスファイル152は、第1のインデックスファイルの一例であってよい。テンポラリーインデックスファイル192は、第2のインデックスファイルの一例であってよい。
 予め定められたイベントは、更新用インデックスファイル152が作成されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、前回、更新用インデックスファイル152に含まれるインデックス情報が記憶部180に出力されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、更新用インデックスファイル152のサイズが予め定められたサイズを超えたことであってよい。予め定められたイベントは、要求受付部120がユーザの検索要求を受け付けたことであってよい。予め定められたイベントは、インデックスファイル更新部150がマスターインデックスファイル194を作成することであってよい。
 本実施形態によれば、インデックスファイルがファイルサーバの全てのファイルに対して、単一のデータベースとして提供される場合と比較して、更新用インデックスファイル152のサイズを小さくすることができる。そのため、インデックスファイルの更新負荷を劇的に軽減することができる。また、インデックスファイルの更新時間を大幅に短縮することができる。その結果、汎用の機器を用いても十分な処理速度を実現することができ、情報処理装置100を構築するコストを低減させることができる。
 この特徴を利用して、インデックスファイル更新部150は、複数の更新用インデックスファイル152を作成して、入力部110に入力されたデータファイル182を記憶部180に格納するときに、複数の更新用インデックスファイル152を更新してもよい。インデックスファイル更新部150は、データファイル182のデータ形式に基づいて、更新する更新用インデックスファイル152を選択してよい。インデックスファイル更新部150は、データファイルの作成者、入力者または送信者に基づいて、更新する更新用インデックスファイル152を選択してよい。これにより、検索時に探索対象となるインデックス情報を少なくすることができる。
 インデックスファイル更新部150は、予め定められたルールに基づいて、更新用インデックスファイル152のデータを、複数のテンポラリーインデックスファイル192に分割して出力してよい。これにより、識別情報抽出部164による複数のテンポラリーインデックスファイル192の探索を並列して実行することができる。その結果、インデックスファイルの更新時間を大幅に短縮することができる。
 インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、テンポラリーインデックスファイル192のサイズが予め定められたサイズになるように、複数のテンポラリーインデックスファイル192に分割してよい。インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、乱数を用いて、複数のテンポラリーインデックスファイル192に分割してよい。
 インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの分類とが対応付けられた情報に基づいて、複数のテンポラリーインデックスファイル192に分割してよい。インデックスファイル更新部150は、更新用インデックスファイル152に含まれる複数のインデックス情報を、複数の特徴情報と、複数の特徴情報のそれぞれの分類とが対応付けられた情報に基づいて、複数のテンポラリーインデックスファイル192に分割してよい。
 インデックスファイル更新部150は、現在の更新用インデックスファイル152に含まれるインデックス情報を記憶部180に出力した後、現在の更新用インデックスファイル152を削除して、新たに、更新用インデックスファイル152を作成してよい。インデックスファイル更新部150は、現在の更新用インデックスファイル152に含まれるインデックス情報を記憶部180に出力した後、現在の更新用インデックスファイル152に含まれるインデックス情報をクリアしてもよい。
 インデックスファイル更新部150は、予め定められたイベントが発生した場合に、複数のテンポラリーインデックスファイル192、または、複数のテンポラリーインデックスファイル192および更新用インデックスファイル152に基づいて、マスターインデックスファイル194を作成または更新してよい。予め定められたイベントは、マスターインデックスファイル194が作成または更新されてから、予め定められた期間が経過したことであってよい。予め定められたイベントは、予め定められた時刻になったことであってよい。マスターインデックスファイル194は、例えば、複数のインデックスファイルに含まれるインデックス情報を一つにまとめて、重複するインデックス情報を削除することで作成または更新することができる。インデックスファイル更新部150は、マスターインデックスファイル194を作成した後、テンポラリーインデックスファイル192を削除してよい。
 検索部160は、ユーザの検索要求に対する検索結果を作成する。検索部160は、要求受付部120から抽出対象情報を受け取る。検索部160は、記憶部180に格納された複数のデータファイルの中から、抽出対象情報に適合するデータファイルのリストを作成してよい。検索部160は、データファイル中における、抽出対象情報に適合するデータの位置を示すリストを作成してもよい。検索部160は、作成したリストを出力部130に送信する。
 取得部162は、抽出すべきデータの特徴を示す抽出対象情報を取得する。取得部162は、要求受付部120から抽出対象情報を取得してよい。取得部162は、取得した抽出対象情報を識別情報抽出部164に送信する。
 識別情報抽出部164は、複数のデータのそれぞれを識別する識別情報と、複数のデータの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する。識別情報抽出部164は、1以上のテンポラリーインデックスファイル192およびマスターインデックスファイル194を参照して、当該インデックスファイルから識別情報を抽出してよい。識別情報抽出部164は、さらに、更新用インデックスファイルを参照して、更新用インデックスファイルから識別情報を抽出してもよい。
 識別情報抽出部164は、抽出対象情報と同一の特徴情報に対応付けられている識別情報だけでなく、抽出対象情報に類似する特徴情報に対応付けられている識別情報を抽出してもよい。データがテキストデータの場合には、抽出対象情報である文字列の類義語または同意語に対応付けられている識別情報を抽出してよい。データが画像データ、映像データまたはサウンドデータの場合には、抽出対象情報と、インデックスファイルに格納されている特徴情報とを比較して、画像またはサウンドの一致度が予め定められた閾値より大きい場合に、当該特徴情報に対応付けられている識別情報を抽出してよい。
 リスト作成部166は、識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。リスト作成部166は、検索要求に対する検索結果として、識別情報リストを出力部130に送信する。
 本実施形態によれば、インデックスファイルが、単一のデータベースとして提供されない。本実施形態によれば、インデックスファイルが、複数のデータベースとして提供される。これにより、インデックスファイルの更新負荷を劇的に軽減することができる。また、インデックスファイルの探索を並列して実行するができるので、インデックスファイルの更新時間を大幅に短縮することができる。
 それぞれのインデックスファイルは、検索時に、識別情報が重複して抽出されることがないように作成される。しかし、識別情報抽出部164は、複数のインデックスファイルを参照して、それぞれのインデックスファイルから、検索結果の候補となる識別情報を抽出する。そのため、識別情報抽出部164が抽出した識別情報の中に、同一の識別情報が重複して含まれる場合がある。
 本実施形態によれば、リスト作成部166が、識別情報抽出部が抽出した複数の識別情報に基づいて、同一の識別情報が重複して含まれていない識別情報リストを作成する。これにより、インデックスファイルが、複数のデータベースとして提供される場合であっても、重複のない検索結果を提供することができる。インデックスファイルの更新頻度と比較して、検索要求を受け付ける頻度が小さい場合に、その効果が大きくなる。データファイルがネットワーク上の分散ストレージに格納されている場合のように、インデックスファイルの更新時間が長い場合に、その効果が大きくなる。
 アクセス制御部170は、記憶部180へのアクセスを制御する。アクセス制御部170は、管理ファイル172を参照して、識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、管理ファイル172から抽出してよい。アクセス制御部170は、アクセス情報抽出部の一例であってよい。
 アクセス制御部170は、入力部110からデータファイル182を受け取り、記憶部180に格納してよい。このとき、アクセス制御部170は、管理ファイル172を更新してよい。アクセス制御部170は、インデックスファイル更新部150からテンポラリーインデックスファイル192を受け取り、記憶部180に格納してよい。このとき、アクセス制御部170は、管理ファイル172を更新してよい。
 アクセス制御部170は、識別情報抽出部164からテンポラリーインデックスファイル192およびマスターインデックスファイル194へのアクセス要求を受け取り、識別情報抽出部164に対して、テンポラリーインデックスファイル192およびマスターインデックスファイル194のアクセス先の情報を送信してよい。アクセス制御部170は、要求受付部120から、データファイル182へのアクセス要求を受け取り、出力部130に対して、データファイル182のアクセス先の情報を送信してよい。
 記憶部180は、データを記憶する。記憶部180は、ハードディスク、CD-ROM、ICカード、フラッシュメモリなどの記憶装置または記憶媒体であってもよい。記憶部180は、仮想化またはクラウド化された記憶装置または記憶媒体であってもよい。記憶部180は、ROM、RAM、キャッシュメモリなどのメモリであってもよい。記憶部180は、記憶装置の一例であってよい。
 情報処理装置100および情報処理装置100の各部は、ハードウエアにより実現されてもよく、ソフトウエアにより実現されてもよい。情報処理装置100は、それぞれの用途に特化したシステムであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。上記の特化したシステムおよび情報処理装置は、単一のコンピュータにより構成されてもよく、ネットワーク上に分散した複数のコンピュータにより構成されてもよい。
 情報処理装置100は、プログラムが実行されることにより、コンピュータが情報処理装置100として機能してもよい。CPU、ROM、RAM、通信インターフェイス等を有するデータ処理装置と、入力装置と、出力装置と、記憶装置とを備えた一般的な構成の情報処理装置において、情報処理装置100の各部の動作を規定したソフトウエアを起動することにより、情報処理装置100が実現されてよい。
 図2は、テンポラリーインデックスファイル192のデータ構造の一例を概略的に示す。図2は、データファイルがテキストデータである場合のテンポラリーインデックスファイル192のデータ構造の一例を概略的に示す。なお、更新用インデックスファイル152およびマスターインデックスファイル194も、テンポラリーインデックスファイル192と同様のデータ構造を有してよい。
 テンポラリーインデックスファイル192は、データファイルに含まれる文字列296と、データファイルを識別する識別番号298とが対応付けられたインデックス情報を格納してよい。文字列296は、データファイルに含まれる文字列を文字単位で分解して、得られた文字列であってよい。文字列296は、特徴情報の一例であってよい。識別番号298は、識別情報の一例であってよい。
 識別情報抽出部164は、例えば、以下の手順で、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、テンポラリーインデックスファイル192から抽出することができる。識別情報抽出部164は、抽出対象情報を、テンポラリーインデックスファイル192に格納された文字列と同じ長さの文字列に分解する。抽出対象情報が「abc」である場合、抽出対象情報には、文字列「ab」および「bc」が含まれる。
 次に、識別情報抽出部164は、テンポラリーインデックスファイル192を参照して、文字列「ab」が含まれるデータファイルの識別番号を探索する。図2によれば、文字列「ab」が含まれるデータファイルの識別番号は、「10」、「123」、「125」などであることがわかる。また、識別情報抽出部164は、テンポラリーインデックスファイル192を参照して、文字列「bc」が含まれるデータファイルの識別番号を探索する。図2によれば、文字列「bc」が含まれるデータファイルの識別番号は、「100」、「123」、「1050」などであることがわかる。
 識別情報抽出部164は、文字列「ab」が含まれるデータファイルの識別番号と、文字列「bc」が含まれるデータファイルの識別番号とを比較して、両方の文字列を含む識別番号を、抽出対象情報に関連する特徴情報に対応付けられている識別情報として抽出する。この場合、識別番号が「123」のデータファイルが抽出される。
 なお、インデックスファイルの内容、データ構造などは、これに限定されない。インデックスファイルは、データの内容を解析して得られる情報の集合であればよい。
 図3は、管理ファイル172のデータ構造の一例を概略的に示す。管理ファイル172は、データファイルを識別する識別番号376と、データファイルの格納場所378とが対応付けられた情報を格納してよい。識別番号376は、識別情報の一例であってよい。これにより、アクセス制御部170は、識別情報に対応付けられているアクセス情報を、管理ファイル172から抽出することができる。
 次に、図4、図5および図6を用いて、情報処理装置100における情報処理の概略を説明する。図4は、インデックスファイルを更新する方法の一例を概略的に示す。S402において、入力部110が、データファイル182が入力されたか否かを判断する。入力部110が、データファイル182が入力されていないと判断した(S402のNo)場合には、情報処理装置100は待機する。入力部110が、データファイル182が入力されたと判断した場合(S402のYes)には、S404において、インデックスファイル更新部150が、データファイル182を解析して、更新用インデックスファイル152を更新する。また、S406において、アクセス制御部170が、データファイル182を記憶部180に格納する。このとき、アクセス制御部170は、管理ファイル172を更新してよい。
 S408において、インデックスファイル更新部150が、予め定められたイベントの発生が発生したか否かを判断する。インデックスファイル更新部150が、予め定められたイベントが発生したか否かを判断する。インデックスファイル更新部150が、予め定められたイベントが発生したと判断した場合(S408のYes)には、S410において、インデックスファイル更新部150が、更新用インデックスファイル152に含まれるインデックス情報を、テンポラリーインデックスファイル192としてアクセス制御部170に出力する。アクセス制御部170は、テンポラリーインデックスファイル192を記憶部180に格納する。このとき、アクセス制御部170は、管理ファイル172を更新してよい。
 S408において、インデックスファイル更新部150が、予め定められたイベントが発生していないと判断した場合(S408のYes)には、S412において、要求受付部120が、ユーザから終了指示を受信したか否かを判断する。S410において、アクセス制御部170が、テンポラリーインデックスファイル192を記憶部180に格納した場合にも、S412において、要求受付部120が、ユーザから終了指示を受信したか否かを判断する。
 S412において、要求受付部120が、ユーザから終了指示を受信していないと判断した場合(S412のNo)には、情報処理装置100は、待機する。S412において、要求受付部120が、ユーザから終了指示を受信したと判断した場合(S412のYes)には、情報処理装置100は、処理を終了する。
 図5は、データを検索する方法の一例を概略的に示す。S502において、要求受付部120が、ユーザから、抽出すべきデータの特徴を示す抽出対象情報が含まれる検索要求を受け付ける。要求受付部120は、抽出対象情報を取得部162に送信する。取得部162は、取得した抽出対象情報を識別情報抽出部164に送信する。
 S504において、識別情報抽出部164が、複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出して、探索結果を作成する。探索結果には、識別情報抽出部164が抽出した識別情報が含まれる。識別情報抽出部164は、複数のインデックスファイルのそれぞれについて、複数のインデックスファイルのそれぞれを探索して得られた探索結果を作成してよい。識別情報抽出部164は、探索結果をリスト作成部166に送信する。S506において、リスト作成部166が、識別情報抽出部164から、探索結果を受け取る。リスト作成部166は、識別情報抽出部164が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。
 図6は、識別情報リストを作成する方法の一例を概略的に示す。図6は、図5において説明されたS506において、リスト作成部166が、識別情報リストを作成する方法の一例を概略的に示す。上述のとおり、S506において、リスト作成部166は、識別情報抽出部164から、複数のインデックスファイルのそれぞれに対応する、複数の探索結果を受け取る。
 識別情報抽出部164から受け取った探索結果A、探索結果B、探索結果Cに基づいて、識別情報リストXを作成する場合を例として、識別情報リストを作成する方法の一例について説明する。探索結果Aには、識別情報として、データファイルの識別番号1、3、3、5および6が含まれる。探索結果Bには、識別情報として、データファイルの識別番号3、4、5、7および8が含まれる。探索結果Bには、識別情報として、データファイルの識別番号2、5、6および7が含まれる。
 S602において、リスト作成部166は、複数の探索結果のそれぞれについて、識別情報を昇順に並べ替える。このとき、それぞれの探索結果の中に、同一の識別情報が重複して含まれている場合には、重複する識別情報を削除してよい。これにより、本実施例において、探索結果Aに含まれる識別番号は、1、3、5、6の順に整列される。他の探索結果も同様に整列される。
 S604において、リスト作成部166は、複数の探索結果のそれぞれから、最も小さな識別番号を抽出する。本実施例において、リスト作成部166は、探索結果Aの中から、識別番号1を抽出する。同様に、探索結果Bおよび探索結果Cからは、それぞれ、識別番号3および識別番号2が抽出される。
 S606において、リスト作成部166は、抽出された識別番号の大小を比較して、最も小さな識別番号を、識別情報リストに追加する。本実施例において、リスト作成部166は、探索結果Aから抽出した識別番号1と、探索結果Bから抽出した識別番号3と、探索結果Cから抽出した識別番号2とを比較する。その結果、リスト作成部166は、探索結果Aから抽出した識別番号1を識別情報リストXに追加する。
 複数の探索結果から抽出された識別番号が一致する場合には、予め定められた優先順位に従って、識別情報リストXに追加する識別番号を決定してよい。例えば、複数の探索結果の間で優先順位を決めておいてよい。本実施例においては、探索結果A、探索結果B、探索結果Cの順に優先順位が定められていると仮定する。
 S608において、リスト作成部166は、識別情報リストに追加された識別番号を、元の探索結果から削除する。この場合、リスト作成部166は、探索結果Aから識別番号1を削除する。その結果、探索結果Aに含まれる識別番号は3、5、6になる。
 S610において、リスト作成部166は、比較が完了したか否かを判断する。S610において、リスト作成部166が、比較が完了したと判断した場合(S610のYes)には、S612において、リスト作成部166が、識別情報リストを出力部130に送信して、処理を終了する。S610において、リスト作成部166が、比較が完了していないと判断した場合(S610のNo)には、S602からS610の処理を繰り返す。
 本実施例において、探索結果A、探索結果B、探索結果Cには、識別番号がまだ含まれているので、リスト作成部166は、比較が完了していないと判断して、S602からS610の処理を繰り返す。その結果、最終的には、リスト作成部166は、識別番号1、2、3、4、5、6、7、8が含まれる識別情報リストXを出力部130に送信する。
 図7は、情報処理装置700のシステム構成の一例を概略的に示す。図7は、情報処理装置700を、ネットワーク10およびクライアント端末20とともに示す。ネットワーク10は、インターネット、専用回線、無線パケット通信網であってよい。クライアント端末20は、ネットワーク10を介してメールサーバ710および分散ストレージ720と情報を送受できる装置であればよく、Webブラウザソフトが導入されたパーソナルコンピュータ、携帯電話、携帯端末または無線端末であってよい。クライアント端末20は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。
 情報処理装置700は、受信したメールを格納し、ユーザから検索要求を受け付けて、検索条件に適合するメールのリストを作成し、当該リストをユーザに提示するメール管理システムであってよい。情報処理装置700は、メールサーバ710と、分散ストレージ720とを備える。メールサーバ710は、ファイル管理部140と、通信制御部712とを有する。ファイル管理部140は、更新用インデックスファイル152と、更新用インデックスファイル752とを保持してよい。分散ストレージ720は、管理サーバ730と、1以上のノード740とを有する。管理サーバ730は、アクセス制御部170を含む。1以上のノード740のそれぞれは、記憶部180を含んでよい。
 記憶部180には、データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194が格納されていてよい。データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、複数の記憶部180に分散して格納されてよい。情報処理装置700およびメールサーバ710は、検索装置の一例であってよい。情報処理装置700およびメールサーバ710は、検索システムのサーバの一例であってよい。
 情報処理装置700は、ファイル管理部140が、ネットワーク10を介して、アクセス制御部170および記憶部180と情報をやり取りする点で、情報処理装置100と相違する。情報処理装置700は、データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194が、分散ストレージ720に格納される点で、情報処理装置100と相違する。情報処理装置700は、ファイル管理部140が、データファイルを解析して、複数の更新用インデックスファイルを更新する点で、情報処理装置100と相違する。
 その他の点については、情報処理装置700は、情報処理装置100と同様の構成を有してよい。情報処理装置100の各部と同一または類似の部分には同一の参照番号を付して重複する説明を省く。また、情報処理装置100は、情報処理装置700と同様の構成を有してもよい。
 メールサーバ710は、クライアント端末20、管理サーバ730および複数のノード740と、ネットワーク10を介して情報をやりとりする。メールサーバ710は、メールを受信し、受信したメールを分散ストレージ720に格納する。メールサーバ710は、受信したメールを解析して、更新用インデックスファイル152を更新する。
 メールサーバ710は、予め定められたイベントが発生すると、更新用インデックスファイル152に含まれるインデックス情報をテンポラリーインデックスファイル192として出力して、分散ストレージ720に送信する。メールサーバ710は、クライアント端末20から検索要求を受け付ける。メールサーバ710は、検索条件に適合するメールの識別情報を含む識別情報リストを作成する。メールサーバ710は、検索要求に対する検索結果として、識別情報リストをユーザに提示する。
 メールサーバ710は、単一のサーバから構成されてもよく、複数のサーバから構成されてもよい。メールサーバ710は、仮想サーバまたはクラウドシステムであってよい。メールサーバ710は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。メールサーバ710は、通信制御部712を介して、クライアント端末20、管理サーバ730、ノード740と情報をやり取りする。通信制御部712は、ネットワーク10を介して、他のコンピュータ、携帯電話、携帯端末または無線端末、記憶装置、記憶媒体などと情報をやり取りするインターフェイスであってよい。通信制御部712は、送信部の一例であってよい。
 本実施形態において、インデックスファイル更新部150は、更新用インデックスファイル152の他に、更新用インデックスファイル752を保持する。インデックスファイル更新部150は、データファイル182を解析して、更新用インデックスファイル152および更新用インデックスファイル752を更新する。インデックスファイル更新部150は、更新用インデックスファイル152および更新用インデックスファイル752のそれぞれについて、対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを作成してよい。
 更新用インデックスファイル752は、更新用インデックスファイル152とは異なる種類の特徴情報と、データの識別情報とが対応付けられたインデックス情報を格納してよい。これにより、様々な検索要求に対応することができる。また、より精度の高い検索結果を提示することができる。
 例えば、更新用インデックスファイル152が、データファイルに含まれる文字列と、当該データファイルを識別する識別番号とが対応付けられたインデックス情報を格納してよい。更新用インデックスファイル752が、データファイルに対するユーザの要求と、当該データファイルを識別する識別番号とが対応付けられたインデックス情報を格納してよい。
 メールサーバ710が、文字列「abc」を含むメールを検索する旨の検索要求を受け付けると、識別情報抽出部164は、更新用インデックスファイル152に対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを参照して、文字列「abc」を含むメールの識別情報がリスト化された識別情報リストAを作成してよい。また、識別情報抽出部164は、更新用インデックスファイル752に対応するテンポラリーインデックスファイルおよびマスターインデックスファイルを参照して、例えば、削除されたメールおよび非表示の設定がされているメールの識別情報がリスト化された識別情報リストBを作成してよい。
 識別情報抽出部164は、識別情報リストAと識別情報リストBとを比較して、識別情報リストAから識別情報リストBに含まれる識別情報を削除して、識別情報リストCを作成してよい。メールサーバ710は、検索要求に対する検索結果として、識別情報リストCをユーザに提示してよい。これにより、ユーザに表示すべき検索結果のみをユーザに提示することができる。
 分散ストレージ720は、メールサーバ710から受け取ったデータを格納する。分散ストレージ720は、1つのデータファイルを複数のノード740に分散させて格納してよい。管理サーバ730は、複数のノード740に格納されるデータを管理する。管理サーバ730は、管理ファイル172を格納してよい。管理サーバ730は、ネットワーク10を介して、メールサーバ710および複数の記憶部180のそれぞれと情報をやり取りしてよい。管理サーバ730は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置であってもよい。管理サーバ730は、仮想サーバまたはクラウドシステムであってもよい。
 ノード740は、データを格納する。ノード740は、ネットワーク10を介して、メールサーバ710および管理サーバ730のそれぞれと情報をやり取りしてよい。ノード740は、用途に特化したシステムまたはコントローラであってもよく、パーソナルコンピュータ等の汎用の情報処理装置、ハードディスクなどの記憶装置または記憶媒体であってよい。ノード740は、仮想化またはクラウド化された記憶装置または記憶媒体であってもよい。
 従来技術のように、ファイルサーバの全てのファイルに対して単一のデータベースとして提供されるインデックスファイルを分散ストレージ720に格納した場合、当該インデックスファイルをローカルの記憶装置に格納する場合と比較して、当該インデックスファイルの更新時間が非常に長くなる。しかし、本実施形態によれば、インデックスファイルの更新には、メールサーバ710の記憶装置に格納された更新用インデックスファイル152が利用される。一方、テンポラリーインデックスファイル192およびマスターインデックスファイル194は、分散ストレージ720に格納され、通常は更新されない。そのため、インデックスファイルがファイルサーバの全てのファイルに対して単一のデータベースとして提供される場合と比較して、インデックスファイルの更新時間を大幅に短縮することができる。メールサーバ710の記憶装置は、ローカルの記憶装置の一例であってよい。
 なお、本実施形態において、更新用インデックスファイル152がメールサーバ710に格納され、テンポラリーインデックスファイル192およびマスターインデックスファイル194が分散ストレージ720に格納される場合について説明した。しかし、更新用インデックスファイル152の格納場所は、メールサーバ710に限定されない。更新用インデックスファイル152は、分散ストレージ720に格納されてもよい。この場合であっても、更新用インデックスファイル152のサイズは、インデックスファイルがファイルサーバの全てのファイルに対して単一のデータベースとして提供された場合と比較して小さいので、インデックスファイルの更新時間を短縮することができる。
 さらに、本実施形態によれば、検索時には、複数のインデックスファイルを参照する。そのため、インデックスファイルの探索を並列して実行することができるので、検索時間を短縮することができる。メール管理システムにおいては、受信するメールの数と比較して、メールを検索する頻度が非常に小さい。そのため、インデックスファイルを複数のデータベースとして提供することの効果が顕著になる。
 本実施形態においては、メールサーバ710が、ファイル管理部140の全ての構成を備える場合について説明した。しかし、情報処理装置700は、これに限定されない。例えば、ファイル管理部140の構成のうち、検索部160のリスト作成部166が、クライアント端末20に備えられてもよい。
 この場合、メールサーバ710の識別情報抽出部164は、複数のインデックスファイルから、抽出対象情報に関連する特徴情報に対応付けられている識別情報を抽出する。通信制御部712は、識別情報抽出部164が抽出した1以上の識別情報を、クライアント端末20に送信する。クライアント端末20のリスト作成部166は、識別情報抽出部164が抽出した1以上の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成する。
 メールサーバ710は、クライアント端末20上で動作するプログラムに対して、識別情報リストを作成するよう指示してもよい。メールサーバ710は、識別情報リストを作成するプログラムを、クライアント端末20に送信してもよい。情報処理装置700と、クライアント端末20とを備えたシステムは、検索システムの一例であってよい。
 図8は、更新用インデックスファイル752のデータ構造の一例を概略的に示す。更新用インデックスファイル752は、データファイルに対する要求856と、データファイルを識別する識別番号858とが対応付けられたインデックス情報を格納してよい。要求856は、特徴情報の一例であってよい。識別番号858は、識別情報の一例であってよい。
 図9は、情報処理装置900のシステム構成の一例を概略的に示す。情報処理装置900は、ユーザから検索要求を受け付けて、時系列に連続する複数のデータを含むデータファイルの中から、検索条件に適合するデータを抽出して、ユーザに提示するシステムであってよい。時系列に連続する複数のデータを含むデータファイルとしては、映像データまたはサウンドデータを例示することができる。
 情報処理装置900は、入力部110と、要求受付部120と、出力部130と、ファイル管理部940と、アクセス制御部170と、記憶部180とを備える。ファイル管理部940は、解析部942と、インデックスファイル更新部150と、検索部160とを有する。インデックスファイル更新部150は、更新用インデックスファイル952および更新用インデックスファイル952を保持してよい。記憶部180には、データファイル182、テンポラリーインデックスファイル192およびマスターインデックスファイル194が格納されていてよい。情報処理装置900およびファイル管理部940は、検索装置の一例であってよい。
 情報処理装置900は、ファイル管理部940が、解析部942を備える点で、情報処理装置100および情報処理装置700と相違する。その他の点については、情報処理装置900は、情報処理装置100または情報処理装置700と同様の構成を有してよい。情報処理装置100または情報処理装置700の各部と同一または類似の部分には同一の参照番号を付して重複する説明を省く。また、情報処理装置100および情報処理装置700は、情報処理装置900と同様の構成を有してもよい。
 情報処理装置900は、入力部110に入力されたデータファイル182を、記憶部180に格納する。情報処理装置900は、データファイル182を解析して、更新用インデックスファイル952および更新用インデックスファイル954を更新する。情報処理装置900は、要求受付部120に入力されたユーザからの検索要求を受け付ける。情報処理装置900は、検索条件に適合するデータファイル182の識別情報を含む識別情報リストを作成する。情報処理装置900は、検索要求に対する検索結果として、識別情報リストをユーザに提示する。
 解析部942は、1つのデータファイルに、複数のデータファイルが含まれる場合に、複数のデータファイルのそれぞれを解析する。1つのデータファイルに複数のデータファイルが含まれる場合としては、1つのデータファイルの中に複数の画像データが含まれる場合、または、データファイルが時系列に連続する複数のデータを含む場合を例示することができる。
 説明を簡単にする目的で、データファイルが時系列に連続する複数の画像データを含む映像データである場合を例として、解析部942について説明する。解析部942は、入力部110から、入力されたデータファイル182を受け取る。解析部942は、データファイル182が、映像データであるか否かを判断する。解析部942は、データファイルのデータ形式に基づいて、データファイル182が、映像データであるか否かを判断してよい。解析部942は、データファイル182が映像データでないと判断した場合には、データファイル182をインデックスファイル作成部に送信してよい。
 解析部942は、データファイル182が映像データであると判断した場合には、データファイル182に含まれる複数の画像データのそれぞれに識別情報を付与する。解析部942は、時系列に関する情報と、識別情報とを対応づけてもよい。また、解析部942は、複数の画像データのそれぞれについて特徴情報を解析する。解析部942は、画像データの識別情報と、当該画像データの解析結果とをインデックスファイル更新部150に送信する。解析部942は、画像データの識別情報をアクセス制御部170に送信する。
 解析部942は、特徴情報として、画像に含まれる画素の色相、彩度もしくは明度の有無または割合を解析してよい。このとき、解析部942は、全画素に対する、特定の特徴を有する画素の割合が予め定められた数よりも大きい場合に、当該画像中に当該特定の特徴を有する画素が存在すると判断してもよい。これにより、例えば、映像データの中から、青みがかった画像データを抽出することができる。
 解析部942は、複数の画像データ同士を比較して、画像の変化を特徴情報として解析してもよい。解析部942は、現在解析している画像データを、当該画像データよりも時系列が前の画像データと比較して、予め定められた画素数以上の画素が相違するときには、画像に変化が生じていると判断してよい。解析部942は、当該データの特徴情報として、当該変化の有無または当該変化の内容を解析してよい。
 変化の内容としては、変化が生じた領域を識別する識別番号、変化が生じた領域に含まれる画素を識別する識別番号、および、変化が生じた画素の色相、彩度もしくは明度またはその割合を例示することができる。これにより、例えば、監視カメラの映像データの中から、画面左上に変化があった画像データを抽出することができる。また、監視カメラの映像データの中から、火事が発生した瞬間の画像データを抽出することができる。
 インデックスファイル更新部150は、解析部942から、画像データの識別情報と、当該画像データの解析結果とを受け取る。インデックスファイル更新部150は、受け取った解析結果に含まれる特徴情報の種類に基づいて、1以上のインデックスファイルを更新してよい。例えば、インデックスファイル更新部150は、解析結果の中に、変化が生じた領域の識別番号または当該領域に含まれる画素の識別番号と、当該画像データの識別情報とを対応付けた情報が含まれている場合に、更新用インデックスファイル952を更新してよい。また、解析結果の中に、変化が生じた画素の色相の識別番号と、当該画像の識別情報とを対応付けた情報が含まれている場合に、更新用インデックスファイル954を更新してよい。
 アクセス制御部170は、入力部110から入力されたデータファイル182を受け取る。解析部942から、画像データの識別情報を受け取る。アクセス制御部170は、データファイル182を記憶部180に格納するときに、受け取った識別情報を用いて、管理ファイル172を更新する。
 以上の構成により、情報処理装置900は、検索条件に適合するデータファイル182の識別情報を含む識別情報リストを作成して、ユーザに提供することができる。また、ユーザが識別情報リストに含まれる画像データにアクセスすることを要求した場合に、情報処理装置900は、当該画像データのアクセス先をユーザに提供することができる。監視システムにおいては、記憶されるフレーム数と比較して、画像を検索する頻度が非常に小さい。そのため、インデックスファイルを複数のデータベースとして提供することの効果が顕著になる。
 図10は、更新用インデックスファイル952のデータ構造の一例を概略的に示す。更新用インデックスファイル952は、変化が生じた領域に含まれる画素の識別番号1056と、データファイルおよび画像データを識別する識別番号1058とが対応付けられたインデックス情報を格納してよい。画素の識別番号1056は、特徴情報の一例であってよい。識別番号1058は、識別情報の一例であってよい。
 図11は、更新用インデックスファイル954のデータ構造の一例を概略的に示す。更新用インデックスファイル954は、変化が生じた領域に含まれる画素の色相を識別する識別番号1156と、データファイルおよび画像データを識別する識別番号1158とが対応付けられたインデックス情報を格納してよい。色相の識別番号1156は、特徴情報の一例であってよい。識別番号1158は、識別情報の一例であってよい。
 図12は、一実施形態に係るコンピュータ1900のハードウエア構成の一例を概略的に示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD-ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
 ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
 入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD-ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD-ROMドライブ2060は、CD-ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
 また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウエアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
 RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD-ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
 一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD-ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
 また、CPU2000は、ハードディスクドライブ2040、CD-ROMドライブ2060(CD-ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれる。
 また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
 また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
 以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD-ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
 コンピュータ1900にインストールされ、コンピュータ1900を検索装置、検索システムまたは検索装置もしくは検索システムの各部として機能させるプログラムは、各部の動作を規定したモジュールを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、出力制御システムまたは出力制御装置の各部としてそれぞれ機能させる。
 これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の検索装置または検索システム、例えば情報処理装置100、情報処理装置700または情報処理装置900を構築できる。
 以上の記載によれば、本願の明細書には、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が記載されている。また、コンピュータに、上記の方法を実行させるプログラムが記載されている。
 以上の記載によれば、本願の明細書には、サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、サービスが、抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、複数のデータのそれぞれを識別する識別情報と、複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、抽出対象情報に関連する特徴情報に対応付けられている識別情報を、複数のインデックスファイルから抽出する識別情報抽出段階と、抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階とを備える方法が記載されている。また、コンピュータに、上記の方法を実行させるプログラムが記載されている。
 以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、請求の範囲の記載から明らかである。
 請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
 10 ネットワーク、20 クライアント端末、100 情報処理装置、110 入力部、120 要求受付部、130 出力部、140 ファイル管理部、150 インデックスファイル更新部、152 更新用インデックスファイル、160 検索部、162 取得部、164 識別情報抽出部、166 リスト作成部、170 アクセス制御部、172 管理ファイル、180 記憶部、182 データファイル、192 テンポラリーインデックスファイル、194 マスターインデックスファイル、296 文字列、298 識別番号、376 識別番号、378 格納場所、700 情報処理装置、710 メールサーバ、712 通信制御部、720 分散ストレージ、730 管理サーバ、740 ノード、752 更新用インデックスファイル、856 要求、858 識別番号、900 情報処理装置、940 ファイル管理部、942 解析部、952 更新用インデックスファイル、954 更新用インデックスファイル、1056 識別番号、1058 識別番号、1156 識別番号、1158 識別番号、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD-ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD-ROM

Claims (11)

  1.  抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、
     複数のデータのそれぞれの特徴を示す特徴情報と、前記複数のデータのそれぞれを識別する識別情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出部と、
     前記識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部と、
     を備える、検索装置。
  2.  前記特徴情報は、前記複数のデータのそれぞれの一部に関する特徴を示す情報を含む、
     請求項1に記載の検索装置。
  3.  インデックスファイルを更新するインデックスファイル更新部をさらに備え、
     前記インデックスファイル更新部は、
     予め定められたイベントが発生するまで、第1のインデックスファイルを更新し、
     予め定められたイベントが発生すると、前記第1のインデックスファイルに基づき、第2のインデックスファイルを作成する、
     請求項1または請求項2に記載の検索装置。
  4.  前記複数のデータのそれぞれの前記識別情報と、前記複数のデータのそれぞれのアクセス先を示すアクセス情報とが対応付けられた管理ファイルを参照して、前記識別情報リストに含まれる識別情報と一致する識別情報に対応付けられているアクセス情報を、前記管理ファイルから抽出するアクセス情報抽出部をさらに備える、
     請求項1から請求項3までの何れか一項に記載の検索装置。
  5.  前記複数のデータを格納する複数の記憶装置と、
     前記管理ファイルを格納し、ネットワークを介して、前記複数の記憶装置のそれぞれと情報をやり取りする管理サーバと、
     をさらに備える、
     請求項4に記載の検索装置。
  6.  ユーザから、前記抽出対象情報を含む検索要求を受け付ける要求受付部と、
     検索要求に対する検索結果として、ユーザに前記識別情報リストを提示する出力部と、
     をさらに備える、
     請求項1から請求項5までの何れか一項に記載の検索装置。
  7.  クライアント端末と、
     前記クライアント端末とネットワークを介して情報をやりとりするサーバと、
     を備え、
     前記サーバは、
     抽出すべきデータの特徴を示す抽出対象情報を取得する取得部と、
     複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出部と、
     前記識別情報抽出部が抽出した複数の識別情報を、前記クライアント端末に送信する送信部と、
     を有し、
     前記クライアント端末は、
     前記識別情報抽出部が抽出した複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成部を有する、
     検索システム。
  8.  抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、
     複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出段階と、
     前記抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階と、
     を備える、方法。
  9.  インデックスファイルを更新するインデックスファイル更新段階をさらに備え、
     前記インデックスファイル更新段階は、
     予め定められたイベントが発生するまで、第1のインデックスファイルを更新する段階と、
     予め定められたイベントが発生すると、前記第1のインデックスファイルに基づき、第2のインデックスファイルを作成する段階と、
     を有する、
     請求項8に記載の方法。
  10.  サーバが、ネットワークを介して、クライアント端末にサービスを提供する方法であって、
     前記サービスが、
     抽出すべきデータの特徴を示す抽出対象情報を取得する取得段階と、
     複数のデータのそれぞれを識別する識別情報と、前記複数のデータのそれぞれの特徴を示す特徴情報とが対応付けられた複数のインデックスファイルを参照して、前記抽出対象情報に関連する特徴情報に対応付けられている識別情報を、前記複数のインデックスファイルから抽出する識別情報抽出段階と、
     前記抽出段階において抽出された複数の識別情報の中に同一の識別情報が複数含まれるか否かを判断し、同一の識別情報が重複して含まれていない識別情報リストを作成するリスト作成段階と、
     を備える、
     方法。
  11.  検索装置用のプログラムを記憶するコンピュータ読み取り可能な媒体であって、
     前記プログラムは、コンピュータを、請求項1から請求項5までの何れか一項に記載の検索装置として機能させる、コンピュータ読み取り可能な媒体。
PCT/JP2012/002090 2011-03-28 2012-03-26 検索装置、検索システム、方法およびプログラム WO2012132395A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/038,701 US20140032511A1 (en) 2011-03-28 2013-09-26 Search device, a search method and a computer readable medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-070902 2011-03-28
JP2011070902A JP5492814B2 (ja) 2011-03-28 2011-03-28 検索装置、検索システム、方法およびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/038,701 Continuation US20140032511A1 (en) 2011-03-28 2013-09-26 Search device, a search method and a computer readable medium

Publications (1)

Publication Number Publication Date
WO2012132395A1 true WO2012132395A1 (ja) 2012-10-04

Family

ID=46930171

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/002090 WO2012132395A1 (ja) 2011-03-28 2012-03-26 検索装置、検索システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US20140032511A1 (ja)
JP (1) JP5492814B2 (ja)
WO (1) WO2012132395A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130049111A (ko) * 2011-11-03 2013-05-13 한국전자통신연구원 분산 처리를 이용한 포렌식 인덱스 방법 및 장치
JP6263984B2 (ja) * 2013-11-25 2018-01-24 富士ゼロックス株式会社 中継装置及びプログラム
US9501661B2 (en) * 2014-06-10 2016-11-22 Salesforce.Com, Inc. Systems and methods for implementing an encrypted search index
JP6515457B2 (ja) * 2014-07-31 2019-05-22 株式会社リコー 情報処理システム、情報処理方法および情報処理装置
US20160140132A1 (en) * 2014-11-19 2016-05-19 Unisys Corporation Online redistribution
US9886210B2 (en) * 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US10241676B2 (en) * 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
WO2018136760A1 (en) * 2017-01-20 2018-07-26 Mz Ip Holdings, Llc Systems and methods for reconstructing cache loss
KR102089348B1 (ko) * 2019-01-28 2020-03-16 주식회사 와이즈넛 분산 데이터 저장 장치 기반 검색 엔진 시스템 및 검색 방법
CN110896533B (zh) * 2019-06-28 2023-07-14 腾讯科技(深圳)有限公司 车辆通信消息处理方法、装置
CN110597815A (zh) * 2019-09-17 2019-12-20 深圳市数聚能源科技有限公司 业务处理方法、装置、计算机设备和存储介质
CN111190858B (zh) * 2019-10-15 2023-07-14 腾讯科技(深圳)有限公司 软件信息存储方法、装置、设备和存储介质
JP7193602B2 (ja) * 2020-07-09 2022-12-20 株式会社日立製作所 システム及びその制御方法並びにプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217558A (ja) * 2007-03-06 2008-09-18 Toshiba Corp 医用画像管理システム、医用画像書き込み方法、及び医用画像書込プログラム
JP2010020525A (ja) * 2008-07-10 2010-01-28 Mitsubishi Electric Corp 検索装置及びコンピュータプログラム及び検索方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916607A (ja) * 1995-06-26 1997-01-17 Hitachi Ltd データベース管理システムにおけるインデクス管理方法
JP3918230B2 (ja) * 1996-04-30 2007-05-23 セイコーエプソン株式会社 データ更新監視サーバ
US5905866A (en) * 1996-04-30 1999-05-18 A.I. Soft Corporation Data-update monitoring in communications network
US6757675B2 (en) * 2000-07-24 2004-06-29 The Regents Of The University Of California Method and apparatus for indexing document content and content comparison with World Wide Web search service
JP2003030224A (ja) * 2001-07-17 2003-01-31 Fujitsu Ltd 文書クラスタ作成装置、文書検索システムおよびfaq作成システム
JP3945282B2 (ja) * 2002-03-19 2007-07-18 セイコーエプソン株式会社 情報検索装置、情報検索方法、プログラムおよび記録媒体
US8095500B2 (en) * 2003-06-13 2012-01-10 Brilliant Digital Entertainment, Inc. Methods and systems for searching content in distributed computing networks
US7567959B2 (en) * 2004-07-26 2009-07-28 Google Inc. Multiple index based information retrieval system
US7580921B2 (en) * 2004-07-26 2009-08-25 Google Inc. Phrase identification in an information retrieval system
US20080201318A1 (en) * 2006-05-02 2008-08-21 Lit Group, Inc. Method and system for retrieving network documents
JP4436858B2 (ja) * 2007-04-09 2010-03-24 シャープ株式会社 画像処理装置、画像形成装置、画像送信装置、画像読取装置、画像処理システム、画像処理方法、画像処理プログラムおよびその記録媒体
US8635228B2 (en) * 2009-11-16 2014-01-21 Terrago Technologies, Inc. Dynamically linking relevant documents to regions of interest
US8527556B2 (en) * 2010-09-27 2013-09-03 Business Objects Software Limited Systems and methods to update a content store associated with a search index
US8843507B2 (en) * 2011-03-28 2014-09-23 Microsoft Corporation Serving multiple search indexes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008217558A (ja) * 2007-03-06 2008-09-18 Toshiba Corp 医用画像管理システム、医用画像書き込み方法、及び医用画像書込プログラム
JP2010020525A (ja) * 2008-07-10 2010-01-28 Mitsubishi Electric Corp 検索装置及びコンピュータプログラム及び検索方法

Also Published As

Publication number Publication date
JP5492814B2 (ja) 2014-05-14
JP2012203865A (ja) 2012-10-22
US20140032511A1 (en) 2014-01-30

Similar Documents

Publication Publication Date Title
JP5492814B2 (ja) 検索装置、検索システム、方法およびプログラム
US9703782B2 (en) Associating media with metadata of near-duplicates
JP6785921B2 (ja) ピクチャ検索方法、装置、サーバー及び記憶媒体
US8572087B1 (en) Content identification
US9542474B2 (en) Forensic system, forensic method, and forensic program
US20210011913A1 (en) Delta graph traversing system
CN107357794A (zh) 优化键值数据库的数据存储结构的方法和装置
US9110893B2 (en) Combining problem and solution artifacts
US20160170983A1 (en) Information management apparatus and information management method
US20140207729A1 (en) Rapid Provisioning of Information for Business Analytics
CN112328653B (zh) 数据识别方法、装置、电子设备及存储介质
JP2004192212A (ja) ファイルの自動格納システム、自動格納プログラム及び自動格納方法
CN111444159B (zh) 精算数据处理方法、装置、电子设备及存储介质
JPWO2014069582A1 (ja) 関連情報提示装置及び関連情報提示方法
JP5903171B2 (ja) データ加工システムおよびデータ加工方法
KR101592670B1 (ko) 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법
JP6905724B1 (ja) 情報提供システム及び情報提供方法
US11494093B2 (en) Method and apparatus for processing data of in-memory database
CN112860813B (zh) 检索信息的方法和装置
US9754030B2 (en) Free text search engine system and method
CN113268987B (zh) 一种实体名称识别方法、装置、电子设备和存储介质
US11961334B2 (en) Biometric data storage using feature vectors and associated global unique identifier
US20240037214A1 (en) Information processing device, information processing method, and computer readable medium
US20240111742A1 (en) Management device, management method, and recording medium
US20140222781A1 (en) Generating and displaying an image tour in response to a user search query

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: 12764201

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12764201

Country of ref document: EP

Kind code of ref document: A1