WO2013179441A1 - 検索サーバ、検索方法及びプログラム - Google Patents
検索サーバ、検索方法及びプログラム Download PDFInfo
- Publication number
- WO2013179441A1 WO2013179441A1 PCT/JP2012/064087 JP2012064087W WO2013179441A1 WO 2013179441 A1 WO2013179441 A1 WO 2013179441A1 JP 2012064087 W JP2012064087 W JP 2012064087W WO 2013179441 A1 WO2013179441 A1 WO 2013179441A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- search
- index
- search result
- result data
- server
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
Definitions
- the present invention relates to a search server, a search method, and a program for searching for desired data from a large-scale database.
- Patent Document 1 There is Sho 64-35627 (Patent Document 1) as one method of search processing in the full-text search system.
- the technology described in Patent Document 1 is “By storing a pointer to a specific character chain in a text in a character chain index, it is not necessary to search all the text in the text search processing for a keyword, It is possible to search for “keywords”.
- a search system without a search omission is realized.
- Patent Document 2 As another search process, there is JP-A-2000-231563 (Patent Document 2).
- the technique disclosed in Patent Document 2 “performs a word identification process such as morphological analysis on a registration target document, identifies the beginning position and end position of the word, and acquires word boundary information based on the identification result. Further, a search index having document identification information, appearance position information in the n-gram document, and the word boundary information is generated for a predetermined partial character string (n-gram) extracted from the registration target document.
- n-gram predetermined partial character string
- a search index corresponding to the search term is extracted, and based on the search index, word identification search processing (forward match, backward match, complete match) using these word boundary information is used. Match search processing) and an arbitrary word search not aware of word boundaries that do not use word boundary information are realized at high speed ".
- the stored information is e-mails, study notes, design specifications, and payment documents. And so on.
- search process that extracts all information including specific keywords for audit purposes, a search process that extracts emails about specific cases sent to and received from a specific person, or a search that extracts telephone numbers of related departments Searchers' search purposes such as processing are also diverse.
- Patent Document 1 As a system for realizing search processing for audit purposes, there is a system using an index as described in Patent Document 1. Moreover, as a system that implements a search process that uses a character string extracted as a word, such as the name of a specific person and the name of a specific case, and that also satisfies the auditing purpose, an index as in Patent Document 2 is used. There was a system that was.
- a case of executing a search process using an index “generated by extracting only important words” or a case of adding an index of a new viewpoint can be considered.
- an index “generated by extracting only important words” is referred to as an important word index.
- search processing for the search term “mobile phone” from a search matrix that includes a wide range of information such as email, study memos, design specifications and payment documents, including the enterprise search system. It can be troublesome.
- a first system that executes a search process using an important word index and a second system that executes a search process using an index “all items including a specified keyword have been extracted” will be described.
- search processing in the second system is executed for the search term “mobile phone”, documents with document IDs 3, 5, 9, 11, 17, 23, 28, 29, and 35 are extracted. And Since the extracted documents are all documents including settlement documents and examination memos, the search results are often satisfactory for a searcher for audit purposes.
- a typical example of the invention disclosed in the present application is as follows. That is, a search server that executes a search process based on a search query including one or more search words, the search server including a processor that accesses a storage device that stores a search matrix that is target data for the search process; A plurality of index generation units that generate an index used when executing a search process corresponding to an arbitrary search query, and the indexes generated by each of the plurality of index generation units according to the arbitrary search query A plurality of search units for executing a search process on the search matrix and an output unit for outputting a search result acquired by the search process, and when the search query is received, the plurality of indexes Each of the plurality of indexes is executed by executing a search process corresponding to the received search query. Gets the respective search result data of the search processing using outputs information for displaying the search results is included in at least one of the search result data of each of the acquired.
- a single search server can acquire a plurality of search results having different characteristics by executing a search process using a plurality of indexes having different characteristics. This saves the trouble of using different search servers for each index.
- FIG. 1 is an explanatory diagram showing a configuration example of a search system in the first embodiment of the present invention.
- the search system includes a search server 100, a client 200, and a storage device 300.
- the search server 100 and the client 200 are connected via a network 400.
- the network 400 may have various wired and wireless configurations such as LAN, WAN, and SAN.
- the present invention may be any network as long as the search server 100 and the client 200 can communicate with each other.
- the network 400 includes a plurality of network devices (not shown).
- the network device includes, for example, a switch and a gateway.
- the search server 100 is a computer that receives a search condition (query) from the client 200, executes a full-text search process according to the search condition, and displays a desired search result.
- a search condition query
- the full-text search process is also referred to as a search process.
- the search server 100 includes a processor 101, a main storage device 102, a network port 103, a storage port 104, an input device 105, and an output device 106. Each component is connected to each other by, for example, an internal bus.
- the processor 101 executes a program stored in the main storage device 102.
- the functions of the search server 100 can be realized by the processor 101 executing the program.
- the processor 101 is executing the program.
- the main storage device 102 stores a program executed by the processor 101 and information necessary for executing the program.
- the main storage device 102 may be a memory such as a DRAM, for example.
- the programs and information stored in the main storage device 102 will be described later.
- the network port 103 is connected to other devices via the network.
- the network port 103 can be, for example, a NIC.
- the network port 103 is connected to the client 200 via the network 400.
- the storage port 104 is connected to a storage device such as an HDD or a storage system.
- the storage port 104 may be an HBA.
- the storage port 104 is connected to the storage device 300.
- the input device 105 is a device for an administrator who operates the search server 100 to input information.
- the input device 105 includes a keyboard, a mouse, a touch panel, and the like.
- the output device 106 is a device for presenting information to the administrator.
- the output device 106 includes a display or the like.
- the client 200 is a computer used by a searcher.
- the searcher operates the client 200 to transmit a search condition to the search server 100.
- the client 200 includes a processor 201, a main storage device 202, a network port 203, an input device 204, and an output device 205.
- the processor 201 executes a program stored in the main storage device 202.
- the functions of the client 200 can be realized by the processor 201 executing the program.
- the main storage device 202 stores a program executed by the processor 201 and information necessary for executing the program.
- the main storage device 202 may be a memory such as a DRAM, for example.
- the OS and applications are stored in the main storage device 202.
- the network port 203 is connected to other devices via the network.
- the network port 203 can be, for example, a NIC.
- the network port 203 is connected to the search server 100 via the network 400.
- the input device 204 is a device for a searcher who operates the client 200 to input information.
- the input device 204 includes a keyboard, a mouse, a touch panel, and the like.
- the output device 205 is a device for presenting information to the searcher.
- the output device 205 includes a display or the like.
- the storage device 300 stores various information used by the search server 100.
- the storage device 300 may be, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like. Information stored in the storage device 300 will be described later.
- the storage device 300 is described as an external device of the search server 100, but the search server 100 may include the storage device 300.
- the search server 100 may be connected to a storage system having a plurality of storage devices 300 instead of the storage device 300. Further, the search server 100 may have a function that the client 200 has, for example, a searcher application that transmits search conditions.
- the main storage device 102 includes a system control unit 110, a data registration control unit 115, a plurality of index generation units 120, a use rule setting unit 125, a search control unit 130, a use index determination unit 135, a plurality of search units 140, and a deduplication unit. 145 and a program for realizing the output unit 150 are stored.
- the main storage device 102 stores the index use order information 160, the search result list 165, and the displayed list 170.
- the system control unit 110 supervises the processing in the search server 100. Specifically, the system control unit 110 calls the data registration control unit 115 or the search control unit 130 according to the processing content. The processing executed by the system control unit 110 will be described with reference to FIG.
- the data registration control unit 115 supervises the processing executed at the time of index generation. Specifically, the data registration control unit 115 calls the index generation unit 120 or the usage rule setting unit 125 according to the processing content. The processing executed by the data registration control unit 115 will be described with reference to FIG.
- Each of the plurality of index generation units 120 generates an index used during search processing. In the present embodiment, different indexes are generated by each index generation unit 120.
- index for example, a data structure in which a character string is associated with an identifier of a file including the character string, a file name, a file content, and the like can be considered.
- the present invention is not limited to the index data structure.
- FIG. 1 shows two index generation units A 120-1 and B 120-2 as an example.
- the index generation unit A 120-1 generates an index A 320-1
- the index generation unit B 120-2 generates an index B 320-2.
- index generation units 120 there may be two or more index generation units 120 as long as they generate an index that can acquire different search results.
- the usage rule setting unit 125 sets the order in which indexes are used when executing a search process using different indexes. Specifically, the usage rule setting unit 125 reads the index usage rule 315 and sets it as the index usage order information 160.
- the search control unit 130 supervises search processing. Specifically, the search control unit 130 calls the use index determination unit 135, the search unit 140, the deduplication unit 145, and the output unit 150 according to the processing content. The processing executed by the search control unit 130 will be described with reference to FIGS. 9A and 9B.
- the use index determination unit 135 determines the use order of the index based on the index use order information 160.
- the search unit 140 executes a search process on the search matrix 310 using the index generated by the corresponding index generation unit 120, and generates a search result list 165.
- the generated search result list 165 is stored on the main storage device 102.
- search process executed by the search unit 140 is a well-known technique, and thus the description thereof is omitted. In this embodiment, it is assumed that the number of index generation units 120 and the number of search units 140 are the same.
- FIG. 1 shows two search units A140-1 and B140-2 as an example.
- the search unit A140-1 executes a search process using the index A320-1 generated by the index generation unit A120-1
- the search unit B140-2 uses the index B320- generated by the index generation unit B120-2. 2 is used to execute the search process. Note that there may be two or more search units 140.
- the deduplication unit 145 uses the search result list 165 and the displayed list 170 to eliminate duplicate search results. The processing executed by the deduplication unit 145 will be described later with reference to FIG.
- the output unit 150 displays the search result of the search process based on the search result list 165.
- the index usage order information 160 stores information for determining the index usage order. For example, definition information is stored such that the index A 320-1 is used in the order of the index B 320-2, or the index is used in the order of smaller size according to the search condition.
- the search result list 165 is information including one or more search results output by the search process executed by each search unit 140.
- the displayed list 170 stores information on search results displayed to the searcher. Specifically, the identifier of the search result displayed for the searcher is stored.
- the storage device 300 stores a search matrix 310, an index usage rule 315, and a plurality of indexes 320.
- the search matrix 310 is data such as documents to be searched.
- the index usage rule 315 stores definition information necessary for setting the index usage order information 160.
- the index use rule 315 may be stored in advance or may be set by a searcher. When the searcher sets the index use rule 315, the use rule setting unit 125 stores the input information in the storage device 300.
- the index 320 is an index generated by the index generation unit 120.
- FIG. 1 shows an index A 320-1 generated by the index generation unit A 120-1 and an index B 320-2 generated by the index generation unit B 120-2.
- the generated index 320 may be stored in the main storage device 102 for speeding up the processing.
- the search server 100 moves the index 320 from the main storage device 102 to the storage device 300 when a certain period of time has elapsed or the number of accesses has decreased.
- each index 320 is generated for the same search matrix 310.
- index A 320-1 is an N-gram index
- index B 320-2 is an important word index.
- the program stored in the main storage device 102 may be stored in the storage device 300.
- the processor 101 reads a program from the storage device 300, loads the read program onto the main storage device 102, and executes the loaded program. Further, information stored in the storage device 300 may be stored in the main storage device 102.
- FIG. 2 is an explanatory diagram showing an example of a search result using a plurality of indexes in the first embodiment of the present invention.
- search processing result set A using the index A and a search processing result set B using the index B exist in the search matrix.
- the result set A corresponds to the search result list in the search process using the index A 320-1
- the result set B corresponds to the search result list in the search process using the index B 320-2.
- the result set B has many parts included in the correct set, and the common part of the correct set and the result set B, that is, the product set is a correct set by the index B.
- the result set A includes a small part in the correct answer set, it is possible to acquire a correct answer set that is not searched in the search process using the index B.
- the result set A has many parts that are not included in the correct answer set. That is, the noise in the search process is large.
- the search server 100 can reduce the amount of showing the search result (noise) deviating from the correct set by first presenting the result set B to the searcher.
- the search server 100 after displaying the search results included in the result set B, the search server 100 further displays the search results included in the result set A when a searcher requests presentation of the search results. . At this time, the search server 100 excludes the search results already displayed to the searcher from the search results to be newly displayed. As a result, it is possible to display to the searcher “a correct set that is not searched in the search process using the index B but hits in the search process using the index A”.
- FIG. 3 is an explanatory diagram showing the flow of processing in the first embodiment of the present invention.
- the search server 100 acquires the search matrix 310 stored in the storage device 300.
- the search server 100 outputs an index generation instruction together with the acquired search matrix to the index generation unit A 120-1 and the index generation unit B 120-2.
- the index generation unit A 120-1 and the index generation unit B 120-2 Upon receipt of the index generation instruction, the index generation unit A 120-1 and the index generation unit B 120-2 generate the index A 320-1 and the index B 320-2, respectively.
- the search server 100 When the search server 100 receives a search condition using “mobile phone” as a search term, the search server 100 instructs each of the search unit A 140-1 and the search unit B 140-2 to execute search processing.
- the search unit A140-1 that has received the instruction executes a search process using the index A320-1
- the search unit B140-2 that has received the instruction executes a search process using the index B320-1.
- Search unit A140-1 outputs search result list A165-1 as a result of search processing
- search unit B140-2 outputs search result list B165-2 as a result of search processing.
- FIG. 4 is an explanatory diagram showing an example of the search result list 165 in the first embodiment of the present invention.
- the search result list 165 includes one or more search results (entries) including a document ID 501, a title 502, a snippet 503, and a URL 504.
- the search result may include other information.
- the search result list 165 stores a search result or the like indicating that there is no corresponding data.
- Document ID 501 is an identifier for uniquely identifying a document including a search term.
- the title 502 is a document title.
- the snippet 503 is document fragment information.
- URL 504 is an address for accessing a document.
- the search result list A 165-1 is a set of document IDs “3, 5, 9, 11, 17, 18, 23, 29, 35”, and the search result list B 165-2 is a document The set of IDs is “5, 11, 29”.
- the deduplication unit 145 outputs the display list 410 so that the search results included in the search result list 165 do not display search results with duplicate document IDs.
- an index use rule 315 is set in advance as information for determining the order of use of the index 320.
- an index usage rule 315 for preferentially using an index 320 having a small size is set.
- the number of elements of the index B 320-2 is small, and the index B 320-2 is preferentially used. This is because the calculation cost in the search process can be reduced by using the index 320 in ascending order of size.
- the search server 100 preferentially outputs the index B search result list B 165-2 in order to output the display list 410-1.
- the document ID set “5, 29” is a correct answer set based on the index B.
- the search server 100 displays the display list 410-2 that does not include the document ID already displayed in the display list 410-1, and further displays the display list.
- a display list 410-3 that does not include the document ID displayed in 410-1 and display list 410-2 is displayed.
- the document with the document ID “17, 35” is an element of a correct answer set that is not searched in the search process using the index B 320-2, but is a correct answer set that is hit in the search process using the index A 320-1. .
- the above-described processing can reduce the number of times the searcher refers to noise, and there is no need to use different search systems with different indexes 320. Further, the search server 100 can reduce the calculation cost by reducing the frequency of the search process using the index A 320-1.
- FIG. 5 is a flowchart for explaining processing executed by the system control unit 110 in the first embodiment of the present invention.
- the system control unit 110 determines whether the control signal is an index generation instruction or an index use rule setting instruction (steps S101 and S103).
- the control signal may be input from the client 200 via the network 400 or may be input from the input device 105.
- the system control unit 110 calls the data registration control unit 115 (step S107) and ends the process.
- the processing executed by the data registration control unit 115 will be described later with reference to FIG.
- the system control unit 110 determines whether the control signal is a search condition or a display instruction (step S105).
- the system control unit 110 ends the process. At this time, it is assumed that the processor 101 executes processing corresponding to the control signal.
- the system control unit 110 calls the search control unit 130 (step S109) and ends the process.
- the processing executed by the search control unit 130 will be described later with reference to FIGS. 9A and 9B.
- 6A, 6B, and 6C are explanatory diagrams illustrating an example of a setting screen according to the first embodiment of this invention.
- the setting screen 600-1 is an initial screen for performing various settings in the enterprise search system.
- the setting screen 600-1 includes an index generation operation button 610 and an index use rule operation button 620.
- the index generation operation button 610 is an operation button for outputting an index generation instruction. By operating the index generation operation button 610, a control signal corresponding to the index generation instruction is output to the search server 100.
- the setting screen 600-2 is an operation screen for setting a generation rule for the index 320.
- a priority order that is the order in which indexes are generated is set.
- the setting screen 600-2 includes determination buttons 630-1, 630-2, a priority order setting area 640, and an index generation execution operation button 650.
- the priority order setting area 640 is an area for setting the priority order.
- the priority order setting area 640 includes index information 641 and a change order button 642.
- the index information 641 displays index identification information.
- the order change button 642 is an operation button for changing the priority order. By operating the rank change button 642, the index identification information displayed in the index information 641 is switched. In the present embodiment, the priority is higher in order from the top, and the indexes are generated in order from the highest priority.
- the determination button 630 is an operation button for reflecting the information set in the priority order setting area 640. By operating the decision button 630, the generation rule including the priority order is output to the search server 100.
- the search server 100 stores the generation rule set in the priority order setting area 640 on the main storage device 102.
- the two decision buttons 630-1 and 630-2 are displayed for the convenience of the operator, and at least one is sufficient. Convenience is improved when there are a large number of index information 641 and it is necessary to scroll the display area.
- the index generation execution operation button 650 is an operation button for outputting an index generation instruction. By operating the index generation execution operation button 650, a control signal corresponding to the index generation instruction is output to the search server 100.
- the index use rule operation button 620 shown in FIG. 6A is an operation button for setting an index use rule.
- a setting screen 600-3 as shown in FIG. 6C is displayed.
- the setting screen 600-3 includes determination buttons 660-1, 660-2, an index list display area 670, an index use rule display area 680, and an add operation button 690.
- the index list display area 670 displays a list of indexes that can be used in the system. It is displayed so that an index set in the index usage rule can be discriminated from an index not set in the index usage rule.
- the searcher can select the index displayed in the index list display area 670 and operate the add operation button 690 to add the selected index to the index use rule.
- the index usage rule display area 680 displays the index set as the index usage rule and the order in which the index is used. Specifically, the index usage rule display area 680 includes index information 681 and a rank change button 682.
- the index information 681 is the same as the index information 641.
- the order change button 682 is an operation button for changing the order in which the indexes are used or deleting the index from the index use rule.
- the determination button 660 is an operation button for reflecting the information set in the index usage rule display area 680. By operating the determination button 660, a control signal corresponding to the index usage rule setting instruction is output to the search server 100.
- buttons 660-1 and 660-2 are displayed for the convenience of the searcher, and at least one is sufficient.
- 7A, 7B, and 7C are explanatory diagrams illustrating an example of an operation screen according to the first embodiment of this invention.
- the operation screen 700-1 includes a search window 710 and a search operation button 720.
- Search window 710 is an area for inputting a search term.
- the search operation button 720 is an operation button for outputting search conditions. By operating the search operation button 720, a control signal corresponding to a search condition including one or more search terms is output to the search server 100.
- the search term may be input by voice, moving image data, or the like.
- the operation screen 700-2 is a screen after the search operation button 720 is operated.
- the operation screen 700-2 newly includes a search result display area 730.
- the search result display area 730 is an area where search results are displayed.
- the search result display area 730 includes a search result 750 and a display operation button 740.
- the search result 750 is a search result output by the output unit 150.
- the output unit 150 displays search results corresponding to the display list 410 in the search result display area 730. In this embodiment, three search results are included in one display list 410. Therefore, when the search operation button 720 is operated, three search results 750 are displayed.
- the display operation button 740 is an operation button for outputting a display instruction for displaying the search result. By operating the display operation button 740, a control signal corresponding to the display instruction is output to the search server 100.
- buttons 740-1 and 740-2 are displayed for the convenience of the searcher, and at least one is sufficient.
- the operation screen 700-3 is another example of the screen after the search operation button 720 is operated.
- the operation screen 700-3 newly includes a search result display area 731 in addition to the search result display area 730 of FIG. 7B.
- the search result display area 731 displays the search results obtained by subtracting the search results by the higher priority search index from the search results by the lower priority search index (for example, information on the display list 410-2 in FIG. 3). .) That is, in this example, search results of search indexes having different characteristics are displayed on the same screen at the same time.
- the search result 751 is a search result based on a lower-order index output by the output unit 150 (excluding those that overlap with the search result 750).
- the output unit 150 displays the search results corresponding to the display list 410-2 (FIG. 3) in the search result display area 731.
- search result display areas 730 and 731 may be arranged in an upper or lower direction, or one of them may be displayed larger or partially overlapped.
- FIG. 8 is a flowchart for explaining processing executed by the data registration control unit 115 in the first embodiment of the present invention.
- the data registration control unit 115 starts processing when called from the system control unit 110. At this time, the system control unit 110 notifies the contents of the control signal.
- the data registration control unit 115 determines whether or not the control signal is an instruction to set an index usage rule (step S201).
- the data registration control unit 115 calls the usage rule setting unit 125 (step S209) and ends the process.
- the usage rule setting unit 125 executes an index usage rule setting process. Specifically, the index usage rule included in the control signal is stored in the storage device 300.
- the index usage rule may be a specific usage order such as “first important word index, second word index, third N-gram index” or “used in search conditions”.
- the order of use such as “use a smaller index preferentially”, can be considered.
- the data registration control unit 115 starts an index generation processing loop (steps S203 to S207).
- the data registration control unit 115 calls the index generation unit 120 as many times as necessary (step S205), and ends the process.
- index generation loop all the index generation units 120 included in the search server 100 may be called, or only the index generation unit 120 corresponding to an index designated in advance may be called. Further, when there is a surplus in computer resources of the search server 100, an index generation loop may be executed.
- the data registration control unit 115 calls the index generation unit 120 according to the index generation rule.
- Each index generation unit 120 called by the data registration control unit 115 executes an index generation process. Specifically, each index generation unit 120 generates an index 320 using the search matrix 310 and stores the generated index 320 in the storage device 300. Since the index generation process may use a known technique, the description thereof is omitted. In addition, this invention is not limited to the index production
- the search server 100 generates a plurality of indexes 320 when receiving one index generation instruction.
- the data registration control unit 115 calls the use rule setting unit 125.
- the called use rule setting unit 125 executes an index generation rule setting process. Specifically, the index generation rule included in the control signal is stored in the storage device 300.
- FIGS. 9A and 9B are flowcharts for explaining processing executed by the search control unit 130 in the first embodiment of the present invention.
- the search control unit 130 starts processing when called from the system control unit 110. At this time, the system control unit 110 notifies the contents of the control signal.
- the search control unit 130 determines whether or not the control signal is a search condition (step S301).
- the search control unit 130 calls the use index determining unit 135 (step S303).
- the called use index determination unit 135 executes the index use order determination process. Specifically, the use index determination unit 135 acquires the index use rule 315 from the storage device 300, determines the use order of the index, and uses the determined use order of the index as the index use order information 160. Store on top.
- the usage index determination unit 135 determines the index usage order according to the index usage rule 315.
- the usage index determination unit 135 refers to the index 320 and determines the usage order of the indexes according to the defined condition. Note that the present invention is not limited to the method for determining the order in which indexes are used.
- the search control unit 130 acquires the index use order information 160 stored on the main storage device 102 (step S305).
- the search control unit 130 calls the search unit 140 corresponding to the highest index 320 based on the acquired index use order information 160 (step S307). At this time, the search control unit 130 calls the search unit 140 together with the search condition.
- the called search unit 140 executes a search process using the index 320 according to the search condition.
- the search unit 140 stores the search result list 165 on the main storage device 102 as a result of the search process, and notifies the end of the search process. Since the search process is publicly known, a description thereof will be omitted. Note that the present invention is not limited to search processing to be executed.
- the search control unit 130 When the search control unit 130 receives the notification of the end of the search process from the called search unit 140, the search control unit 130 calls the output unit 150 (step S309) and ends the process.
- the processing executed by the output unit 150 will be described later with reference to FIG.
- step S301 If it is determined in step S301 that the control signal is not a search condition, that is, the control signal is a display instruction, the search control unit 130 acquires the search result list 165 from the main storage device 102 (step S311), It is determined whether an undisplayed search result exists (step S313).
- search result list 165 it is determined whether or not an entry exists in the search result list 165. If there is an entry in the search result list 165, it is determined that an undisplayed search result exists.
- the search control unit 130 calls the output unit 150 (step S309) and ends the process.
- the search control unit 130 refers to the index usage order information 160 and determines whether there is an unused index 320 (step S315). That is, it is determined whether there is an unused index 320 among the specified indexes 320.
- the search control unit 130 ends the process.
- the search control unit 130 refers to the index use order information 160 and calls the search unit 140 corresponding to the index 320 having the next highest rank after the index 320 used last time (Ste S317). Note that the processing executed by the search unit 140 is the same as that in step S307, and thus description thereof is omitted.
- the search control unit 130 When the search control unit 130 receives the notification of the end of the search process from the called search unit 140, the search control unit 130 calls the deduplication unit 145 (step S319).
- the processing executed by the deduplication unit 145 will be described later with reference to FIG.
- the search control unit 130 receives the processing end notification from the deduplication unit 145, calls the output unit 150 (step S309), and ends the processing.
- FIG. 10 is a flowchart for explaining processing executed by the deduplication unit 145 in the first embodiment of the present invention.
- the deduplication unit 145 acquires the search result list 165 and the displayed list 170 (steps S401 and S403).
- the deduplication unit 145 searches the search result list 165 for a search result that overlaps the displayed list 170 (step S405). Specifically, the deduplication unit 145 compares the search result list 165 and the displayed list 170 to search for a search result having the same identification information (document ID).
- search result list 165 includes search results with document IDs “4”, “8”, “11”, “29”, and the displayed list 170 has document IDs “3”, “4”, “ When search results with “9”, “15”, and “29” are included, search results with document IDs “4” and “29” are duplicated search results.
- the deduplication unit 145 updates the search result list 165 by deleting the searched entry from the search result list 165 (step S407), and ends the process.
- FIG. 11 is a flowchart for explaining processing executed by the output unit 150 in the first embodiment of the present invention.
- the output unit 150 acquires the search result list 165 and the displayed list 170 (steps S501 and S503).
- the output unit 150 starts a display processing loop based on the acquired search result list 165 and the displayed list 170 (steps S505 to S511). In the display processing loop, the output unit 150 repeatedly executes the process for the designated number of cases.
- FIG. 7B shows a display screen when it is designated to display search results for three items.
- the output unit 150 repeatedly executes the loop process three times.
- the output unit 150 outputs one search result from the acquired search result list 165 (step S507), and updates the search result list 165 and the displayed list 170 (step S509).
- the output unit 150 outputs data in a format that can display information as shown in FIG. 7B. As a result, the search results are displayed on the output devices 106 and 205. Further, the output unit 150 adds an identifier corresponding to the output search result to the displayed list 170 and deletes the search result from the search result list 165.
- the output unit 150 stores the updated search result list 165 and the updated displayed list 170 on the main storage device 102 (steps S509 and S511), and ends the processing. .
- one search server 100 can acquire a plurality of search results having different characteristics from a plurality of indexes having different characteristics. Moreover, the search server 100 can save the trouble of using a plurality of search systems by integrating the search results and outputting search results that match the searcher's request.
- the search server 100 can eliminate the trouble of referring to the duplicate search results when checking the search results using different indexes by eliminating the already displayed search results.
- the search server 100 executes the search processing based on the order in which the indexes are used, the search processing in the search system can be optimized. For example, it is possible to output search results with low calculation cost by controlling to use the index from the smallest size in order, and the calculation cost is high only when additional search processing is necessary to obtain a comprehensive search result.
- the search process can be controlled to be executed. Thereby, the calculation cost in the search process can be reduced.
- each search result is displayed at the same time without excluding the duplicate result. You may make it do.
- the effect of improving the degree of freedom to use the search result can be expected.
- the second embodiment is different in that a search process is executed by combining a plurality of intermediate result lists corresponding to a plurality of search terms.
- FIG. 12 is an explanatory diagram showing a configuration example of a search system according to the second embodiment of the present invention.
- the software configurations of the search server 100 and the storage device 300 are different.
- a program for realizing the different type collation control unit 900 and the term search unit 910 is newly stored on the main storage device 102 of the search server 100. Further, an intermediate result list group 920 and search term correspondence information 930 are newly stored on the main storage device 102 of the search server 100.
- the heterogeneous collation control unit 900 controls the search processing, and further generates a search result list 165 by combining the intermediate result lists output from each term search unit 910.
- the processing executed by the heterogeneous matching control unit 900 will be described later with reference to FIGS. 14A and 14B.
- the term search unit 910 generates an intermediate result list by executing a search process on the search matrix 310 using the corresponding index 320.
- the term search unit 910 also stores the generated intermediate result list in the intermediate result list group 920 on the main storage device 102.
- the intermediate result list group 920 stores the intermediate result list generated by each term search unit 910.
- the search term correspondence information 930 is information for managing the correspondence between the intermediate result list and the search terms.
- Storage device 300 stores intermediate result list usage rule 1000 instead of usage rule 315.
- the intermediate result list usage rule 800 stores information related to the order of use of combinations of intermediate result lists.
- information such as preferential use of an intermediate result list with a small number of IDs can be considered in the intermediate result list use rule.
- the information is not limited to information set in the intermediate result list use rule.
- the search server 100 executes a search process using all the indexes 320 for each search term, and generates a plurality of intermediate result lists. Further, the search server 100 generates a search result list 165 with few search omissions by combining a plurality of intermediate result lists.
- FIGS. 13A and 13B are flowcharts for explaining processing executed by the search control unit 130 in the second embodiment of the present invention.
- the search control unit 130 determines whether or not the control signal is a search condition (step S301).
- the search control unit 130 acquires the search condition (step S601), and extracts the search term from the acquired search condition (step S603).
- the extracted search terms are temporarily stored on the main storage device 102.
- the search control unit 130 calls the heterogeneous matching control unit 900 (step S605). Thereafter, when the search control unit 130 receives a process completion notification from the heterogeneous matching control unit 900, the search control unit 130 calls the output unit 150 (step S309) and ends the process.
- the search control unit 130 acquires the search result list 165 (step S311), and whether or not there is an undisplayed search result in the acquired search result list 165. Is determined (step S313).
- the search control unit 130 calls the output unit 150 (step S309) and ends the process.
- the search control unit 130 determines whether there is an unused combination of intermediate result lists (step S607). ).
- the search control unit 130 ends the process.
- the search control unit 130 calls the heterogeneous matching control unit 900 (step S609). Thereafter, when receiving a notification of processing completion from the heterogeneous matching control unit 900, the search control unit 130 calls the deduplication unit 145 (step S319).
- the processing executed by the deduplication unit 145 is the same as that in the first embodiment.
- the search control unit 130 receives the processing end notification from the deduplication unit 145, calls the output unit 150 (step S309), and ends the processing.
- FIGS. 14A and 14B are flowcharts for explaining processing executed by the heterogeneous matching control unit 900 in the second embodiment of the present invention.
- the heterogeneous matching control unit 900 starts a process called from the search control unit 130. First, the heterogeneous matching control unit 900 determines whether or not the control signal is a search condition (step S701).
- the heterogeneous matching control unit 900 proceeds to step S719.
- the heterogeneous matching control unit 900 acquires the search condition (step S703).
- the heterogeneous matching control unit 900 selects one search term included in the acquired search condition, and starts a search term loop process (steps S705 to S713).
- the heterogeneous matching control unit 900 starts a processing loop of the term search unit 910 for the selected search term (steps S707 to S711). Specifically, the heterogeneous matching control unit 900 selects the term search unit 910 and calls the selected term search unit 910 (step S709).
- the heterogeneous matching control unit 900 when calling all the term search units 910 or a predetermined number of term search units 910 for the selected search terms, selects the next search term and executes the same processing.
- search unit 910 called by the heterogeneous matching control unit 900 executes a search process for the selected search term using the corresponding index 320, and generates an intermediate result list.
- the heterogeneous matching control unit 900 stores the correspondence relationship between the generated intermediate result list and the search term in the search term correspondence information 930, and further stores the generated intermediate result list in the intermediate result list group 920. To do.
- the heterogeneous matching control unit 900 acquires the intermediate result list use rule 1000 after the search term loop processing and the term search unit 910 loop processing are completed (step S715).
- the heterogeneous matching control unit 900 determines the use order of the combination of the two intermediate result lists based on the acquired intermediate result list use rule 1000 (step S717).
- the determined usage order information is temporarily stored in the main storage device 102.
- the heterogeneous collation control unit 900 refers to the information on the order of use and selects the combination having the highest rank from the unused combinations (step S719).
- the heterogeneous matching control unit 900 acquires two intermediate result lists corresponding to the selected combination from the intermediate result list group 920 (step S721).
- the heterogeneous collation control unit 900 collates the two acquired intermediate result lists, stores the collation results in the search result list 165 (step S723), and ends the process.
- FIG. 15 is an explanatory diagram showing the flow of processing in the second embodiment of the present invention.
- US and “Japan” are included as search terms in the search condition.
- the index A 320-1 corresponds to the N-gram index
- the index B 320-2 corresponds to the important word index.
- the heterogeneous matching control unit 900 selects “US” as the search term, calls the term search unit A 910-1, and then calls the term search unit B 910-2.
- the heterogeneous matching control unit 900 selects “Japan” as the search term, calls the term search unit A 910-1, and then calls the term search unit B 910-2.
- the called term search unit A 910-1 and term search unit B 910-2 generate the intermediate result list A1 (921-1) and the intermediate result list B1 (921-3), respectively.
- the called term search unit A 910-1 and term search unit B 910-2 generate an intermediate result list A 2 (921-2) and an intermediate result list B 2 (921-4), respectively.
- the intermediate result list A1 (921-1) has four IDs
- the intermediate result list A2 (921-2) has six IDs
- the number of IDs in 3) is three
- the number of IDs in the intermediate result list B2 (921-4) is two.
- the intermediate result list A1 (921-1), the intermediate result list B1 (921-3), the intermediate result list A2 (921-2), and the intermediate result list B2 (921-4) are stored in the intermediate result list group 920. .
- the heterogeneous matching control unit 900 stores information in which the identifier of the term search unit 910, the search term, and the identifier of the intermediate result list are associated with each other in the search term correspondence information 930.
- step S715 the heterogeneous matching control unit 900 acquires the intermediate result list use rule 1000.
- information indicating that the ID is used preferentially from the intermediate result list having a small number of IDs is set.
- step S717 the heterogeneous matching control unit 900 generates a combination of the intermediate result list 921 included in the intermediate result list group 920 based on the number of IDs, and determines the use order of the generated combinations.
- the first combination is a combination of the intermediate result list B1 (921-3) and the intermediate result list B2 (921-4).
- the second combination is a combination of the intermediate result list A1 (921-1) and the intermediate result list B2 (921-4).
- the third combination is a combination of the intermediate result list B1 (921-3) and the intermediate result list A2 (921-2).
- the fourth combination is a combination of the intermediate result list A1 (921-1) and the intermediate result list A2 (921-2).
- the order of use is determined in the order of the first combination, the second combination, the third combination, and the fourth combination.
- the heterogeneous collation control unit 900 stores, on the main storage device 102, information that associates the order of use with the combination of the intermediate result list 921 (the combination of identifiers of the intermediate result list 921).
- step S719 the heterogeneous matching control unit 900 first selects the combination having the highest usage order. Specifically, the first combination is selected.
- step S721 the heterogeneous matching control unit 900 acquires the intermediate result list B1 (921-3) and the intermediate result list B2 (921-4) from the intermediate result list group 920.
- step S723 the heterogeneous collation control unit 900 collates the intermediate result list B1 (921-3) and the intermediate result list B2 (921-4) from the intermediate result list group 920, and matches the collation result 950 to the search result list 165.
- collation result 1 (950-1) is output as a collation result between intermediate result list B1 (921-3) and intermediate result list B2 (921-4).
- the heterogeneous matching control unit 900 selects the combination having the next highest use order after the previously selected combination, and executes the same processing. The above-described processing is repeatedly executed until the request from the searcher is satisfied.
- the deduplication unit 145 deletes the duplicate search results and displays them to the searcher.
- the intermediate result list 921 for example, a method of preferentially using an intermediate result list having a large number of IDs or a method of preferentially using search results of different search terms may be considered.
- the search server 100 may include the search control unit 130, the heterogeneous matching control unit 900, and one control unit.
- the search control unit 130 may include the search control unit 130, the heterogeneous matching control unit 900, and one control unit.
- a method of mounting the functions of the heterogeneous matching control unit 900 in the search control unit 130 is conceivable.
- a search omission can be avoided by comparing intermediate result lists generated using a plurality of indexes 320 against a plurality of search terms.
- the third embodiment is different from the first embodiment in that the search result suitable for each searcher is displayed more accurately by properly using the usage rule of the index 320.
- FIG. 16 is an explanatory diagram showing a configuration example of a search system according to the third embodiment of the present invention.
- the software configurations of the search server 100 and the storage device 300 are different.
- the use index determining unit 135A on the main storage device 102 of the search server 100 is different. Details of the processing executed by the used index determination unit 135A will be described later.
- the storage device 300 is different from the first embodiment in that a plurality of usage rules 315 are stored.
- the storage device 300 stores a usage rule A 315-1 and a usage rule B 315-2.
- the usage index determination unit 135A determines the usage rule 315 to be applied based on the information regarding the priority order of the indexes input by the searcher. For the information regarding the priority order of indexes, for example, an operation screen as shown in FIGS. 17A and 17B may be used.
- FIG. 17A and FIG. 17B are explanatory diagrams illustrating an example of an operation screen in the third embodiment of the present invention.
- the operation screen 1100-1 is an initial screen for setting the priority order of the usage rules 315 in the enterprise search system.
- the operation screen 1100-1 includes a search window 1110 and two search operation buttons 1120 and 1130.
- search window 1110 is the same as the search window 710, description thereof is omitted.
- the two search operation buttons 1120 and 1130 are operation buttons for determining the priority order of the usage rules 315. In this embodiment, it is assumed that a usage rule 315 to be applied is determined for each operation button 1120, 1130.
- the search operation button 1120 is a button operated when executing a search process that places importance on full-text search.
- a search operation button 1130 is a button that is operated when executing a search process that places importance on searching for a document including a chemical formula.
- the search condition including the search term and the priority order information indicating that the use rule A315-1 is preferentially used are output to the search server 100.
- the search condition including the search term and the priority order information indicating that the use rule B315-2 is preferentially used are output to the search server 100.
- search processing that places importance on chemical formulas
- search processing that places importance on other information such as a contact number such as a telephone number, department to which the user belongs, and specialty.
- any operation screen may be used as long as it can select a search process with a different index use order.
- the operation screen 1100-2 is an operation screen displayed after the search operation buttons 1120 and 1130 are operated. Specifically, the operation screen 1100-2 includes a search result display area 730. Since the search result display area 730 is the same as that of the first embodiment, the description thereof is omitted.
- the usage rule 315 may be generated or edited using an operation screen as shown in FIGS. 6A and 6B.
- a setting screen for setting an identifier or an identification name for identifying each index use rule 315 may be displayed and set.
- the used index determination unit 135A When used from the search control unit 130, the used index determination unit 135A analyzes the control signal. As a result, the usage index determination unit 135A specifies that the search instruction is given information regarding the priority order of the usage rules 315.
- the usage index determination unit 135A selects the usage rule 315 to be used based on the information regarding the priority order of the usage rule 315, and acquires the selected index usage rule 315 from the storage device 300.
- the use index determination unit 135A determines the use order of the indexes based on the acquired index use rule 315, and stores the determined use order of the indexes on the main storage device 102 as the index use order information 160. .
- the search process suitable for each searcher can be executed by changing the usage rule 315 applied for each request of the searcher. This makes it possible to display the search results desired by each searcher more accurately.
- the configuration of the computer, the processing unit, and the processing unit described in the present invention may be partially or entirely realized by dedicated hardware.
- the various software exemplified in the present embodiment can be stored in various recording media (for example, non-transitory storage media) such as electromagnetic, electronic, and optical, and through a communication network such as the Internet. It can be downloaded to a computer.
- the present invention is not limited to the above-described embodiments, and includes various modifications.
- the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
- a search request including one or more search elements (for example, search words) input via an input device is accepted, and a search query including the search elements is used to search from the same search matrix.
- a search method As a computer that displays each search result (or a search result that does not overlap with the other search result) in parallel, a search method, a search result display method, or a program that causes the computer to execute the search result Can also be captured.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一つの検索クエリに対して、複数のインデクスを用いた検索処理を実行可能な検索システムを提供する。 一つ以上の検索単語を含む検索クエリに基づいて検索処理を実行する検索サーバであって、任意の検索クエリに対応する検索処理の実行時に用いられるインデクスを生成する複数のインデクス生成部と、複数のインデクスを用いて、検索母体に対する検索処理を実行する複数の検索部と、検索処理によって取得される検索結果を出力する出力部と、を有し、検索クエリを受け付けた場合に、複数のインデクスの各々を用いて、受け付けた検索クエリに対応する検索処理を実行し、複数のインデクスの各々を用いた検索処理の各々の検索結果データを取得し、取得された各々の検索結果データの少なくとも一つに含まれる検索結果を表示するための情報を出力する。
Description
本発明は、大規模なデータベースから、所望のデータを検索する検索サーバ、検索方法及びプログラムに関する。
全文検索システムにおける検索処理の一手法として昭64-35627(特許文献1)がある。特許文献1に記載の技術は「文字連鎖インデックスに、テキスト中の特定の文字連鎖に対するポインタを記憶することによって、キーワードにおけるテキストの検索処理ではテキストを全て検索する必要はなく、短時間にテキスト中のキーワードの検索が可能となる」ものである。特許文献1に記載の技術を用いることによって、検索漏れのない検索システムを実現する。
また、他の検索処理としては特開2000-231563(特許文献2)がある。特許文献2に記載の技術は「登録対象文書に対し、形態素解析等の単語識別処理を実行し、単語の先頭位置と末尾位置とを識別し、識別結果を基に単語境界情報を取得する。さらに、登録対象文書から抽出した所定長の部分文字列(n-gram)に対し文書識別情報と該n-gramの文書における出現位置情報と前記単語境界情報とを有する検索用インデクスを生成する。そして検索時には、検索タームに対応する検索用インデクスを抽出し、該検索用インデクスに基づいて、これらの単語境界情報を用いて単語の境界を意識した単語識別検索処理(前方一致、後方一致、完全一致検索処理)と、単語境界情報を用いない単語境界を意識しない任意語検索を高速に実現する」ものである。
特許文献2に記載の技術を用いることによって、指定された検索タームを含む文書を漏れなく検索できる任意語の検索処理と、単語境界を意識した検索処理とを使いわけることのできる検索システムを実現する。
例えば、企業内の情報が蓄積されたデータベースから、所望のデータを抽出するデータ検索システムであるエンタープライズサーチシステム等の場合のように、蓄積される情報はメール、検討メモ、設計仕様書及び決済書類など多岐にわたる。
また、監査目的で特定キーワードを含む情報を全て抽出する検索処理、特定の人物との間において送受信された特定の案件についてのメールを抽出する検索処理、又は、関係部署の電話番号を抽出する検索処理など、検索者の検索目的も多岐にわたる。
従来は、監査目的とした検索処理を実現するシステムとしては、特許文献1に記載したようなインデクスを用いたシステムがある。また、特定の人物の名前及び特定の案件の名前など、単語として抽出された文字列を用い、かつ、監査目的をも満たす検索処理を実現するシステムとしては、特許文献2のようなインデクスを用いたシステムがある。
しかし、従来は、同一のデータベースに対して異なる検索処理を実現するシステムは、別々に提供されるため、さまざまな問題点がある。
一つの問題点としては、異なる観点の検索処理を実行する場合には、別のシステムを使用する必要があり、システムを作り直すか又は別のシステムを用意する必要がある。
異なる観点として、例えば、「重要単語のみを取り出して生成された」インデクスを用いた検索処理を実行する場合又は新たな観点のインデクスを追加する場合などが考えられる。
なお、本明細書では、「重要単語のみを取り出して生成された」インデクスを重要単語インデクスと記載する。
さらに、他の問題点としては、異なる観点の検索処理を実行する場合には、異なるシステムを使い分ける必要があり、検索者にとって手間がかかる。
エンタープライズサーチシステムを始め、メール、検討メモ、設計仕様書及び決済書類など多岐にわたる情報が含まれる検索母体から、検索ターム「携帯電話」に対して検索処理する場合を例にすると、以下のような手間が考えられる。ここで、重要単語インデクスを用いた検索処理を実行する第1システムと、「指定キーワードを含むものが全て抽出された」インデクスを用いた検索処理を実行する第2システムとを例に説明する。
検索ターム「携帯電話」に対して、第1システムにおける検索処理を実行した場合、文書IDが5、11、29の文書が抽出されたものとする。抽出された文書は「携帯電話」をタイトルに含むメール及び設計仕様書であるため、携帯電話に関する概要を知りたい検索者にとっては満足できる検索結果である場合が多い。
一方、検索ターム「携帯電話」に対して、第2システムにおける検索処理を実行した場合、文書IDが3、5、9、11、17、23、28、29、35の文書が抽出されたものとする。抽出された文書は決済書類及び検討メモまで含む全ての文書であるため、監査目的の検索者にとっては満足できる検索結果である場合が多い。
しかし、第2システムにおける検索結果では、検索者が「携帯電話」の概要を知ることを目的としている場合、抽出された文書の件数が多すぎ、絞り込むことも困難となるため、満足できる検索結果とはいえない。また、第1システムにおける検索結果では、検索者が監査を目的としている場合、検索漏れがある可能性があり、満足できる検索結果とはいえない。
すなわち、従来は同一の検索母体に対しては一つのインデクスを生成することが一般的であるため、要求される検索結果によって、インデクスが異なる検索システムを使い分ける必要があり、検索者が逐一判断する必要があった。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、一つ以上の検索単語を含む検索クエリに基づいて検索処理を実行する検索サーバであって、前記検索サーバは、検索処理の対象データである検索母体を格納する記憶装置にアクセスするプロセッサと、任意の検索クエリに対応する検索処理の実行時に用いられるインデクスを生成する複数のインデクス生成部と、前記任意の検索クエリにしたがって、前記複数のインデクス生成部の各々によって生成された前記インデクスを用いて、前記検索母体に対する検索処理を実行する複数の検索部と、前記検索処理によって取得される検索結果を出力する出力部と、を有し、前記検索クエリを受け付けた場合に、前記複数のインデクスの各々を用いて、前記受け付けた検索クエリに対応する検索処理を実行し、前記複数のインデクスの各々を用いた検索処理の各々の検索結果データを取得し、前記取得された各々の検索結果データの少なくとも一つに含まれる検索結果を表示するための情報を出力する。
本発明によれば、一つの検索サーバが、特性の異なる複数のインデクスを用いて検索処理を実行することによって、特性の異なる複数の検索結果を取得できる。これによって、インデクス毎に異なる検索サーバを使い分ける手間を省くことができる。
以下、本発明の実施例について図面を参照して詳細に説明する。
図1は、本発明の第1の実施例における検索システムの構成例を示す説明図である。
図1に示すように、検索システムは、検索サーバ100、クライアント200及び記憶装置300から構成される。検索サーバ100とクライアント200との間は、ネットワーク400を介して接続される。
ネットワーク400は、LAN、WAN及びSAN等の有線及び無線の種々の構成が考えられる。本発明は、検索サーバ100及びクライアント200が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク400には、複数のネットワーク装置(図示省略)が含まれる。ネットワーク装置は、例えば、スイッチ及びゲートウェイ等が含まれる。
検索サーバ100は、クライアント200からの検索条件(クエリ)を受け付け、当該検索条件にしたがって全文検索処理を実行し、所望の検索結果を表示する計算機である。なお、以下では、全文検索処理を検索処理とも記載する。
検索サーバ100は、プロセッサ101、主記憶装置102、ネットワークポート103、ストレージポート104、入力装置105及び出力装置106を有する。各構成は、例えば、内部バス等によって互いに接続される。
プロセッサ101は、主記憶装置102に格納されるプログラムを実行する。プロセッサ101がプログラムを実行することによって、検索サーバ100が有する機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ101によって、プログラムが実行されていることを示すものとする。
主記憶装置102は、プロセッサ101が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置102は、例えば、DRAM等のメモリが考えられる。主記憶装置102に格納されるプログラム及び情報については後述する。
ネットワークポート103は、ネットワークを介して他の装置と接続する。ネットワークポート103は、例えば、NIC等が考えられる。本実施例では、ネットワークポート103は、ネットワーク400を介してクライアント200と接続する。
ストレージポート104は、HDD等の記憶装置又はストレージシステムと接続する。ストレージポート104は、例えば、HBA等が考えられる。本実施例では、ストレージポート104は、記憶装置300と接続する。
入力装置105は、検索サーバ100を操作する管理者が情報を入力するための装置である。入力装置105には、キーボード、マウス及びタッチパネル等が含まれる。出力装置106は、管理者に対して情報と提示するための装置である。出力装置106には、ディスプレイ等が含まれる。
クライアント200は、検索者が用いる計算機である。検索者はクライアント200を操作することによって、検索サーバ100に対して検索条件を送信する。
クライアント200は、プロセッサ201、主記憶装置202、ネットワークポート203、入力装置204及び出力装置205を有する。
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201がプログラムを実行することによって、クライアント200が有する機能を実現することができる。
主記憶装置202は、プロセッサ201が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置202は、例えば、DRAM等のメモリが考えられる。主記憶装置202には、例えば、OS及びアプリケーション等が格納される。
ネットワークポート203は、ネットワークを介して他の装置と接続する。ネットワークポート203は、例えば、NIC等が考えられる。本実施例では、ネットワークポート203は、ネットワーク400を介して検索サーバ100と接続する。
入力装置204は、クライアント200を操作する検索者が情報を入力するための装置である。入力装置204には、キーボード、マウス及びタッチパネル等が含まれる。出力装置205は、検索者に対して情報と提示するための装置である。出力装置205には、ディスプレイ等が含まれる。
記憶装置300は、検索サーバ100によって使用される各種情報を格納する。記憶装置300は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。記憶装置300に格納される情報については後述する。
図1に示す例では、記憶装置300は、検索サーバ100の外部装置として記載しているが、検索サーバ100が記憶装置300を有する構成であってもよい。また、検索サーバ100は、記憶装置300の代わりに、複数の記憶装置300を有するストレージシステムに接続されてもよい。また、検索サーバ100が、クライアント200が有する機能、例えば、検索条件を送信する検索者アプリケーションを有する構成であってもよい。
次に、主記憶装置102に格納されるプログラム及び情報について説明する。
主記憶装置102は、システム制御部110、データ登録制御部115、複数のインデクス生成部120、使用ルール設定部125、検索制御部130、使用インデクス決定部135、複数の検索部140、重複排除部145及び出力部150を実現するプログラムを格納する。
また、主記憶装置102は、インデクス使用順情報160、検索結果リスト165及び表示済みリスト170を格納する。
システム制御部110は、検索サーバ100における処理を統括する。具体的には、システム制御部110は、処理内容に応じて、データ登録制御部115又は検索制御部130を呼び出す。なお、システム制御部110が実行する処理については、図5を用いて説明する。
データ登録制御部115は、インデクス生成時に実行される処理を統括する。具体的には、データ登録制御部115は、処理内容に応じて、インデクス生成部120又は使用ルール設定部125を呼び出す。データ登録制御部115が実行する処理については、図8を用いて説明する。
複数のインデクス生成部120は、それぞれ、検索処理時に用いるインデクスを生成する。本実施例では、各インデクス生成部120によって異なるインデクスが生成される。
インデクスとしては、例えば、文字列と、文字列を含むファイルの識別子、ファイル名及びファイルの内容等が対応づけられたデータ構造が考えられる。なお、本発明は、インデクスのデータ構造に限定されない。
図1では、一例として、二つのインデクス生成部A120-1及びインデクス生成部B120-2を示している。インデクス生成部A120-1は、インデクスA320-1を生成し、インデクス生成部B120-2は、インデクスB320-2を生成する。
なお、異なる検索結果を取得できるインデクスを生成するものであれば、二つ以上のインデクス生成部120があってもよい。
使用ルール設定部125は、異なるインデクスを用いた検索処理を実行する場合におけるインデクスの使用順を設定する。具体的には、使用ルール設定部125は、インデクス使用ルール315を読み出し、インデクス使用順情報160として設定する。
検索制御部130は、検索処理を統括する。具体的には、検索制御部130は、処理内容に応じて、使用インデクス決定部135、検索部140、重複排除部145及び出力部150を呼び出す。検索制御部130が実行する処理については、図9A及び図9Bを用いて説明する。
使用インデクス決定部135は、インデクス使用順情報160に基づいて、インデクスの使用順等を決定する。
検索部140は、対応するインデクス生成部120によって生成されたインデクスを用いて、検索母体310に対する検索処理を実行し、検索結果リスト165を生成する。生成された検索結果リスト165は、主記憶装置102上に格納される。
なお、検索部140が実行する検索処理は、公知の技術であるため説明を省略する。本実施例では、インデクス生成部120の数と検索部140の数とは同一であるものとする。
図1では、一例として、二つの検索部A140-1及び検索部B140-2を示している。検索部A140-1は、インデクス生成部A120-1によって生成されたインデクスA320-1を用いて検索処理を実行し、検索部B140-2は、インデクス生成部B120-2によって生成されたインデクスB320-2を用いて検索処理を実行する。なお、検索部140は、二つ以上あってもよい。
重複排除部145は、検索結果リスト165及び表示済みリスト170を用いて、重複する検索結果を排除する。重複排除部145が実行する処理については、図10を用いて後述する。
出力部150は、検索結果リスト165に基づいて、検索処理の検索結果を表示する。
インデクス使用順情報160は、インデクスの使用順を決定するための情報を格納する。例えば、インデクスA320-1、インデクスB320-2の順に使用する、又は、検索条件に応じて使用するサイズが小さいインデクスから順に使用する等の定義情報が格納される。
検索結果リスト165は、各検索部140が実行する検索処理によって出力された一つ以上の検索結果を含む情報である。
表示済みリスト170は、検索者に対して表示された検索結果に関する情報を格納する。具体的には、検索者に対して表示された検索結果の識別子が格納される。
次に、記憶装置300に格納される情報について説明する。
記憶装置300は、検索母体310、インデクス使用ルール315及び複数のインデクス320を格納する。
検索母体310は、検索対象となる文書等のデータである。インデクス使用ルール315は、インデクス使用順情報160を設定するために必要な定義情報を格納する。なお、インデクス使用ルール315は、予め格納されていてもよいし、検索者が設定してもよい。検索者がインデクス使用ルール315を設定する場合、使用ルール設定部125が入力された情報を記憶装置300に格納する。
インデクス320は、インデクス生成部120によって生成されたインデクスである。図1では、インデクス生成部A120-1によって生成されたインデクスA320-1及びインデクス生成部B120-2によって生成されたインデクスB320-2を示す。
なお、処理の高速化のため、生成されたインデクス320は、主記憶装置102に格納されていてもよい。この場合、検索サーバ100は、一定期間経過した場合、又は、アクセス数が低下した場合に、主記憶装置102から記憶装置300にインデクス320を移動する。
本実施例では、同一の検索母体310に対して各インデクス320が生成される。以下の説明では、インデクスA320-1はN-gramインデクスであり、インデクスB320-2は、重要単語インデクスであるものとする。
なお、主記憶装置102に格納されるプログラムは、記憶装置300に格納されていてもよい。この場合、プロセッサ101が記憶装置300からプログラムを読み出し、読み出されたプログラムを主記憶装置102上にロードし、ロードされたプログラムを実行する。また、記憶装置300に格納される情報は、主記憶装置102に格納されてもよい。
図2及び図3を用いて本発明の概要について説明する。
図2は、本発明の第1の実施例における複数のインデクスを用いた検索結果の一例を示す説明図である。
検索母体の中に、任意の検索条件に対する正解集合が一つ存在する。また、検索母体の中に、インデクスAを用いた検索処理の結果集合A及びインデクスBを用いた検索処理の結果集合Bが、それぞれ存在する。
なお、結果集合AがインデクスA320-1を用いた検索処理における検索結果リストに対応し、また、結果集合BがインデクスB320-2を用いた検索処理における検索結果リストに対応する。
結果集合Bは、正解集合に含まれる部分が多く、正解集合と結果集合Bとの共有部分、すわなち、積集合はインデクスBによる正解集合となる。
一方、結果集合Aは、正解集合に含まれる部分が少ないが、インデクスBを用いた検索処理において検索漏れになる正解集合を取得できる。しかし、結果集合Aは正解集合に含まれない部分が多い。すなわち、検索処理におけるノイズが大きい。
図2に示すような場合、検索サーバ100は、検索者に対して結果集合Bを先に提示することによって、正解集合から外れる検索結果(ノイズ)を見せる量を低減することができる。
本実施例では、検索サーバ100は、結果集合Bに含まれる検索結果を表示した後、さらに、検索者から検索結果の提示が要求された場合に、結果集合Aに含まれる検索結果を表示する。このとき、検索サーバ100は、新たに表示する検索結果のうち、既に検索者に対して表示された検索結果を排除する。これによって、「インデクスBを用いた検索処理において検索漏れになるが、インデクスAを用いた検索処理においてヒットする正解集合」を検索者に表示することができる。
次に、本実施例の検索サーバ100を実現するための処理の概要について説明する。
図3は、本発明の第1の実施例における処理の流れを示す説明図である。
まず、検索サーバ100は、記憶装置300に格納される検索母体310を取得する。検索サーバ100は、インデクス生成部A120-1及びインデクス生成部B120-2に、取得された検索母体とともにインデクスの生成指示を出力する。
インデクス生成部A120-1及びインデクス生成部B120-2は、インデクスの生成指示を受け付けると、それぞれ、インデクスA320-1及びインデクスB320-2を生成する。
検索サーバ100は、「携帯電話」を検索タームとする検索条件を受け付けると、検索部A140-1及び検索部B140-2のそれぞれに、検索処理の実行を指示する。
当該指示を受け付けた検索部A140-1は、インデクスA320-1を用いて検索処理を実行し、当該指示を受け付けた検索部B140-2は、インデクスB320-1を用いて検索処理を実行する。検索部A140-1は、検索処理の結果として検索結果リストA165-1を出力し、検索部B140-2は、検索処理の結果として検索結果リストB165-2を出力する。
ここで、検索結果リスト165のデータ形式について説明する。
図4は、本発明の第1の実施例における検索結果リスト165の一例を示す説明図である。
検索結果リスト165は、文書ID501、タイトル502、スニペット503及びURL504から構成される検索結果(エントリ)を一つ以上含む。なお、検索結果には、その他の情報が含まれていてもよい。なお、該当する文書等が存在しない場合には、検索結果リスト165には、該当するデータがない旨の検索結果等が格納される。
文書ID501は、検索タームを含む文書を一意に識別するための識別子である。タイトル502は、文書のタイトルである。スニペット503は、文書の断片的な情報である。URL504は、文書にアクセスするためのアドレスである。
以下では、説明の簡単のため、文書IDを用いて説明する。
図3の説明に戻る。
図3に示す例では、検索結果リストA165-1は、文書IDの集合「3、5、9、11、17、18、23、29、35」であり、検索結果リストB165-2は、文書IDの集合「5、11、29」である。
重複排除部145は、検索結果リスト165に含まれる検索結果のうち、文書IDが重複する検索結果が表示されないように、表示リスト410を出力する。
ここで、検索ターム「携帯電話」に対する正解集合が「5、17、29、35」であるものとする。
本実施例では、インデクス320の使用順を決定するための情報としてインデクス使用ルール315が予め設定されている。例えば、サイズが小さいインデクス320を優先的に使用する等のインデクス使用ルール315が設定されている。この場合、インデクスA320-1及びインデクスB320-2において文字列「携帯電話」の項目を比較すると、インデクスB320-2の要素の数が少なく、インデクスB320-2が優先的に使用される。これは、インデクス320のサイズが小さいものから順に使用することによって、検索処理における計算コストを少なくできるためである。
検索サーバ100は、表示リスト410-1を出力するために、インデクスBの検索結果リストB165-2を優先的に出力する。このとき、文書IDの集合「5、29」はインデクスBによる正解集合となる。
検索サーバ100は、検索者から、次の表示リスト410の表示を要求された場合、表示リスト410-1において既に表示された文書IDを含まない表示リスト410-2を表示し、さらに、表示リスト410-1及び表示リスト410-2において表示された文書IDを含まない表示リスト410-3を表示する。
文書IDが「17、35」の文書は、インデクスB320-2を用いた検索処理では検索漏れとなる正解集合の要素であるが、インデクスA320-1を用いた検索処理ではヒットする正解集合である。
前述のような処理によって、検索者がノイズを参照する回数を減らすことができ、また、インデクス320が異なる検索システムを使い分ける必要もない。さらに、検索サーバ100は、インデクスA320-1を用いた検索処理の頻度が減ることによって、計算コストを低減することができる。
次に、各構成部が実行する処理の詳細について説明する。
図5は、本発明の第1の実施例におけるシステム制御部110が実行する処理を説明するフローチャートである。
システム制御部110は、制御信号を受け付けると、当該制御信号がインデクス生成指示又はインデクス使用ルールの設定指示であるか否かを判定する(ステップS101、ステップS103)。
制御信号は、クライアント200からネットワーク400を介して入力されてもよいし、入力装置105から入力されてもよい。
制御信号がインデクス生成指示又はインデクス使用ルールの設定指示であると判定された場合、システム制御部110は、データ登録制御部115を呼び出し(ステップS107)、処理を終了する。データ登録制御部115が実行する処理については、図8を用いて後述する。
制御信号がインデクス生成指示又はインデクス使用ルールの設定指示でないと判定された場合、システム制御部110は、制御信号が検索条件又は表示指示であるか否かを判定する(ステップS105)。
制御信号が検索条件又は表示指示でないと判定された場合、システム制御部110は、処理を終了する。このとき、プロセッサ101によって制御信号に対応する処理が実行されるものとする。
制御信号が検索条件又は表示指示であると判定された場合、システム制御部110は、検索制御部130を呼び出し(ステップS109)、処理を終了する。検索制御部130が実行する処理については、図9A及び図9Bを用いて後述する。
ここで、インデクス生成指示及びインデクス使用ルールの設定指示を出力するための設定画面と、検索条件及び表示指示を出力するための操作画面とについて説明する。
図6A、図6B及び図6Cは、本発明の第1の実施例における設定画面の一例を示す説明図である。
設定画面600-1は、エンタープライズサーチシステムにおける各種設定を行うための初期画面である。設定画面600-1は、インデクス生成操作ボタン610及びインデクス使用ルール操作ボタン620を含む。
インデクス生成操作ボタン610は、インデクス生成指示を出力するための操作ボタンである。インデクス生成操作ボタン610を操作することによって、インデクス生成指示に対応する制御信号が検索サーバ100に出力される。
なお、インデクス生成操作ボタン610が操作されたときに、図6Bに示すような設定画面600-2が表示されてもよい。設定画面600-2は、インデクス320の生成ルールを設定するための操作画面である。本実施例では、インデクスの生成ルールとして、インデクスを生成する順番である優先順位が設定される。
設定画面600-2は、決定ボタン630-1、630-2、優先順位設定領域640及びインデクス生成実行操作ボタン650を含む。
優先順位設定領域640は、優先順位を設定するための領域である。優先順位設定領域640は、インデクス情報641及び順位変更ボタン642を含む。
インデクス情報641は、インデクスの識別情報を表示する。順位変更ボタン642は、優先順位を変更するための操作ボタンである。順位変更ボタン642を操作することによって、インデクス情報641に表示されるインデクスの識別情報が入れ替わる。なお、本実施例では、上から順に優先順位が高く、優先順位の高いインデクスから順に生成されるものする。
決定ボタン630は、優先順位設定領域640に設定された情報を反映させるための操作ボタンである。決定ボタン630を操作することによって、優先順位を含む生成ルールが検索サーバ100に出力される。検索サーバ100は、優先順位設定領域640に設定された生成ルールを主記憶装置102上に格納する。
なお、二つの決定ボタン630-1、630-2は、操作者の便宜のために表示されたものであり、少なくとも一つあればよい。インデックス情報641が多数となり、表示領域のスクロールを必要とする場合等に利便性が向上する。
インデクス生成実行操作ボタン650は、インデクス生成指示を出力するための操作ボタンである。インデクス生成実行操作ボタン650を操作することによって、インデクス生成指示に対応する制御信号が検索サーバ100に出力される。
なお、図6Bでは、インデクスの生成する優先順位にのみ言及したが、プロセッサ101の使用率など別の観点を考慮した生成ルールが設定されてもよい。
また、図6Aに示すインデクス使用ルール操作ボタン620は、インデクス使用ルールを設定するための操作ボタンである。インデクス使用ルール操作ボタン620を操作すると、図6Cに示すような設定画面600-3が表示される。
設定画面600-3は、決定ボタン660-1、660-2、インデクス一覧表示領域670、インデクス使用ルール表示領域680及び追加操作ボタン690を含む。
インデクス一覧表示領域670は、システム内で使用可能なインデクスの一覧を表示する。なお、インデクス使用ルールに設定されるインデクスと、インデクス使用ルールに設定されていないインデクスとが判別できるように表示される。
検索者は、インデクス一覧表示領域670に表示されるインデクスを選択し、追加操作ボタン690を操作することによって、選択されたインデクスをインデクス使用ルールに追加することができる。
インデクス使用ルール表示領域680は、インデクス使用ルールとして設定されたインデクス及びインデクスの使用順を表示する。具体的には、インデクス使用ルール表示領域680は、インデクス情報681及び順位変更ボタン682を含む。
インデクス情報681は、インデクス情報641と同一のものである。順位変更ボタン682は、インデクスの使用順を変更し、又は、インデクス使用ルールからインデクスを削除するための操作ボタンである。
決定ボタン660は、インデクス使用ルール表示領域680に設定された情報を反映させるための操作ボタンである。決定ボタン660を操作することによって、インデクス使用ルールの設定指示に対応する制御信号が検索サーバ100に出力される。
なお、二つの決定ボタン660-1、660-2は、検索者の便宜のために表示されたものであり、少なくとも一つあればよい。
図7A、図7B及び図7Cは、本発明の第1の実施例における操作画面の一例を示す説明図である。
操作画面700-1は、検索窓710及び検索操作ボタン720を含む。
検索窓710は、検索タームを入力する領域である。検索操作ボタン720は、検索条件を出力するための操作ボタンである。検索操作ボタン720を操作することによって、一つ以上の検索タームを含む検索条件に対応する制御信号が検索サーバ100に出力される。なお、検索タームの入力は、音声による入力や、動画像データの入力等であってもよい。
操作画面700-2は、検索操作ボタン720が操作された後の画面である。操作画面700-2は、検索結果表示領域730を新たに含む。
検索結果表示領域730は、検索結果が表示される領域である。検索結果表示領域730は、検索結果750及び表示操作ボタン740を含む。
検索結果750は、出力部150によって出力された検索結果である。出力部150は、検索結果表示領域730に、表示リスト410に対応する検索結果を表示する。本実施例では、一つの表示リスト410に三つの検索結果が含まれる。そのため、検索操作ボタン720が操作されると、三つの検索結果750が表示される。
表示操作ボタン740は、さらに、検索結果を表示するための表示指示を出力するための操作ボタンである。表示操作ボタン740を操作することによって、表示指示に対応する制御信号が検索サーバ100に出力される。
なお、二つの表示操作ボタン740-1、740-2は、検索者の便宜のために表示されたものであり、少なくとも一つあればよい。
操作画面700-3は、検索操作ボタン720が操作された後の画面の他の例である。操作画面700-3は、図7Bの検索結果表示領域730に加えて検索結果表示領域731を新たに含む。
検索結果表示領域731は、下位の優先順位の検索インデックスによる検索結果の内、上位の優先順位の検索インデックスによる検索結果を除いたものを表示する(例えば、図3の表示リスト410―2の情報。)。即ち本例では、異なる特性を有する検索インデックスの検索結果を、同一画面上に同時期に表示するようになっている。
検索結果751は、出力部150によって出力された優先順位が下位のインデックスによる検索結果(検索結果750と重複するものを除く。)である。出力部150は、検索結果表示領域731に、表示リスト410-2(図3)に対応する検索結果を表示する。
なお、検索結果表示領域730及び731の配置は、上下であっても、一方をより大きく表示してもよいし、一部が重複するように表示してもよい。
図8は、本発明の第1の実施例におけるデータ登録制御部115が実行する処理を説明するフローチャートである。
データ登録制御部115は、システム制御部110から呼び出されると処理を開始する。このとき、システム制御部110は、制御信号の内容を通知する。
データ登録制御部115は、制御信号がインデクス使用ルールの設定指示であるか否かを判定する(ステップS201)。
制御信号がインデクス使用ルールの設定指示であると判定された場合、データ登録制御部115は、使用ルール設定部125を呼び出し(ステップS209)、処理を終了する。
使用ルール設定部125は、呼び出されるとインデクス使用ルールの設定処理を実行する。具体的には、制御信号に含まれるインデクス使用ルールを記憶装置300に格納する。
なお、インデクス使用ルールとしては、例えば、「1番目に重要単語インデクス、2番目に単語インデクス、3番目にN-gramインデクス」のような具体的な使用順、又は、「検索条件において使用されるサイズが小さいインデクスを優先的に使用する」のようなサイズを条件とする使用順などが考えられる。
制御信号がインデクス使用ルールの設定指示でないと判定された場合、データ登録制御部115は、インデクス生成処理ループを開始する(ステップS203~ステップS207)。
データ登録制御部115は、必要な回数だけインデクス生成部120を呼び出し(ステップS205)、処理を終了する。
インデクス生成ループでは、検索サーバ100が有する全てのインデクス生成部120を呼び出してもよいし、予め指定されたインデクスに対応するインデクス生成部120のみを呼び出してもよい。また、検索サーバ100の計算機リソースに余裕がある場合に、インデクス生成ループが実行されるようにしてもよい。
なお、インデクス生成ルールが設定されている場合、データ登録制御部115は、当該インデクス生成ルールにしたがって、インデクス生成部120を呼び出す。
データ登録制御部115に呼び出された各インデクス生成部120は、インデクス生成処理を実行する。具体的には、各インデクス生成部120は、検索母体310を用いてインデクス320を生成し、生成されたインデクス320を記憶装置300に格納する。インデクス生成処理は、公知の技術を用いればよいため説明を省略する。なお、本発明は、実行されるインデクス生成処理に限定されない。
以上のように、検索サーバ100は、一つのインデクス生成指示を受け付けると、複数のインデクス320を生成する。
なお、インデクス生成ルールに対応する制御信号が出力された場合、データ登録制御部115が使用ルール設定部125を呼び出す。呼び出された使用ルール設定部125は、インデクス生成ルール設定処理を実行する。具体的には、制御信号に含まれるインデクス生成ルールを記憶装置300に格納する。
図9A及び図9Bは、本発明の第1の実施例における検索制御部130が実行する処理を説明するフローチャートである。
検索制御部130は、システム制御部110から呼び出されると処理を開始する。このとき、システム制御部110は、制御信号の内容を通知する。
検索制御部130は、制御信号が検索条件であるか否かを判定する(ステップS301)。
制御信号が検索条件であると判定された場合、検索制御部130は、使用インデクス決定部135を呼び出す(ステップS303)。
呼び出された使用インデクス決定部135は、インデクス使用順の決定処理を実行する。具体的には、使用インデクス決定部135は、記憶装置300からインデクス使用ルール315を取得し、インデクスの使用順を決定し、決定されたインデクスの使用順をインデクス使用順情報160として主記憶装置102上に格納する。
例えば、インデクス使用ルール315にインデクスの使用順そのものが定義されている場合、使用インデクス決定部135は、インデクス使用ルール315にしたがって、インデクスの使用順を決定する。また、インデクス使用ルール315にインデクスのサイズ等の条件が定義されている場合、使用インデクス決定部135は、インデクス320を参照して、定義された条件にしたがって、インデクスの使用順を決定する。なお、本発明は、インデクスの使用順の決定方法に限定されない。
次に、検索制御部130は、主記憶装置102上に格納されるインデクス使用順情報160を取得する(ステップS305)。
検索制御部130は、取得されたインデクス使用順情報160に基づいて、順位が最も上位のインデクス320に対応する検索部140を呼び出す(ステップS307)。このとき、検索制御部130は、検索条件とともに検索部140を呼び出す。
呼び出された検索部140は、検索条件にしたがって、インデクス320を用いた検索処理を実行する。検索部140は、検索処理の結果として、検索結果リスト165を主記憶装置102上に格納し、検索処理の終了を通知する。検索処理は、公知であるため説明を省略する。なお、本発明は、実行する検索処理に限定されない。
検索制御部130は、呼び出した検索部140から検索処理の終了の通知を受け付けると、出力部150を呼び出し(ステップS309)、処理を終了する。出力部150が実行する処理については、図11を用いて後述する。
ステップS301において、制御信号が検索条件でない、すなわち、制御信号が表示指示であると判定された場合、検索制御部130は、主記憶装置102上から検索結果リスト165を取得し(ステップS311)、未表示の検索結果が存在するか否かを判定する(ステップS313)。
具体的には、検索結果リスト165にエントリが存在するか否かが判定される。検索結果リスト165にエントリが存在する場合、未表示の検索結果が存在すると判定される。
未表示の検索結果が存在すると判定された場合、検索制御部130は、出力部150を呼び出し(ステップS309)、処理を終了する。
未表示の検索結果が存在しないと判定された場合、検索制御部130は、インデクス使用順情報160を参照し、未使用のインデクス320が存在するか否かを判定する(ステップS315)。すなわち、指定されたインデクス320のうち、使用されていないインデクス320が存在するか否かが判定される。
未使用のインデクス320が存在しないと判定された場合、検索制御部130は、処理を終了する。
未使用のインデクス320が存在すると判定された場合、検索制御部130は、インデクス使用順情報160を参照し、前回使用したインデクス320の次に順位が高いインデクス320に対応する検索部140を呼び出す(ステップS317)。なお、検索部140が実行する処理は、ステップS307の場合と同一であるため説明を省略する。
検索制御部130は、呼び出した検索部140から検索処理の終了の通知を受け付けると、重複排除部145を呼び出す(ステップS319)。重複排除部145が実行する処理については、図10を用いて後述する。
検索制御部130は、重複排除部145から処理終了の通知を受け付けた後、出力部150を呼び出し(ステップS309)、処理を終了する。
図10は、本発明の第1の実施例における重複排除部145が実行する処理を説明するフローチャートである。
重複排除部145は、検索結果リスト165及び表示済みリスト170を取得する(ステップS401、S403)。
重複排除部145は、検索結果リスト165の中から、表示済みリスト170と重複する検索結果を検索する(ステップS405)。具体的には、重複排除部145は、検索結果リスト165と表示済みリスト170とを比較し、同一の識別情報(文書ID)である検索結果を検索する。
例えば、検索結果リスト165に文書IDが「4」、「8」、「11」、「29」である検索結果が含まれ、表示済みリスト170に文書IDが「3」、「4」、「9」、「15」、「29」である検索結果が含まれる場合、文書IDが「4」、「29」である検索結果が、重複する検索結果となる。
重複排除部145は、検索結果リスト165から、検索されたエントリを削除することによって、検索結果リスト165を更新し(ステップS407)、処理を終了する。
以上の処理によって、これまで表示された検索結果が再度表示されないように制御することが可能となる。
図11は、本発明の第1の実施例における出力部150が実行する処理を説明するフローチャートである。
出力部150は、検索結果リスト165及び表示済みリスト170を取得する(ステップS501、ステップS503)。
出力部150は、取得された検索結果リスト165及び表示済みリスト170に基づいて、表示処理ループを開始する(ステップS505~ステップS511)。表示処理ループでは、出力部150は、指定された件数分だけ処理を繰り返し実行する。
例えば、図7Bは、3件分の検索結果を表示するように指定された場合の表示画面を表す。この場合、出力部150は、ループ処理を3回繰り返し実行する。
出力部150は、取得された検索結果リスト165から、1件分の検索結果を出力し(ステップS507)、検索結果リスト165及び表示済みリスト170を更新する(ステップS509)。
具体的には、出力部150は、図7Bに示すような情報を表示できる形式のデータを出力する。これによって、出力装置106、205に検索結果が表示される。また、出力部150は、出力された検索結果に対応する識別子を表示済みリスト170の追加し、また、当該検索結果を検索結果リスト165から削除する。
出力部150は、表示処理ループが終了した後、主記憶装置102上に、更新された検索結果リスト165及び更新された表示済みリスト170を格納し(ステップS509、ステップS511)、処理を終了する。
以上説明したように、第1の実施例によれば、一つの検索サーバ100が特性の異なる複数のインデクスから、特性の異なる複数の検索結果を取得できる。また、検索サーバ100は、検索結果を統合して、検索者の要求に合致する検索結果を出力することによって、複数の検索システムを使い分ける手間を省くことができる。
また、検索サーバ100は、すでに表示された検索結果を排除することによって、異なるインデクスを用いた検索結果を確認する場合に、重複する検索結果を参照する手間を省くことができる。
さらに、検索サーバ100は、インデクスの使用順に基づいて、検索処理を実行するため、検索システムにおける検索処理を最適化できる。例えば、サイズが小さいインデクスから順に使用するように制御することによって、少ない計算コストで検索結果を出力でき、網羅的な検索結果を得るために追加の検索処理が必要な場合にのみ計算コストが多い検索処理を実行するように制御することができる。これによって、検索処理における計算コストを低減できる。
なお、第1の実施例では、重複排除部145によって、すでに表示された検索結果を排除して表示する例について説明したが、重複結果を排除せずに、それぞれの検索結果を同時期に表示するようにしてもよい。検索の目的に応じて、検索結果を利用する自由度が向上する効果も期待できる。
次に、本発明の第2の実施例について説明する。
第2の実施例では、複数の検索タームに対応する複数の中間結果リストを組み合わせて、検索処理を実行する点が異なる。
以下、第1の実施例との差異を中心に説明する。なお、同一の符号を付した構成は、第1の実施例と同一の構成であるため説明を省略する。
図12は、本発明の第2の実施例における検索システムの構成例を示す説明図である。
第2の実施例では、検索サーバ100及び記憶装置300のソフトウェア構成が異なる。
検索サーバ100の主記憶装置102上には、新たに、異種照合制御部900及びターム検索部910を実現するプログラムが格納される。また、検索サーバ100の主記憶装置102上には、新たに、中間結果リスト群920及び検索ターム対応情報930が格納される。
異種照合制御部900は、検索処理を統括し、さらに、各ターム検索部910から出力される中間結果リストを組み合わせて、検索結果リスト165を生成する。異種照合制御部900が実行する処理については、図14A及び図14Bを用いて後述する。
ターム検索部910は、検索母体310に対し、対応するインデクス320を用いて検索処理を実行することによって、中間結果リストを生成する。また、ターム検索部910は、生成された中間結果リストを主記憶装置102上の中間結果リスト群920に格納する。
中間結果リスト群920は、各ターム検索部910によって生成された中間結果リストを格納する。検索ターム対応情報930は、中間結果リストと検索タームとの対応関係を管理する情報である。
記憶装置300は、使用ルール315の代わりに中間結果リスト使用ルール1000を格納する。中間結果リスト使用ルール800は、中間結果リストの組合せの使用順に関する情報を格納する。
例えば、中間結果リスト使用ルールには、IDの数が少ない中間結果リストを優先的に使用する等の情報が考えられる。なお、本実施例では、中間結果リスト使用ルールに設定される情報に限定されない。
第2の実施例では、検索サーバ100が、各検索タームに対して、全てのインデクス320を用いて検索処理を実行し、複数の中間結果リストを生成する。さらに、検索サーバ100は、複数の中間結果リストを組み合せることによって、検索漏れの少ない検索結果リスト165を生成する。
以下、第2の実施例の処理の詳細について説明する。
なお、データ登録制御部115、インデクス生成部120及び使用ルール設定部125が実行する処理は、第1の実施例と同一であるため説明を省略する。
図13A及び図13Bは、本発明の第2の実施例における検索制御部130が実行する処理を説明するフローチャートである。
検索制御部130は、制御信号が検索条件であるか否かを判定する(ステップS301)。
制御信号が検索条件であると判定された場合、検索制御部130は、検索条件を取得し(ステップS601)、取得された検索条件から検索タームを抽出する(ステップS603)。抽出された検索タームは、主記憶装置102上に一時的に格納される。
検索制御部130は、異種照合制御部900を呼び出す(ステップS605)。その後、検索制御部130は、異種照合制御部900から処理の完了の通知を受け付けると、出力部150を呼び出し(ステップS309)、処理を終了する。
制御信号が検索条件でないと判定された場合、検索制御部130は、検索結果リスト165を取得し(ステップS311)、取得された検索結果リスト165の中に未表示の検索結果が存在するか否かを判定する(ステップS313)。
取得された検索結果リスト165の中に未表示の検索結果が存在すると判定された場合、検索制御部130は、出力部150を呼び出し(ステップS309)、処理を終了する。
取得された検索結果リスト165の中に未表示の検索結果が存在しないと判定された場合、検索制御部130は、未使用の中間結果リストの組み合わせが存在するか否かを判定する(ステップS607)。
未使用の中間結果リストの組み合わせが存在しないと判定された場合、検索制御部130は、処理を終了する。
未使用の中間結果リストの組み合わせが存在すると判定された場合、検索制御部130は、異種照合制御部900を呼び出す(ステップS609)。その後、検索制御部130は、異種照合制御部900から処理の完了の通知を受け付けると、重複排除部145を呼び出す(ステップS319)。重複排除部145が実行する処理については、第1の実施例と同一である。
検索制御部130は、重複排除部145から処理終了の通知を受け付けた後、出力部150を呼び出し(ステップS309)、処理を終了する。
図14A及び図14Bは、本発明の第2の実施例における異種照合制御部900が実行する処理を説明するフローチャートである。
異種照合制御部900は、検索制御部130から呼び出される処理を開始する。まず、異種照合制御部900は、制御信号が検索条件であるか否かを判定する(ステップS701)。
制御信号が検索条件でないと判定された場合、異種照合制御部900は、ステップS719に進む。
制御信号が検索条件であると判定され場合、異種照合制御部900は、検索条件を取得する(ステップS703)。異種照合制御部900は、取得された検索条件に含まれる検索タームを一つ選択し、検索タームのループ処理を開始する(ステップS705~ステップS713)。
異種照合制御部900は、選択された検索タームに対して、ターム検索部910の処理ループを開始する(ステップS707~ステップS711)。具体的には、異種照合制御部900は、ターム検索部910を選択し、選択されたターム検索部910を呼び出す(ステップS709)。
異種照合制御部900は、選択された検索タームに対して、全てのターム検索部910又は所定数のターム検索部910を呼び出すと、次の検索タームを選択して同様の処理を実行する。
なお、異種照合制御部900に呼び出されたターム検索部910は、対応するインデクス320を用いて、選択された検索タームに対する検索処理を実行し、中間結果リストを生成する。
このとき、異種照合制御部900は、生成された中間結果リストと、検索タームとの対応関係を検索ターム対応情報930に格納し、さらに、生成された中間結果リストを中間結果リスト群920に格納する。
異種照合制御部900は、検索タームのループ処理及びターム検索部910のループ処理が終了した後、中間結果リスト使用ルール1000を取得する(ステップS715)。異種照合制御部900は、取得された中間結果リスト使用ルール1000に基づいて、二つの中間結果リストの組合せの使用順を決定する(ステップS717)。なお、決定された使用順の情報は、主記憶装置102上に一時的に格納される。
異種照合制御部900は、使用順の情報を参照し、未使用の組合せの中から順位が最も高い組合せを選択する(ステップS719)。異種照合制御部900は、中間結果リスト群920から、選択された組合せに対応する二つの中間結果リストを取得する(ステップS721)。
異種照合制御部900は、取得された二つの中間結果リストを照合し、照合結果を検索結果リスト165に格納し(ステップS723)、処理を終了する。
ここで、一例を用いて、第2の実施例の処理について説明する。
図15は、本発明の第2の実施例における処理の流れを示す説明図である。以下の説明では、検索条件に検索タームとして、「U.S.」及び「日本」が含まれているものとする。また、インデクスA320-1は、N-gramインデクスに対応し、インデクスB320-2は、重要単語インデクスに対応するものとする。
ステップS703からステップS713において、異種照合制御部900は、検索タームとして「U.S.」を選択し、ターム検索部A910-1を呼び出し、その後、ターム検索部B910-2を呼び出す。また、異種照合制御部900は、検索タームとして「日本」を選択し、ターム検索部A910-1を呼び出し、その後、ターム検索部B910-2を呼び出す。
呼び出されたターム検索部A910-1及びターム検索部B910-2は、それぞれ、中間結果リストA1(921-1)及び中間結果リストB1(921-3)を生成する。また、呼び出されたターム検索部A910-1及びターム検索部B910-2は、それぞれ、中間結果リストA2(921-2)及び中間結果リストB2(921-4)を生成する。
なお、図15に示す例では、中間結果リストA1(921-1)のIDの数は四つ、中間結果リストA2(921-2)のIDの数は六つ、中間結果リストB1(921-3)のIDの数は三つ、また、中間結果リストB2(921-4)のIDの数は二つである。
中間結果リストA1(921-1)、中間結果リストB1(921-3)、中間結果リストA2(921-2)及び中間結果リストB2(921-4)は、中間結果リスト群920に格納される。
このとき、異種照合制御部900は、ターム検索部910の識別子、検索ターム及び中間結果リストの識別子を対応づけた情報を検索ターム対応情報930に格納する。
ステップS715において、異種照合制御部900は、中間結果リスト使用ルール1000を取得する。ここでは、IDの数が少ない中間結果リストから優先的に使用する旨の情報が設定されているものとする。
この場合、ステップS717において、異種照合制御部900は、IDの数に基づいて、中間結果リスト群920に含まれる中間結果リスト921の組合せを生成し、生成された組合せの使用順を決定する。
図15に示す例では、四つの組合せが生成される。具体的には、第1の組合せは、中間結果リストB1(921-3)と中間結果リストB2(921-4)との組合せである。第2の組合せは、中間結果リストA1(921-1)と中間結果リストB2(921-4)との組合せである。第3の組合せは、中間結果リストB1(921-3)と中間結果リストA2(921-2)との組合せである。第4の組合せは、中間結果リストA1(921-1)と中間結果リストA2(921-2)との組合せである。
また、図15に示す例では、第1の組合せ、第2の組合せ、第3の組合せ及び第4の組合せの順に、使用順が決定される。
異種照合制御部900は、使用順と中間結果リスト921の組合せ(中間結果リスト921の識別子の組合せ)とを対応づけた情報を主記憶装置102上に格納する。
ステップS719において、異種照合制御部900は、初めに、使用順が最も高い組合せを選択する。具体的には、第1の組合せが選択される。
ステップS721において、異種照合制御部900は、中間結果リスト群920から、中間結果リストB1(921-3)及び中間結果リストB2(921-4)を取得する。
ステップS723において、異種照合制御部900は、中間結果リスト群920から、中間結果リストB1(921-3)及び中間結果リストB2(921-4)を照合し、照合結果950を検索結果リスト165に格納する。本実施例では、中間結果リストB1(921-3)と中間結果リストB2(921-4)との照合結果として、照合結果1(950-1)が出力される。
その後、異種照合制御部900は、表示指示を含む制御信号を受け付けると、前回選択された組合せの次に使用順位の高い組合せを選択し、同様の処理を実行する。前述した処理が、検索者からの要求が満たされるまで繰り返し実行される。
なお、重複排除部145は、検索結果リスト165に格納される検索結果を表示する場合に、重複する検索結果を削除して、検索者に対して表示する。
中間結果リスト921の組合せ方法としては、例えば、IDの数が多い中間結果リストを優先的に使用する方法、又は、異なる検索タームの検索結果を優先的に使用する方法などが考えられる。
なお、検索サーバ100は、検索制御部130と異種照合制御部900と一つの制御部として有してもよい。例えば、異種照合制御部900が有する機能を検索制御部130に実装する方法が考えられる。
以上のように、第2の実施例によれば、複数の検索タームに対して、複数のインデクス320を用いて生成された中間結果リスト同士を照合することによって、検索漏れを回避できる。
特に、検索結果の数の少ない中間結果リスト同士の組み合わせを優先的に照合し、逐次、検索者に表示すことによって、計算コストを抑え、かつ、検索漏れのない検索結果を表示することができるという効果も期待できる。
次に、本発明の第3の実施例について説明する。
第3の実施例では、インデクス320の使用ルールを使い分けることによって、各検索者に適した検索結果をより的確に表示する点が第1の実施例と異なる。
以下、第1の実施例との差異を中心に説明する。なお、同一の符号を付した構成は、第1の実施例と同一の構成であるため説明を省略する。
図16は、本発明の第3の実施例における検索システムの構成例を示す説明図である。
第3の実施例では、検索サーバ100及び記憶装置300のソフトウェア構成が異なる 検索サーバ100の主記憶装置102上の使用インデクス決定部135Aが異なる。使用インデクス決定部135Aが実行する処理の詳細については、後述する。
記憶装置300は、複数の使用ルール315を格納する点が第1の実施例と異なる。図16に示す例では、記憶装置300は、使用ルールA315-1及び使用ルールB315-2を格納する。
第3の実施例では、使用インデクス決定部135Aが、検索者から入力されたインデクスの優先順位に関する情報に基づいて、適用する使用ルール315を決定する。インデクスの優先順位に関する情報は、例えば、図17A及び図17Bに示すような操作画面を用いることが考えられる。
図17A及び図17Bは、本発明の第3の実施例における操作画面の一例を示す説明図である。
操作画面1100-1は、エンタープライズサーチシステムにおける使用ルール315の優先順位を設定するための初期画面である。操作画面1100-1は、検索窓1110、及び二つの検索操作ボタン1120、1130を含む。
検索窓1110は、検索窓710と同一のものであるため説明を省略する。
二つの検索操作ボタン1120、1130は、使用ルール315の優先順位を決定するための操作ボタンである。本実施例では、各操作ボタン1120、1130に対して、適用する使用ルール315が決定されているものとする。
検索操作ボタン1120は、全文検索を重要視する検索処理を実行する場合に操作されるボタンである。検索操作ボタン1130は、化学式を含む文書の検索を重要視する検索処理を実行する場合に操作されるボタンである。
具体的には、検索操作ボタン1120を操作することによって、検索タームを含む検索条件と、使用ルールA315-1を優先的に使用する旨の優先順位の情報とが検索サーバ100に出力される。また、検索操作ボタン1130を操作することによって、検索タームを含む検索条件と、使用ルールB315-2を優先的に使用する旨の優先順位の情報とが検索サーバ100に出力される。
なお、化学式を重要視する検索処理だけではなく、電話番号等の連絡先、所属する部署及び専門等、その他の情報を重要視する検索処理であってもよい。すなわち、インデクスの使用順が異なる検索処理を選択できる操作画面であればよい。
操作画面1100-2は、検索操作ボタン1120、1130が操作された後に表示される操作画面である。具体的には、操作画面1100-2は、検索結果表示領域730を含む。検索結果表示領域730は、第1の実施例と同一であるため説明を省略する。
また、使用ルール315は、図6A及び図6Bに示すように、操作画面を用いて生成又は編集されてもよい。この場合、各インデクス使用ルール315を識別する識別子又は識別名称などが設定するための設定画面を表示して、設定してもよい。
ここで、使用インデクス決定部135Aが実行する処理について説明する。
使用インデクス決定部135Aは、検索制御部130から呼び出されると、制御信号を解析する。その結果、使用インデクス決定部135Aは、使用ルール315の優先順位に関する情報が付与された検索指示であることを特定する。
次に、使用インデクス決定部135Aは、使用ルール315の優先順位に関する情報に基づいて、使用する使用ルール315を選択し、記憶装置300から選択されたインデクス使用ルール315を取得する。
さらに、使用インデクス決定部135Aは、取得されたインデクス使用ルール315に基づいて、インデクスの使用順を決定し、決定されたインデクスの使用順をインデクス使用順情報160として主記憶装置102上に格納する。
以上のように、第3の実施例によれば、検索者の要求毎に適用する使用ルール315を変更することによって、各検索者に適した検索処理を実行することができる。これによって、各検索者が所望する検索結果をより的確に表示することが可能となる。
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体(例えば、非一時的な記憶媒体)に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
なお、本発明の実施形態は、入力装置を介して入力された一つ以上の検索要素(例えば、検索単語)を含む検索要求を受け付け、前記検索要素を含む検索クエリによって、同一の検索母体から生成された検索特性の異なる複数のインデックスのそれぞれを用いて検索したそれぞれの検索結果(或いは他方の検索結果と重複しない検索結果)を、出力装置に出力する計算機、検索方法、検索結果表示方法又はそれを計算機に実行させるプログラムとしても捉えることができる。
更には、そのような構成において、それぞれの検索結果(或いは他方の検索結果と重複しない検索結果)を、並列的に表示する計算機、検索方法、検索結果表示方法又はそれを計算機に実行させるプログラムとしても捉えることができる。
クライアントと検索サーバが通信線を介して接続されたシステムの検索結果表示方法であって、クライアントの設定画面上で検索特性の異なる複数の検索方式の設定を受け付け、クライアントで入力された検索要素を含む検索要求に応じて、前記異なる複数の検索方式による同一母集団に対する検索結果をクライアントに表示する検索結果表示方法及びそれを実行させるプログラムとしても捉えることができる。
Claims (18)
- 一つ以上の検索単語を含む検索クエリに基づいて検索処理を実行する検索サーバであって、
前記検索サーバは、検索処理の対象データである検索母体を格納する記憶装置にアクセスするプロセッサと、
任意の検索クエリに対応する検索処理の実行時に用いられるインデクスを生成する複数のインデクス生成部と、
前記任意の検索クエリにしたがって、前記複数のインデクス生成部の各々によって生成された前記インデクスを用いて、前記検索母体に対する検索処理を実行する複数の検索部と、
前記検索処理によって取得される検索結果を出力する出力部と、を有し、
前記検索クエリを受け付けた場合に、前記複数のインデクスの各々を用いて、前記受け付けた検索クエリに対応する検索処理を実行し、
前記複数のインデクスの各々を用いた検索処理の各々の検索結果データを取得し、
前記取得された各々の検索結果データの少なくとも一つに含まれる検索結果を表示するための情報を出力することを特徴とする検索サーバ。 - 請求項1に記載の検索サーバであって、
前記検索サーバは、前記各々の検索結果データに含まれる検索結果の中から、出力済みの検索結果を削除する重複排除部を有し、
前記記憶装置は、前記出力済みの検索結果に関する出力済み情報、及び、前記インデクスの使用順位を定義する使用ルール情報を格納し、
前記検索サーバは、
前記検索クエリを受け付けた場合に、前記使用ルール情報に基づいて、前記複数のインデクスの中から、使用するインデクスを選択し、
前記選択されたインデクスを用いた検索処理を実行して、前記検索結果データを取得し、
前記取得された検索結果データ及び前記出力済み情報を参照して、前記取得された検索結果データに含まれる検索結果の中から、重複する検索結果を特定し、
前記取得された検索結果データから、前記特定された検索結果を削除することを特徴とする検索サーバ。 - 請求項2に記載の検索サーバであって、
前記検索サーバは、
前記使用ルール情報に基づいて、前記複数のインデクスの中から、最も使用順位が高いインデクスを選択し、
前記選択されたインデクスを用いて検索処理を実行し、
新たな検索結果の出力を要求する出力指示を受け付けた場合に、前記使用ルール情報に基づいて、前回使用されたインデクスの次に使用順位が高いインデクスを選択し、
前記選択されたインデクスを用いて検索処理を実行することを特徴とする検索サーバ。 - 請求項1又は請求項2に記載の検索サーバであって、
前記検索クエリは、複数の検索単語を含み、
前記検索サーバは、
前記複数の検索単語の各々に対して、前記複数のインデクスの各々を用いた検索処理を実行することによって、前記各々の検索結果データを出力し、
該各々の検索結果データの組合せを決定し、
前記決定された組合せに基づいて、該各々の検索結果データのうち二つの検索結果データを取得し、
前記取得された二つの検索結果データを照合することによって、新たな検索結果データを生成し、
前記生成された新たな検索結果データに含まれる前記検索結果を表示するための情報を出力することを特徴とする検索サーバ。 - 請求項4に記載の検索サーバであって、
前記検索サーバは、前記組合せを決定する場合に、前記各々の検索結果データに含まれる前記検索結果の数に基づいて、前記組合せを決定することを特徴とする検索サーバ。 - 請求項1又は請求項2に記載の検索サーバであって、
前記記憶装置は、複数の前記使用ルール情報を含み、
前記検索クエリに基づいて、前記複数の使用ルール情報の中から、適用する前記使用ルール情報を選択することを特徴とする検索サーバ。 - 一つ以上の検索単語を含む検索クエリに基づいて検索処理を実行する一つ以上の計算機を備える計算機システムにおける検索方法であって、
前記一つ以上の計算機は、検索処理の対象データである検索母体を格納する記憶装置にアクセスするプロセッサを有し、
前記計算機システムは、
任意の検索クエリに対応する検索処理の実行時に用いられるインデクスを生成する複数のインデクス生成部と、
前記任意の検索クエリにしたがって、前記複数のインデクス生成部の各々によって生成された前記インデクスを用いて、前記検索母体に対する検索処理を実行する複数の検索部と、
前記複数の検索部を管理する検索制御部と、
前記複数の検索部の各々が実行する検索処理によって取得される検索結果を出力する出力部と、を有し、
前記検索方法は、
前記検索制御部が、前記検索クエリを受け付けた場合に、前記複数の検索部を呼び出して、前記受け付けた検索クエリに対応する検索処理の実行を指示する第1のステップと、
前記出力部が、前記複数の検索部の各々が実行する検索処理の各々の検索結果データを取得し、前記取得された各々の検索結果データの少なくとも一つに含まれる検索結果を表示するための情報を出力する第2のステップと、を含むことを特徴とする検索方法。 - 請求項7に記載の検索方法であって、
前記計算機システムは、前記各々の検索結果データに含まれる検索結果の中から、出力済みの検索結果を削除する重複排除部を有し、
前記記憶装置は、前記出力済みの検索結果に関する出力済み情報、及び、前記インデクスの使用順位を定義する使用ルール情報を格納し、
前記第1のステップは、
前記検索クエリを受け付けた場合に、前記使用ルール情報に基づいて、前記複数のインデクスの中から、使用するインデクスを選択するステップと、
前記選択されたインデクスに対応する検索部を呼び出すステップと、
前記選択された検索部から検索差処理が終了した旨の通知を受け付けた後に、前記重複排除部を呼び出すステップと、を含み、
前記方法は、さらに、
前記重複排除部が、前記取得された検索結果データ及び前記出力済み情報を参照して、前記取得された検索結果データに含まれる検索結果の中から、重複する検索結果を特定するステップと、
前記重複排除部が、前記取得された検索結果データから、前記特定された検索結果を削除するステップと、を含むことを特徴とする検索方法。 - 請求項8に記載の検索方法であって、
前記第1のステップは、
前記使用ルール情報に基づいて、前記複数のインデクスの中から、最も使用順位が高いインデクスを選択するステップと、
前記選択されたインデクスに対応する前記検索部を呼び出すステップと、
新たな検索結果の出力を要求する出力指示を受け付けた場合に、前記使用ルール情報に基づいて、前回使用されたインデクスの次に使用順位が高いインデクスを選択するステップと、
前記選択されたインデクスに対応する検索部を呼び出すステップと、を含むことを特徴とする検索方法。 - 請求項7又は請求項8に記載の検索方法であって、
前記検索クエリは、複数の検索単語を含み、
前記第1のステップは、
前記複数の検索単語の各々に対して、前記複数の検索部を呼び出す第3のステップと、
前記取得された各々の検索結果データを参照して、該各々の検索結果データの組合せを決定する第4のステップと、
前記決定された組合せに基づいて、該各々の検索結果データのうち二つの検索結果データを取得する第5のステップと、
前記取得された二つの検索結果データを照合することによって、新たな検索結果データを生成する第6のステップと、を含み、
前記第2のステップでは、前記生成された新たな検索結果データに含まれる前記検索結果を表示するための情報を出力することを特徴とする検索方法。 - 請求項10に記載の検索方法であって、
前記第4のステップでは、前記各々の検索結果データに含まれる前記検索結果の数に基づいて、前記組合せを決定することを特徴とする検索方法。 - 請求項7又は請求項8に記載の検索方法であって、
前記記憶装置は、複数の前記使用ルール情報を含み、
前記第1のステップは、前記検索クエリに基づいて、前記複数の使用ルール情報の中から、適用する前記使用ルール情報を選択するステップを含むことを特徴とする検索方法。 - 一つ以上の検索単語を含む検索クエリに基づいて検索処理を実行する検索サーバが実行するプログラムであって、
前記検索サーバは、検索処理の対象データである検索母体を格納する記憶装置にアクセスするプロセッサを有し、
前記プログラムは、
前記検索母体に対して異なる検索結果を取得する検索処理の実行時に用いられる複数のインデクスを生成する第1の手順と、
前記検索クエリを受け付けた場合に、前記受け付けた検索クエリに対して、前記複数のインデクスを用いた複数の検索処理の実行する第2の手順と、
前記実行された複数の検索処理の各々の検索結果データを取得し、前記取得された各々の検索結果データに含まれる検索結果を表示するための情報を出力する第3の手順と、を前記検索サーバに実行させることを特徴とするプログラム。 - 請求項13に記載のプログラムであって、
前記記憶装置は、前記出力済みの検索結果の情報に関する表示済み情報、及び、前記インデクスの使用順位を定義する使用ルール情報を格納し、
前記第2の手順は、
前記検索クエリを受け付けた場合に、前記使用ルール情報に基づいて、前記複数のインデクスの中から、使用するインデクスを選択する手順と、
前記選択されたインデクスに対応する検索処理を実行する手順と、を含み、
前記プログラムは、さらに、
前記選択されたインデクスに対応する検索処理が終了した後に、前記取得された検索結果データと前記表示済み情報とを参照して、前記取得された検索結果データに含まれる検索結果の中から、重複する検索結果を特定する手順と、
前記取得された検索結果データから、前記特定された検索結果を削除する手順と、を前記検索サーバに実行させることを特徴とするプログラム。 - 請求項14に記載のプログラムであって、
前記第2の手順は、
前記使用ルール情報に基づいて、前記複数のインデクスの中から、最も使用順位の高いインデクスを選択する手順と、
前記選択されたインデクスに対応する検索処理を実行する手順と、
新たな検索結果の表示を要求する出力指示を受け付けた場合に、前記使用ルール情報に基づいて、前回使用されたインデクスの次に使用順位が高いインデクスを選択する手順と、
前記選択されたインデクスに対応する検索処理を実行する手順と、を含むことを特徴とするプログラム。 - 請求項13又は請求項14に記載のプログラムであって、
前記検索クエリは、複数の前記検索単語を含み、
前記第2の手順は、
前記複数の検索単語の各々に対して、前記複数のインデクスの各々を用いた検索処理を実行する第4の手順と、
前記複数の検索処理の各々から取得される前記各々の検索結果データを参照して、該各々の検索結果データの組合せを決定する第5の手順と、
前記決定された組合せに基づいて、該各々の検索結果データのうち二つの検索結果データを取得する第6の手順と、
前記取得された二つの検索結果データを照合することによって、新たな検索結果データを生成する第7の手順と、を含み、
前記第3の手順では、前記生成された新たな検索結果データに含まれる前記検索結果を表示するための情報を出力する手順と、を含むことを特徴とするプログラム。 - 請求項16に記載のプログラムであって、
前記第5の手順では、前記各々の検索結果データに含まれる前記検索結果の数に基づいて、前記組合せを決定することを特徴とするプログラム。 - 請求項13又は請求項14に記載のプログラムであって、
前記記憶装置は、複数の前記使用ルール情報を含み、
前記第2の手順は、前記検索クエリに基づいて、前記複数の使用ルール情報の中から、適用する前記使用ルール情報を選択する手順を含むことを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/064087 WO2013179441A1 (ja) | 2012-05-31 | 2012-05-31 | 検索サーバ、検索方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/064087 WO2013179441A1 (ja) | 2012-05-31 | 2012-05-31 | 検索サーバ、検索方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013179441A1 true WO2013179441A1 (ja) | 2013-12-05 |
Family
ID=49672695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/064087 WO2013179441A1 (ja) | 2012-05-31 | 2012-05-31 | 検索サーバ、検索方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2013179441A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110709829A (zh) * | 2017-06-05 | 2020-01-17 | 北京嘀嘀无限科技发展有限公司 | 一种数据处理的系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03230273A (ja) * | 1990-02-05 | 1991-10-14 | Nec Corp | 検索条件式の保持方式 |
JPH06325094A (ja) * | 1993-05-14 | 1994-11-25 | Matsushita Electric Ind Co Ltd | 電子ブック装置 |
JPH09259132A (ja) * | 1996-03-19 | 1997-10-03 | Canon Inc | 情報登録検索装置及びその方法 |
JP2008198235A (ja) * | 2008-05-26 | 2008-08-28 | Toshiba Corp | 構造化文書管理システム |
JP2009187211A (ja) * | 2008-02-05 | 2009-08-20 | Nec Corp | 情報検索システム、情報検索方法およびプログラム |
-
2012
- 2012-05-31 WO PCT/JP2012/064087 patent/WO2013179441A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03230273A (ja) * | 1990-02-05 | 1991-10-14 | Nec Corp | 検索条件式の保持方式 |
JPH06325094A (ja) * | 1993-05-14 | 1994-11-25 | Matsushita Electric Ind Co Ltd | 電子ブック装置 |
JPH09259132A (ja) * | 1996-03-19 | 1997-10-03 | Canon Inc | 情報登録検索装置及びその方法 |
JP2009187211A (ja) * | 2008-02-05 | 2009-08-20 | Nec Corp | 情報検索システム、情報検索方法およびプログラム |
JP2008198235A (ja) * | 2008-05-26 | 2008-08-28 | Toshiba Corp | 構造化文書管理システム |
Non-Patent Citations (2)
Title |
---|
DAISUKE OKANOHARA: "[Sokushu] Search Engine Kokukoku to Shinka suru Kensaku Gijutsu no Ima", WEB+DB PRESS, vol. 53, 25 November 2009 (2009-11-25), pages 94 - 104 * |
YUYA NODA ET AL.: "WWW kara Kakutoku shita Chishiki ni yoru Kensakugo Kakucho to Recipe Kensaku Task ni Okeru Hyoka", THE ASSOCIATION FOR NATURAL LANGUAGE PROCESSING DAI 16 KAI NENJI TAIKAI HAPPYO RONBUNSHU, 8 March 2010 (2010-03-08), pages 138 - 141 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110709829A (zh) * | 2017-06-05 | 2020-01-17 | 北京嘀嘀无限科技发展有限公司 | 一种数据处理的系统和方法 |
CN110709829B (zh) * | 2017-06-05 | 2022-10-25 | 北京嘀嘀无限科技发展有限公司 | 一种数据处理的系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11822560B2 (en) | Rank query results for relevance utilizing external context | |
US10803017B2 (en) | Generating file usage information | |
US11010425B2 (en) | Persisted enterprise graph queries | |
US8244766B2 (en) | Applying a model of a persona to search results | |
US7865516B2 (en) | Associative temporal search of electronic files | |
US8245148B2 (en) | History display apparatus, history display system, history display method, and program | |
US9519703B2 (en) | Refining search results for a compound search query | |
JP4746439B2 (ja) | 文書検索サーバおよび文書検索方法 | |
US11893039B2 (en) | Interactive interface for data analysis and report generation | |
WO2014034383A1 (ja) | 情報処理装置、レコード位置情報特定方法および情報処理プログラム | |
EP3918486A1 (en) | Search and ranking of records across different databases | |
JP5418493B2 (ja) | 検索システム、検索方法およびプログラム | |
US20110264678A1 (en) | User modification of a model applied to search results | |
US11789958B2 (en) | Reducing CPU consumption in a federated search | |
JP2011215723A (ja) | シソーラス構築システム、シソーラス構築方法およびシソーラス構築プログラム | |
US20160092506A1 (en) | Generating suggested structured queries | |
WO2013179441A1 (ja) | 検索サーバ、検索方法及びプログラム | |
US20200410420A1 (en) | Issue rank management in an issue tracking system | |
JP5127553B2 (ja) | 情報処理装置、情報処理方法、プログラム及び記録媒体 | |
CN113468110A (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN113239258A (zh) | 提供查询建议的方法、装置、电子设备和存储介质 | |
JP6256079B2 (ja) | 検索プログラム、検索方法及び検索装置 | |
JP6221593B2 (ja) | データ管理方法、データ管理プログラム及びデータ管理装置 | |
JP2013025700A (ja) | ファイル格納先候補決定装置、ファイル格納先候補の決定方法、ファイル格納先決定支援システム、並びにコンピュータ・プログラム | |
WO2014057744A1 (ja) | 文書検索システム、文書検索方法及びサーバ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12878127 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: 12878127 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |