WO2014189190A1 - 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법 - Google Patents
데이터 부재 태깅 기반의 정보 검색 시스템 및 방법 Download PDFInfo
- Publication number
- WO2014189190A1 WO2014189190A1 PCT/KR2013/011541 KR2013011541W WO2014189190A1 WO 2014189190 A1 WO2014189190 A1 WO 2014189190A1 KR 2013011541 W KR2013011541 W KR 2013011541W WO 2014189190 A1 WO2014189190 A1 WO 2014189190A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- keyword
- history table
- search
- master filter
- database
- 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/335—Filtering based on additional data, e.g. user or group profiles
-
- 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
- G06F16/334—Query execution
-
- 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
-
- 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
- G06F16/316—Indexing structures
- G06F16/328—Management therefor
-
- 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
Definitions
- Embodiments of the present invention relate to an efficient retrieval technique for large amounts of data.
- log data such as a user's connection record, an error occurrence record, or event data that records events generated in the system.
- log data may be useful for identifying a state of a service system or a service component in a system and responding to a problem, or foreseeing a problem occurring in advance.
- Embodiments of the present invention provide a means for effectively retrieving large amounts of data such as log data.
- An information retrieval system includes a data storage area in which data is divided into a plurality of data blocks, a database including a metadata area in which keyword absence information for each data block is stored, and a search target from a user.
- a keyword search request including a keyword and a search target section is received, a searcher searching for data stored in the database using the requested keyword, and keyword absence information according to a keyword search result is received from the searcher.
- a keyword manager for recording the keyword absence information.
- the searcher determines whether there is an absence section of a keyword among the search target sections received from the keyword absence information recorded in the database, and if the absence section of the keyword exists,
- the database may be searched using a search target keyword in the remaining sections except the absent section.
- the keyword manager receives the search section of the keyword searched by the searcher and the absence information of the keyword in the search section, and the absence of the searched keyword in a metadata area corresponding to a block in which no keyword exists among a plurality of data blocks. Can be marked.
- the keyword manager may include a keyword history table for storing keywords received from the searcher for a set period of time; A master filter storing hash values of keywords stored in the keyword history table; And among the keywords received from the searcher, a conflict keyword history table in which a keyword having a conflict with a keyword previously stored in the master filter is stored.
- the master filter may be a counting bloom filter.
- the keyword manager calculates a different number of hash values set from the keywords received from the searcher, and receives the cell values corresponding to the calculated hash values among the cells of the master filter when all are greater than zero.
- the stored keyword may be stored in the collision keyword history table.
- the keyword manager increases the cell value of the master filter corresponding to the hash value by 1 and adds the received keyword to the keyword history. Can be stored in a table.
- the keyword manager may mark absence information of keywords stored in the keyword history table on the metadata area.
- the keyword manager may reduce a cell value of the master filter corresponding to a hash value of the specific keyword by 1 when the specific keyword stored in the keyword history table is not used for a preset period, and set the specific keyword to the keyword history. Can be deleted from the table.
- the keyword manager When the keyword stored in the keyword history table is deleted, the keyword manager deletes a keyword no longer conflicting with a keyword previously stored in the master filter among the keywords stored in the conflict keyword history table, and the conflict keyword keyword.
- the keyword deleted from the history table may be registered in the keyword history table and the master filter.
- the searcher determines whether the absence information of the search target keyword is marked using the master filter, and if it is determined that the absence information of the search target keyword is marked in the database, the searcher searches the metadata area of the database to search for the search target. Absence section information of the keyword may be obtained.
- the information retrieval method receiving a keyword search request including a search target keyword and a search target section from the user in the searcher, data stored in the database using the keyword requested by the searcher Retrieving, and recording keyword absence information according to a keyword search result in a keyword manager in the database.
- the information retrieval method may further include determining whether the absence section of the keyword exists among the search target sections received from the keyword absence information recorded in the database by the searcher before performing the step of retrieving the data.
- the searching of the data may include searching the database using the search target keyword in the remaining sections except for the absence section of the keyword among the search target sections when the absence section of the keyword exists as a result of the determination. .
- the recording of the keyword absence information may include: receiving a keyword search section and a search result from the searcher; Determining whether a received keyword collides with a keyword previously stored in a master filter; And storing the keyword in the keyword history table or the conflicting keyword history table according to the determination result.
- the master filter may be a counting bloom filter.
- the determining of whether or not the collision occurs may include calculating a different number of hash values set from the keywords received from the searcher, and a cell value corresponding to the calculated hash value in each cell of the master filter may be calculated. It is possible to determine whether or not the keyword conflicts with the keyword stored in the master filter according to whether all of them are greater than zero.
- the storing of the keyword may include increasing a cell value of the master filter corresponding to the hash value by 1 when at least one of cell values of the master filter corresponding to the hash value calculated as the collision determination result is 0.
- the received keyword may be stored in the keyword history table.
- the storing of the keyword may include storing the received keyword in the collision keyword history table when all of the cells of the master filter corresponding to the hash value calculated as the collision determination result are larger than zero.
- the cell of the master filter corresponding to the hash value of the specific keyword is used. Decreasing a value by 1 and deleting the specific keyword from the keyword history table.
- the deleting of the specific keyword from the keyword history table may include: deleting a keyword that no longer collides with a keyword previously stored in the master filter among keywords stored in the conflict keyword history table, and deleted from the conflict keyword history table.
- a keyword may be registered in the keyword history table and the master filter.
- FIG. 1 is a block diagram illustrating an information retrieval system 100 according to an embodiment of the present invention.
- FIG. 2 is a block diagram showing a detailed configuration of the database 102 according to an embodiment of the present invention.
- FIG. 3 is a block diagram showing a detailed configuration of the searcher 104 according to an embodiment of the present invention.
- FIG. 4 is a block diagram showing a detailed configuration of the keyword manager 106 according to an embodiment of the present invention.
- FIG. 5 is a flowchart illustrating a process 500 of adding a new keyword in the keyword manager 106 according to an embodiment of the present invention.
- FIG. 6 is a diagram illustrating a master filter according to an embodiment of the present invention.
- FIG. 7 is a diagram illustrating a state in which a new keyword is added to the master filter shown in FIG. 6.
- FIG. 8 is a flowchart illustrating a process 800 of deleting a keyword in the keyword manager 106 according to an embodiment of the present invention.
- FIG. 9 is a diagram illustrating a state in which a specific keyword is deleted from the master filter shown in FIG. 7.
- FIG. 10 is a flowchart illustrating a keyword search and metadata update process 1000 according to an embodiment of the present invention.
- FIG. 11 is a flowchart illustrating a keyword search process 1100 using keyword absence information according to an embodiment of the present invention.
- the information retrieval system 100 includes a database 102, a searcher 104, and a keyword manager 106.
- the database 102 stores data to be searched.
- the data stored in the database 102 is a log or an event such as a connection record, an error occurrence history, etc., generated when operating a service system that provides a service such as VoIP on the Internet. Information.
- the database 102 may be configured as an unstructured database such as NoSQL.
- the database 102 may be configured as a relational database (RDBMS).
- the searcher 104 receives a keyword search request from a user, and searches for data stored in the database 102 using the search target keyword included in the keyword search request.
- the keyword may be, for example, an important message text included in a log or event message stored in the database 102, a user account (ID) registered in advance as a main monitoring target, and the like.
- the keyword search request may further include a search target section for searching a search target keyword together with the search target keyword.
- a search target section for searching a search target keyword together with the search target keyword.
- the user may have a specific error message (eg, a message such as “DBError”), or a specific person's connection record (eg, a user's access log whose ID is “ABC”) for the past 7 days.
- 102 may request a search as to whether the data is included in the data stored in 102).
- the keyword manager 106 receives the keyword absence information from the searcher 104 in accordance with the keyword search result performed in the searcher 104 and records the keyword absence information in the database 102. For example, if a search result of a user's search request resulted in the "DBError" message only on the first day of the last 7 days of the search period, the searcher 104 notified that the "DBError" message had not occurred for the remaining six days. The message (keyword absence information) is sent to the keyword manager 106, which can record the received keyword absence information in the database 102.
- the message related to the keyword absence information may be configured in various forms.
- the searcher 104 may transmit the search result and the search section according to the keyword search result to the keyword manager 106 as it is, and calculates the keyword absence section from the search result and the search section and then the keyword manager 106. Can also be sent.
- the searcher 104 refers to the keyword absence information recorded in the database 102 when there is a search request for the same keyword, The requested keyword is searched except for the recorded section. For example, when the search request for the keyword “DBError” is received from the user again, the searcher 104 uses the keyword absence information recorded in the database 102 and the absence section of the keyword exists among the received search target sections. The search target keyword is searched for in the remaining sections except for the absence of the keyword. Accordingly, according to the exemplary embodiments of the present invention, as the search is repeated in the keyword that is frequently searched, the data search speed can be improved.
- the database 102 is a block diagram showing a detailed configuration of the database 102 according to an embodiment of the present invention. As shown, the database 102 according to an embodiment of the present invention includes a data storage area 200 and a metadata area 202.
- the data storage area 200 is an area in which data to be searched is stored.
- the data storage area 200 may be configured to divide and store the data into a plurality of data blocks.
- the data storage area 200 may be configured to divide the data into time units such as daily or weekly, and store the divided data in different data blocks according to generation time of the data.
- the metadata area 202 is an area in which absence information for each keyword of data stored in the data storage area 200 is stored.
- the data storage area 200 may divide and store data into a plurality of blocks.
- the metadata area 202 may store absence information of keywords for each of the divided data blocks. That is, when referring to the metadata area 202, it is easy to identify a data block in which the data to be searched is not stored.
- the metadata area 202 may store keyword absence information for each data block by using a Bloom filter for each data block, but the present invention provides a specific data structure for storing keyword absence information. It is not limited.
- the searcher 104 includes a keyword search unit 300, a metadata search unit 302, a keyword information registration and query unit 304.
- the keyword search unit 300 receives a keyword search request from a user, performs a search on the data storage area 200 of the database 102 by using one or more keywords according to the keyword search request, and retrieves the search result. Return to the user.
- the metadata retrieval unit 302 searches the metadata area 202 of the database 102 to determine whether there is a section (keyword absent section) in which the corresponding keyword does not exist among the search target sections of the requested keyword. . If there is an absent section of the keyword among the search target sections of the metadata region 202 search result, the keyword search unit 300 searches for the corresponding keyword only for the remaining sections except the absent section.
- the keyword information registration and query unit 304 registers keyword information including a search result performed by the keyword search unit 300 in the keyword manager 106 to be described later.
- the keyword information registration and query unit 304 inquires the keyword manager 106 of the received search target keyword information and receives a result thereof. Detailed configurations related to registration and query (query) of keyword information will be described later.
- the keyword manager 104 includes a keyword information manager 400 and a metadata manager 402.
- the keyword information management unit 400 stores keyword information registered and received from the query unit 304. In addition, the keyword information management unit 400 provides keyword information corresponding to the request when the request for the keyword information is received from the keyword information registration and query unit 304. In addition, the metadata manager 402 marks the absence information of each keyword received by the keyword information manager 400 in the metadata area 202 of the database 102.
- the keyword information means a kind of history information on the keyword currently being used in the database 102. That is, in the case of log data, the latest data is searched more frequently and more frequently than the previous data, so that information about keywords frequently searched at the present time is stored so that more efficient searching is possible. will be.
- the keyword information management unit 400 may use three data structures including a keyword history table, a master filter, and a collision keyword history table for managing keyword information.
- the keyword history table is a data structure for storing keywords received from the searcher 104 for a predetermined period of time.
- the keyword history table may be configured to store keywords received from searcher 104 in the last seven days.
- the keyword history table may be configured to include not only recent search keywords but also all past search keywords.
- a keyword history table can contain multiple blocks, with the first block containing the search keywords for the most recent period (for example, the last seven days), and the second block for the previous period (8-14).
- the third block may be configured to store the search keyword of the previous period (15 to 21 days). In this case, the keywords stored in the first block may be regarded as keywords currently being actively searched.
- the master filter is a filter in which hash values of keywords stored in the keyword history table are stored.
- the master filter may be implemented using, for example, a counting bloom filter.
- the master filter may store only the keywords searched during the most recent period. If a keyword stored in the master filter is not used for a certain period of time, the keyword may be deleted from the master filter.
- the collision keyword history table is a data structure in which a keyword in which a collision occurs with a keyword previously stored in a master filter among keywords received from the searcher 104. Specifically, when a keyword is received from the searcher 104, the keyword information management unit 400 first determines whether the keyword can be stored in the master filter, and if the keyword can be stored in the master filter, the keyword information is stored in the keyword history table. If not, save it to the conflict keyword history table.
- FIG. 5 is a flowchart illustrating a process 500 of adding a new keyword in the keyword manager 106 according to an embodiment of the present invention.
- the keyword information manager 400 of the keyword manager 106 applies a predetermined number of different hash functions to the received keyword.
- a plurality of hash values are calculated (504), and it is determined whether or not the received keyword can be added to the master filter according to each cell value of the master filter corresponding to each calculated hash value (508).
- the keyword information management unit 400 calculates a plurality of hash values by applying a plurality of different hash functions to the received keyword “abc”. For example, suppose that the result of applying three different hash functions to the keyword is 3, 6, and 100, respectively. Then, the keyword information management unit 400 reads the values previously stored in the third, sixth, and 100th cells of the master filter, and then receives the received information according to whether each cell value is greater than zero. Determines whether keywords can be added to the master filter.
- the keyword information management unit 400 increases the cell value of the master filter corresponding to the hash value by 1, thereby mastering the corresponding keyword. In operation 510.
- each rectangle represents each cell of the master filter
- the number inside the rectangle represents the value of each cell
- the number below represents the serial number of each cell.
- the keyword information management unit 400 may generate a hash value as illustrated in FIG. 7. Increment the value of each cell corresponding to by 1. That is, in this case, the values of the third and sixth 100th cells of the master filter are 2, 1, and 3, respectively.
- the keyword information management unit 400 stores the newly added keyword in the keyword history table (512).
- the keyword information management unit 400 cannot add the keyword to the master filter. This is because the True filter is returned when querying the keyword even if the keyword is not added in the Bloom filter or the counting Bloom filter, that is, a positive false occurs for the keyword. . Therefore, in this case, the keyword information management unit 400 stores the keyword in the collision keyword history table (514).
- the metadata manager 402 When the new keyword is stored in either the keyword history table or the conflict keyword history table through the above process, the metadata manager 402 finally displays the absence information of the newly stored keyword in the metadata area 202 of the database 102.
- the metadata region 202 is updated by marking at 516.
- the reason for managing a separate collision keyword history table in addition to the master filter is as follows.
- the counting bloom filter is used as the data structure, there is a possibility that a false positive that returns true for the keyword query may occur even if the keyword is not actually stored.
- a problem may arise in that the counting bloom filter is used to indicate “absence” rather than the presence of a specific keyword.
- a section in which a keyword actually exists may be incorrectly determined as a keyword absent section.
- a search for a keyword is not performed in a section incorrectly determined as an absent section.
- the present invention is configured to prevent a false positive from occurring by separately storing a keyword that cannot be added due to a collision with a pre-stored keyword in the collision keyword history table.
- FIG. 8 is a flowchart illustrating a process 800 of deleting a keyword in the keyword manager 106 according to an embodiment of the present invention.
- the keyword information management unit 400 of the keyword manager 106 designates a keyword for which a specific keyword stored in the keyword history table has not been used for a predetermined period as a deletion target keyword, and calculates a plurality of hash values from the deletion target keyword. (802). Thereafter, the keyword manager 106 extracts each cell value of the master filter corresponding to the calculated hash value (804), and determines whether the corresponding keyword can be deleted according to the size of each cell value (806).
- FIG. 9 illustrates a state in which the keyword “abc” is deleted from the master filter as shown in FIG. 7 through such a process. That is, the keyword information management unit 400 decreases the third and sixth 100th cell values of the master filter corresponding to the keyword “abc” from 2, 1, 3 to 1, 0, 2.
- the keyword information management unit 400 deletes from the conflict keyword history table a keyword whose collision no longer occurs due to the deletion of the keyword among the keywords stored in the conflict keyword history table.
- the new filter may be added to the master filter (812).
- FIG. 10 is a flowchart illustrating a keyword search and metadata update process 1000 according to an embodiment of the present invention.
- the searcher 104 transmits a keyword search query to the database 102 using the search target keyword and the search target section information received from the user 1000, and the database 102 searches according to the received keyword search query. After the operation is performed, the search result is returned (1004).
- the searcher 104 transmits the keyword absence information according to the received search result to the keyword manager 106 (1006), and the keyword manager 106 transmits the meta data of the database 102 according to the received keyword absence information. Keyword absence information is marked in the data area 202 (1008).
- FIG. 11 is a flowchart illustrating a keyword search process 1100 using keyword absence information according to an embodiment of the present invention.
- the searcher 104 receives a keyword search request including a search target keyword and a search target section from a user, and queries the keyword manager 106 for information on the search target keyword included in the received search request (1102). ).
- the keyword manager 106 Upon receiving the query, the keyword manager 106 searches whether the received search target keyword is stored in either the master filter or the conflict keyword history table, and transmits the search result to the searcher 104 (1104). ).
- the searcher 104 searches the metadata area 202 of the database 102 to search for the absence section of the keyword to search for the absence section of the search target keyword. Information is obtained (1106, 1108), and the search target keyword is searched for in the remaining sections except the obtained absence section (1110, 1112). That is, in this case, since the absence information of the corresponding keyword is marked in the database 102, the absence section is removed using metadata and the search is performed only in the remaining sections.
- the searcher 104 performs a search for the search target keyword in the entire search target section.
- an embodiment of the present invention may include a computer readable recording medium including a program for performing the methods described herein on a computer.
- the computer readable recording medium may include program instructions, local data files, local data structures, etc. alone or in combination.
- the media may be those specially designed and constructed for the present invention, or they may be of the kind well-known and available to those skilled in the computer software arts.
- Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, magnetic-optical media such as floppy disks, and ROM, RAM, flash memory, and the like.
- Hardware devices specifically configured to store and execute program instructions are included.
- Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.
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)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터 부재 태깅 기반의 정보 검색 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 정보 검색 시스템은, 데이터가 복수 개의 데이터 블록으로 구분되어 저장되는 데이터 저장 영역, 및 데이터 블록 별 키워드 부재 정보가 저장되는 메타데이터 영역을 포함하는 데이터베이스, 사용자로부터 검색 대상 키워드 및 검색 대상 구간을 포함하는 키워드 검색 요청을 수신하고, 요청된 키워드를 이용하여 상기 데이터베이스에 저장된 데이터를 검색하는 검색기, 및 상기 검색기로부터 키워드 검색 결과에 따른 키워드 부재 정보를 수신하고, 상기 데이터베이스에 상기 키워드 부재 정보를 기록하는 키워드 관리기를 포함한다.
Description
본 발명의 실시예들은 대용량 데이터의 효율적인 검색 기술과 관련된다.
전자상거래, SNS, VoIP 서비스 등 인터넷 서비스 시스템이 일반화되면서, 이들 서비스 시스템을 효과적으로 운용하기 위한 다양한 수단들이 개발되었다. 서비스 시스템의 경우 사용자들의 접속 기록, 에러 발생 기록 등의 로그 데이터, 또는 시스템 내에서 발생된 이벤트들을 기록한 이벤트 데이터 등을 저장 및 관리하는 것이 일반적이다. 이러한 데이터는 서비스 시스템이나 시스템 내 서비스 콤포넌트 등의 상태를 파악하고 발생된 문제에 대응하거나, 또는 문제 발생을 사전에 예측하는 데 유용하게 사용될 수 있다.
서비스 시스템이 복잡화, 대형화되고 이를 사용하는 사용자의 숫자가 증가할수록, 서비스 시스템에서 기록되는 데이터의 용량 또한 증가하게 된다. 따라서 이를 효과적으로 활용하기 위해서는 대용량 데이터로부터 원하는 키워드를 빠르고 효율적으로 탐색할 필요가 있다. 이를 위하여, 종래의 데이터 관리 시스템의 경우 데이터베이스의 자주 검색되는 특정 행(row) 또는 자주 검색되는 데이터블록에 대한 인덱스(index)를 생성하는 방식을 이용하였다. 그러나 사전에 사용자가 어떠한 데이터를 자주 검색할지를 예측하기란 매우 어려우며, 또한 인덱싱을 위해서는 별도의 하드웨어 자원을 소모하게 되므로 이와 같은 방법은 특히 대용량 데이터의 경우 비효율적이라는 문제가 있었다.
또한, 최근에는 대용량 데이터 관리를 위하여 NoSQL 등의 비정형 데이터베이스를 이용하는 경향이 증가하고 있는데, 이러한 비정형 데이터베이스의 경우 특정 데이터에 대한 자동 인덱싱을 지원하지 않으므로 인덱싱을 위해서는 인덱싱 알고리즘을 직접 구현해야 하는 문제점이 있었다.
본 발명의 실시예들은 로그 데이터 등의 대용량 데이터를 효과적으로 검색하기 위한 수단을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 정보 검색 시스템은, 데이터가 복수 개의 데이터 블록으로 구분되어 저장되는 데이터 저장 영역, 및 데이터 블록 별 키워드 부재 정보가 저장되는 메타데이터 영역을 포함하는 데이터베이스, 사용자로부터 검색 대상 키워드 및 검색 대상 구간을 포함하는 키워드 검색 요청을 수신하고, 요청된 키워드를 이용하여 상기 데이터베이스에 저장된 데이터를 검색하는 검색기, 및 상기 검색기로부터 키워드 검색 결과에 따른 키워드 부재 정보를 수신하고, 상기 데이터베이스에 상기 키워드 부재 정보를 기록하는 키워드 관리기를 포함한다.
상기 검색기는, 상기 데이터베이스에 기록된 상기 키워드 부재 정보로부터 수신된 검색 대상 구간 중 키워드의 부재 구간이 존재하는지의 여부를 판단하고, 만약 키워드의 부재 구간이 존재하는 경우, 검색 대상 구간 중 상기 키워드의 부재 구간을 제외한 나머지 구간에서 검색 대상 키워드를 이용하여 상기 데이터베이스를 검색할 수 있다.
상기 키워드 관리기는, 상기 검색기로부터 검색된 키워드의 검색 구간 및 해당 검색 구간에서의 키워드의 부재 정보를 수신하고, 복수 개의 데이터 블록 중 키워드가 존재하지 않는 블록에 대응되는 메타데이터 영역에 상기 검색된 키워드의 부재를 마킹할 수 있다.
상기 키워드 관리기는, 설정된 기간 동안 상기 검색기로부터 수신된 키워드가 저장되는 키워드 히스토리 테이블; 상기 키워드 히스토리 테이블에 저장된 키워드의 해시값이 저장되는 마스터 필터; 및 상기 검색기로부터 수신된 키워드 중, 상기 마스터 필터에 기 저장된 키워드와 충돌이 발생하는 키워드가 저장되는 충돌 키워드 히스토리 테이블을 각각 관리할 수 있다.
상기 마스터 필터는 카운팅 블룸 필터(Counting Bloom Filter)일 수 있다.
상기 키워드 관리기는, 상기 검색기로부터 수신된 키워드로부터 설정된 수의 서로 다른 해시값을 계산하고, 상기 마스터 필터의 각 셀(cell) 중 계산된 해시값에 대응되는 셀 값이 모두 0보다 큰 경우, 수신된 키워드를 상기 충돌 키워드 히스토리 테이블에 저장할 수 있다.
상기 키워드 관리기는, 계산된 해시값에 대응되는 상기 마스터 필터의 셀 값 중 적어도 하나가 0인 경우, 해시값에 대응되는 상기 마스터 필터의 셀 값을 각각 1 증가시키고, 수신된 키워드를 상기 키워드 히스토리 테이블에 저장할 수 있다.
상기 키워드 관리기는, 상기 키워드 히스토리 테이블에 저장된 키워드의 부재 정보를 상기 메타데이터 영역에 마킹할 수 있다.
상기 키워드 관리기는, 상기 키워드 히스토리 테이블에 저장된 특정 키워드가 기 설정된 기간 동안 사용되지 않은 경우, 상기 특정 키워드의 해시값에 대응되는 상기 마스터 필터의 셀 값을 1 감소시키고, 상기 특정 키워드를 상기 키워드 히스토리 테이블에서 삭제할 수 있다.
상기 키워드 관리기는, 상기 키워드 히스토리 테이블에 저장된 키워드가 삭제되는 경우, 상기 충돌 키워드 히스토리 테이블에 저장된 키워드 중 상기 마스터 필터에 기 저장된 키워드와 더 이상 충돌이 발생하지 않는 키워드를 삭제하고, 상기 충돌 키워드 키워드 히스토리 테이블에서 삭제된 키워드를 상기 키워드 히스토리 테이블 및 상기 마스터 필터에 등록할 수 있다.
상기 검색기는, 상기 마스터 필터를 이용하여 검색 대상 키워드의 부재 정보 마킹 여부를 판단하고, 검색 대상 키워드의 부재 정보가 상기 데이터베이스에 마킹된 것으로 판단되는 경우, 상기 데이터베이스의 메타데이터 영역을 검색하여 검색 대상 키워드의 부재 구간 정보를 획득할 수 있다.
한편, 본 발명의 일 실시예에 따른 정보 검색 방법은, 검색기에서 사용자로부터 검색 대상 키워드 및 검색 대상 구간을 포함하는 키워드 검색 요청을 수신하는 단계, 상기 검색기에서 요청된 키워드를 이용하여 데이터베이스에 저장된 데이터를 검색하는 단계, 및 키워드 관리기에서 키워드 검색 결과에 따른 키워드 부재 정보를 상기 데이터베이스에 기록하는 단계를 포함한다.
상기 정보 검색 방법은, 상기 데이터를 검색하는 단계의 수행 전, 상기 검색기에서 상기 데이터베이스에 기록된 키워드 부재 정보로부터 수신된 검색 대상 구간 중 키워드의 부재 구간이 존재하는지의 여부를 판단하는 단계를 더 포함하며, 상기 데이터를 검색하는 단계는, 상기 판단 결과 키워드의 부재 구간이 존재하는 경우, 상기 검색 대상 구간 중 키워드의 부재 구간을 제외한 나머지 구간에서 상기 검색 대상 키워드를 이용하여 상기 데이터베이스를 검색할 수 있다.
상기 키워드 부재 정보를 기록하는 단계는, 상기 검색기로부터 키워드 검색 구간 및 검색 결과를 수신하는 단계; 수신된 키워드가 마스터 필터에 기 저장된 키워드와 충돌이 발생하는지 여부를 판단하는 단계; 및 상기 판단 결과에 따라 키워드를 키워드 히스토리 테이블 또는 충돌 키워드 히스토리 테이블에 저장하는 단계를 더 포함할 수 있다.
상기 마스터 필터는 카운팅 블룸 필터(Counting Bloom Filter)일 수 있다.
상기 충돌이 발생하는지 여부를 판단하는 단계는, 상기 검색기로부터 수신된 키워드로부터 설정된 개수의 서로 다른 해시값을 계산하고, 상기 마스터 필터의 각 셀(cell) 중 계산된 해시값에 대응되는 셀 값이 모두 0보다 큰 값인지의 여부에 따라 상기 키워드가 상기 마스터 필터에 저장된 키워드와 충돌이 발생하는지의 여부를 판단할 수 있다.
상기 키워드를 저장하는 단계는, 상기 충돌 여부 판단 결과 계산된 해시값에 대응되는 상기 마스터 필터의 셀 값 중 적어도 하나가 0인 경우, 상기 해시값에 대응되는 상기 마스터 필터의 셀 값을 각각 1 증가시키고, 수신된 키워드를 상기 키워드 히스토리 테이블에 저장할 수 있다.
상기 키워드를 저장하는 단계는, 상기 충돌 여부 판단 결과 계산된 해시값에 대응되는 상기 마스터 필터의 셀 이 모두 0보다 큰 경우, 수신된 키워드를 상기 충돌 키워드 히스토리 테이블에 저장할 수 있다.
상기 정보 검색 방법은, 상기 키워드 부재 정보를 기록하는 단계의 수행 이후, 상기 키워드 히스토리 테이블에 저장된 특정 키워드가 기 설정된 기간 동안 사용되지 않은 경우, 상기 특정 키워드의 해시값에 대응되는 상기 마스터 필터의 셀 값을 1 감소시키고, 상기 특정 키워드를 상기 키워드 히스토리 테이블에서 삭제하는 단계를 더 포함할 수 있다.
상기 특정 키워드를 키워드 히스토리 테이블에서 삭제하는 단계는, 상기 충돌 키워드 히스토리 테이블에 저장된 키워드 중 상기 마스터 필터에 기 저장된 키워드와 더 이상 충돌이 발생하지 않는 키워드를 삭제하고, 상기 충돌 키워드 히스토리 테이블에서 삭제된 키워드를 상기 키워드 히스토리 테이블 및 마스터 필터에 등록할 수 있다.
본 발명의 실시예들에 따를 경우, 기 수행된 검색 결과를 이용하여 데이터베이스 내 특정 키워드의 부재 구간을 태깅함으로써, 키워드 검색 시 검색 수행 구간을 최소화하여 검색 효율을 향상할 수 있는 장점이 있다.
또한, 상기 데이터 부재 태깅 시 기존에 태깅된 키워드와 충돌이 발생하는 키워드들을 별도로 관리함으로써 부재 구간 검색 시 긍정 오류 발생을 사전에 차단할 수 있다.
도 1은 본 발명의 일 실시예에 따른 정보 검색 시스템(100)을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스(102)의 상세 구성을 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 검색기(104)의 상세 구성을 나타낸 블록도이다.
도 4는 본 발명의 일 실시예에 따른 키워드 관리기(106)의 상세 구성을 나타낸 블록도이다.
도 5는 본 발명의 일 실시예에 따른 키워드 관리기(106)에서 새로운 키워드를 추가하는 과정(500)을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 마스터 필터를 예시한 도면이다.
도 7은 도 6에 도시된 마스터 필터에 새로운 키워드가 추가된 상태를 예시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 키워드 관리기(106)에서 키워드를 삭제하는 과정(800)을 설명하기 위한 순서도이다.
도 9는 도 7에 도시된 마스터 필터로부터 특정 키워드가 삭제된 상태를 예시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 키워드 검색 및 메타데이터 업데이트 과정(1000)을 설명하기 위한 순서도이다.
도 11은 본 발명의 일 실시예에 따른 키워드 부재 정보를 이용한 키워드 검색 과정(1100)을 설명하기 위한 순서도이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1은 본 발명의 일 실시예에 따른 정보 검색 시스템(100)을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 정보 검색 시스템(100)은 데이터베이스(102), 검색기(104) 및 키워드 관리기(106)를 포함한다.
데이터베이스(102)는 검색 대상이 되는 데이터를 저장한다. 본 발명의 실시예에서, 데이터베이스(102)에 저장되는 상기 데이터는 예를 들어 인터넷 상에서 VoIP 등의 서비스를 제공하는 서비스 시스템의 운영 시 발생되는 접속 기록, 에러 발생 내역 등의 로그(log) 또는 이벤트 정보일 수 있다. 다만, 본 발명의 실시예들은 특정한 종류의 데이터에 한정되는 것은 아니며, 본 발명은 어떠한 종류의 데이터에도 적용 가능함을 유의한다. 데이터베이스(102)는 NoSQL 등의 비정형 데이터베이스로 구성될 수 있으나, 이와 달리 관계형 데이터베이스(RDBMS) 등으로 구성될 수도 있다.
검색기(104)는 사용자로부터 키워드 검색 요청을 수신하고, 상기 키워드 검색 요청에 포함된 검색 대상 키워드를 이용하여 데이터베이스(102)에 저장된 데이터를 검색한다. 상기 키워드는 예를 들어 데이터베이스(102)에 저장된 로그 또는 이벤트 메시지에 포함되어 있는 중요한 메시지 텍스트, 주요 모니터링 대상으로 사전에 등록된 사용자 계정(아이디) 등일 수 있다.
또한, 상기 키워드 검색 요청은 상기 검색 대상 키워드와 함께 검색 대상 키워드를 검색하기 위한 검색 대상 구간을 더 포함할 수 있다. 예를 들어, 상기 사용자는 특정 에러 메시지(예를 들어 “DBError” 등의 메시지), 또는 특정인의 접속 기록(예를 들어, 아이디가 “ABC”인 사용자의 접속 로그)이 최근 7일 간 데이터베이스(102)에 저장된 데이터에 포함되어 있는지의 여부에 대한 검색을 요청할 수 있다.
키워드 관리기(106)는 검색기(104)에서 수행된 키워드 검색 결과에 따라 검색기(104)로부터 키워드 부재 정보를 수신하고, 데이터베이스(102)에 상기 키워드 부재 정보를 기록한다. 예를 들어, 사용자의 검색 요청에 따른 검색 결과 “DBError” 메시지가 검색 기간인 최근 7일 중 첫번째 날에만 발생한 경우, 검색기(104)는 나머지 6일간은 “DBError” 메시지가 발생되지 않았음을 알리는 메시지(키워드 부재 정보)를 키워드 관리기(106)로 전송하고, 키워드 관리기(106)는 수신된 키워드 부재 정보를 데이터베이스(102)에 기록할 수 있다.
본 발명의 실시예에서 상기 키워드 부재 정보와 관련된 메시지는 다양한 형태로 구성될 수 있다. 예를 들어, 검색기(104)는 키워드 검색 결과에 따른 검색 결과 및 검색 구간을 그대로 키워드 관리기(106)로 전송할 수도 있고, 상기 검색 결과 및 검색 구간으로부터 키워드 부재 구간을 계산하여 이를 키워드 관리기(106)로 전송할 수도 있다.
검색된 키워드의 검색 결과에 따른 부재 정보가 데이터베이스(102)에 기록되면, 검색기(104)는 이후 동일한 키워드에 대한 검색 요청이 있을 경우 데이터베이스(102)에 기록된 키워드 부재 정보를 참조하여, 데이터 부재가 기록된 구간을 제외하고 요청된 키워드의 검색을 수행하게 된다. 예를 들어, 사용자로부터 “DBError” 키워드에 대한 검색 요청을 재차 수신한 경우, 검색기(104)는 데이터베이스(102)에 기록된 키워드 부재 정보를 이용하여 수신된 검색 대상 구간 중 키워드의 부재 구간이 존재하는지의 여부를 판단하고, 만약 키워드의 부재 구간이 존재하는 경우 이를 제외한 나머지 구간에서 검색 대상 키워드를 검색하게 된다. 이에 따라 본 발명의 실시예들에 따를 경우 특히 자주 검색되는 키워드에 있어 검색이 반복될수록 데이터 검색 속도를 향상할 수 있게 된다.
도 2는 본 발명의 일 실시예에 따른 데이터베이스(102)의 상세 구성을 나타낸 블록도이다. 도시된 바와 같이 본 발명의 일 실시예에 따른 데이터베이스(102)는 데이터 저장 영역(200) 및 메타데이터 영역(202)을 포함하여 구성된다.
데이터 저장 영역(200)은 검색 대상이 되는 데이터가 저장되는 영역이다. 데이터 저장 영역(200)은 상기 데이터를 복수 개의 데이터 블록으로 분할하여 저장하도록 구성될 수 있다. 예를 들어, 데이터 저장 영역(200)은 데이터의 발생 시점에 따라 이를 일별 또는 주별 등의 시간 단위로 분할하고, 분할된 데이터를 각각 다른 데이터 블록에 저장하도록 구성될 수 있다.
메타데이터 영역(202)은 데이터 저장 영역(200)에 저장된 데이터의 키워드 별 부재 정보가 저장되는 영역이다. 전술한 바와 같이 데이터 저장 영역(200)은 데이터를 복수 개의 블록으로 분할하여 저장할 수 있으며, 이 경우 메타데이터 영역(202)은 분할된 각 데이터 블록 별로 키워드의 부재 정보를 저장할 수 있다. 즉, 메타데이터 영역(202)을 참조할 경우, 검색하려는 데이터가 저장되어 있지 않은 데이터 블록을 용이하게 식별할 수 있다. 일 실시예에서, 메타데이터 영역(202)은 각 데이터 블록 별로 블룸 필터(Bloom Filter)를 이용하여 데이터 블록 별 키워드 부재 정보를 저장할 수 있으나, 본 발명은 키워드 부재 정보를 저장하기 위한 특정 자료 구조에 한정되는 것은 아니다.
도 3은 본 발명의 일 실시예에 따른 검색기(104)의 상세 구성을 나타낸 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 검색기(104)는 키워드 검색부(300), 메타데이터 검색부(302), 키워드 정보 등록 및 쿼리부(304)를 포함한다.
키워드 검색부(300)는 사용자로부터 키워드 검색 요청을 수신하고, 상기 키워드 검색 요청에 따라 하나 이상의 키워드를 이용하여 데이터베이스(102)의 데이터 저장 영역(200)에 대한 검색을 수행하며, 검색 결과를 상기 사용자에게 반환한다.
메타데이터 검색부(302)는 데이터베이스(102)의 메타데이터 영역(202)을 검색하여 요청된 키워드의 검색 대상 구간 중 해당 키워드가 존재하지 않는 구간(키워드 부재 구간)이 존재하는지의 여부를 판단한다. 만약 메타데이터 영역(202) 검색 결과 검색 대상 구간 중 해당 키워드의 부재 구간이 존재하는 경우, 키워드 검색부(300)는 상기 부재 구간을 제외하고 나머지 구간에 대해서만 해당 키워드에 대한 검색을 수행한다.
키워드 정보 등록 및 쿼리부(304)는 키워드 검색부(300)에서 수행된 검색 결과를 포함하는 키워드 정보를 후술할 키워드 관리기(106)에 등록한다. 또한, 키워드 정보 등록 및 쿼리부(304)는 키워드 검색 요청을 수신하는 경우 수신된 검색 대상 키워드의 정보를 키워드 관리기(106)에 질의하고, 이에 대한 결과를 수신한다. 키워드 정보의 등록 및 질의(쿼리)와 관련된 상세 구성에 대해서는 후술하기로 한다.
도 4는 본 발명의 일 실시예에 따른 키워드 관리기(106)의 상세 구성을 나타낸 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 키워드 관리기(104)는 키워드 정보 관리부(400) 및 메타데이터 관리부(402)를 포함한다.
키워드 정보 관리부(400)는 키워드 정보 등록 및 쿼리부(304)로부터 수신되는 키워드 정보를 저장한다. 또한 키워드 정보 관리부(400)는 키워드 정보 등록 및 쿼리부(304)로부터 키워드 정보에 대한 요청이 수신되는 경우 해당 요청에 대응되는 키워드 정보를 제공한다. 또한, 메타데이터 관리부(402)는 키워드 정보 관리부(400)에서 수신한 각 키워드의 부재 정보를 데이터베이스(102)의 메타데이터 영역(202)에 마킹한다.
본 발명의 실시예에서, 키워드 정보는 현재 데이터베이스(102) 에 사용되고 있는 키워드에 대한 일종의 히스토리 정보를 의미한다. 즉, 로그 데이터 등의 경우 최신 데이터가 이전의 데이터보다 더 많이, 그리고 더 빈번하게 검색되는 특징이 있으므로, 현재 시점에서 자주 검색되는 키워드들에 대한 정보를 저장하여 둠으로써 보다 효율적인 검색이 가능하도록 한 것이다.
일 실시예에서, 키워드 정보 관리부(400)는 키워드 정보의 관리를 위하여 키워드 히스토리 테이블, 마스터 필터, 및 충돌 키워드 히스토리 테이블을 포함하는 3개의 자료 구조를 이용할 수 있다.
먼저, 키워드 히스토리 테이블은 정해진 기간 동안 검색기(104)로부터 수신된 키워드를 저장하기 위한 자료 구조이다. 예를 들어, 키워드 히스토리 테이블은 최근 7일간 검색기(104)로부터 수신된 키워드를 저장하도록 구성될 수 있다. 실시예에 따라, 상기 키워드 히스토리 테이블은 최근 검색 키워드뿐만 아니라, 과거의 검색 키워드를 모두 포함하도록 구성될 수도 있다. 예를 들어, 키워드 히스토리 테이블은 복수 개의 블록을 포함할 수 있으며, 이 중 첫 번째 블록에는 가장 최근 기간(예를 들어, 최근 7일간)의 검색 키워드, 두 번째 블록에는 그 이전 기간(8~14일), 세 번째 블록에는 그 이전 기간(15~21일)의 검색 키워드가 저장되도록 구성될 수도 있다. 이 경우 첫 번째 블록에 저장된 키워드들을 현재 활발하게 검색되고 있는 키워드들로 간주할 수 있다.
마스터 필터는 상기 키워드 히스토리 테이블에 저장된 키워드들의 해시값이 저장되는 필터이다. 상기 마스터 필터는, 예를 들어 카운팅 블룸 필터(Counting Bloom Filter)를 이용하여 구현될 수 있다. 전술한 바와 같이, 키워드 히스토리 테이블이 과거에 검색되었던 키워드들까지를 모두 포함할 경우, 마스터 필터는 이 중 가장 최근 기간 동안에 검색된 키워드들만을 저장할 수 있다. 만약 상기 마스터 필터에 저장된 키워드가 일정 기간 동안 사용되지 않은 경우 해당 키워드는 상기 마스터 필터로부터 삭제될 수 있다.
충돌 키워드 히스토리 테이블은 검색기(104)로부터 수신된 키워드 중, 마스터 필터에 기 저장된 키워드와 충돌이 발생하는 키워드가 저장되는 자료 구조이다. 구체적으로, 키워드 정보 관리부(400)는 검색기(104)로부터 키워드가 수신되는 경우, 먼저 해당 키워드를 마스터 필터에 저장할 수 있는지의 여부를 판단하고, 마스터 필터에 저장 가능한 경우 해당 키워드를 키워드 히스토리 테이블에 저장하고, 저장 불가능한 경우 충돌 키워드 히스토리 테이블에 저장한다.
이하 도 5 내지 9를 참조하여 상기 키워드 히스토리 테이블, 마스터 필터 및 충돌 키워드 히스토리 테이블을 이용한 키워드의 추가 및 삭제 과정을 설명한다.
도 5는 본 발명의 일 실시예에 따른 키워드 관리기(106)에서 새로운 키워드를 추가하는 과정(500)을 설명하기 위한 순서도이다. 먼저 검색기(104)로부터 이전에 사용되지 않은 키워드가 새로 수신된 경우(502), 키워드 관리기(106)의 키워드 정보 관리부(400)는 수신된 키워드에 사전에 설정된 개수의 서로 다른 해시 함수를 적용하여 복수 개의 해시값을 계산하고(504), 계산된 각 해시값에 대응되는 마스터 필터의 각 셀 값에 따라 상기 수신된 키워드를 마스터 필터에 추가할 수 있는지의 여부를 결정한다(508).
예를 들어, 키워드 정보 관리부(400)에 이전에 저장되지 않은 새로운 키워드 “abc”가 검색기(104)로부터 새로 수신된 경우를 가정하자. 키워드 정보 관리부(400)는 수신된 키워드 “abc”에 서로 복수 개의 다른 해시 함수를 적용하여 복수 개의 해시값을 계산한다. 예를 들어, 상기 키워드에 서로 다른 3개의 해시 함수를 적용한 결과가 각각 3, 6, 100이라고 가정하자. 그러면 키워드 정보 관리부(400)는 마스터 필터의 3번째, 6번째, 및 100번째 셀(cell)에 기 저장된 값을 각각 읽어들인 뒤, 각 셀의 값이 각각 0보다 큰 지의 여부에 따라 상기 수신된 키워드를 마스터 필터에 추가할 수 있는지의 여부를 결정한다.
구체적으로, 키워드 정보 관리부(400)는 계산된 해시값에 대응되는 마스터 필터의 셀 값 중 적어도 하나가 0인 경우, 해시값에 대응되는 마스터 필터의 셀 값을 각각 1 증가시킴으로써 해당 키워드를 마스터 필터에 저장한다(510).
도 6 및 도 7은 키워드 정보 관리부(400)에서의 마스터 필터 업데이트 과정을 예시한 것이다. 도면에서 각각의 사각형은 마스터 필터의 각 셀을, 사각형 내부의 숫자는 각 셀의 값을, 아래의 숫자는 각 셀의 일련번호를 각각 의미한다. 예를 들어, 도 6에 도시된 바와 같이 마스터 필터의 3번째, 6번째 100번째 셀의 값이 각각 1, 0, 2인 경우, 키워드 정보 관리부(400)는 도 7에 도시된 바와 같이 해시값에 대응되는 각 셀의 값을 1씩 증가시킨다. 즉, 이 경우 마스터 필터의 3번째, 6번째 100번째 셀의 값은 각각 2, 1, 3이 된다.
또한, 상기와 같이 마스터 필터에 새로운 키워드가 추가된 경우, 키워드 정보 관리부(400)는 새로 추가된 키워드를 키워드 히스토리 테이블에 저장하게 된다(512).
그러나 이와 달리, 마스터 필터의 각 셀(cell) 중 계산된 해시값에 대응되는 셀 값이 모두 0보다 큰 경우, 키워드 정보 관리부(400)는 해당 키워드를 마스터 필터에 추가할 수 없게 된다. 이 경우는 블룸 필터, 또는 카운팅 블룸 필터에서 해당 키워드를 추가하지 않더라도 해당 키워드에 대한 질의 시 참(True)이 반환되는, 다시 말해 해당 키워드에 대한 긍정 오류(positive false)가 발생하는 경우이기 때문이다. 따라서 이 경우, 키워드 정보 관리부(400)는 해당 키워드를 충돌 키워드 히스토리 테이블에 저장하게 된다(514).
이와 같은 과정을 거쳐 신규 키워드가 키워드 히스토리 테이블 또는 충돌 키워드 히스토리 테이블 중 어느 하나에 저장되면, 마지막으로 메타데이터 관리부(402)는 새로 저장된 키워드의 부재 정보를 데이터베이스(102)의 메타데이터 영역(202)에 마킹함으로서 메타데이터 영역(202)을 업데이트한다(516).
본 발명의 실시예에서, 마스터 필터 이외에 별도의 충돌 키워드 히스토리 테이블을 관리하는 이유는 다음과 같다. 전술한 바와 같이, 마스터 필터의 경우 자료구조로 카운팅 블룸 필터를 이용하는 바, 실제로 키워드가 저장되어 있지 않더라도 키워드 질의에 대해 참(True)을 반환하는 긍정 오류가 발생할 가능성이 있다. 그런데, 본 발명에서 카운팅 블룸 필터는 특정 키워드의 존재가 아닌 “부재”를 나타내기 위하여 사용된다는 점에서 문제가 발생할 수 있다. 즉, 카운팅 블룸 필터의 특성인 긍정 오류에 의하여 실제로는 키워드가 존재하는 구간이 키워드 부재 구간으로 잘못 판단될 수 있으며, 이 경우 부재 구간으로 잘못 판단된 구간에 대해서는 키워드의 탐색 자체가 이루어지지 않으므로 검색 결과가 왜곡될 가능성이 존재한다. 따라서 본 발명에서는 기 저장된 키워드와 충돌이 발생하여 추가가 불가능한 키워드를 충돌 키워드 히스토리 테이블에 별도로 저장함으로써 긍정 오류가 발생하는 것을 사전에 방지하도록 구성된 것이다.
도 8은 본 발명의 일 실시예에 따른 키워드 관리기(106)에서 키워드를 삭제하는 과정(800)을 설명하기 위한 순서도이다.
키워드 관리기(106)의 키워드 정보 관리부(400)는, 키워드 히스토리 테이블에 저장된 특정 키워드가 기 설정된 기간 동안 사용되지 않은 키워드를 삭제 대상 키워드로 지정하고, 상기 삭제 대상 키워드로부터 복수 개의 해시값을 계산한다(802). 이후, 키워드 관리기(106)는 계산된 해시값에 대응되는 마스터 필터의 각 셀 값을 추출하고(804), 각 셀 값의 크기에 따라 해당 키워드의 삭제 가능 여부를 판단한다(806).
만약 추출된 마스터 필터의 셀 값 중 어느 하나라도 0인 셀이 존재하는 경우에는 해당 키워드를 마스터 필터에서 삭제할 수 없는 경우이므로, 키워드 정보 관리부(400)는 해당 키워드의 삭제가 불가능함을 알리는 에러 메시지를 출력한다(808). 그러나 이와 달리 추출된 마스터 필터의 셀 값이 모두 0보다 큰 경우, 키워드 정보 관리부(400)는 계산된 해시값에 대응되는 마스터 필터의 셀 값을 1만큼 감소시킴으로써, 상기 삭제 대상 키워드를 키워드 히스토리 테이블에서 삭제한다(810). 도 9는 이와 같은 과정을 거쳐 도 7에 도시된 것과 같은 마스터 필터에서 키워드 “abc”를 삭제한 상태를 예시한 것이다. 즉, 키워드 정보 관리부(400)는 키워드 “abc”에 대응되는 마스터 필터의 3번째, 6번째 100번째 셀 값을 2, 1, 3에서 1, 0, 2로 감소시키게 된다.
한편, 이 경우 키워드 정보 관리부(400)는 마스터 필터에서 키워드가 삭제되는 경우, 충돌 키워드 히스토리 테이블에 저장된 키워드들 중 상기 키워드 삭제로 인하여 더 이상 충돌이 발생하지 않는 키워드를 충돌 키워드 히스토리 테이블에서 삭제하고 새로 마스터 필터에 추가할 수 있다(812).
도 10은 본 발명의 일 실시예에 따른 키워드 검색 및 메타데이터 업데이트 과정(1000)을 설명하기 위한 순서도이다.
먼저, 검색기(104)는 사용자로부터 수신된 검색 대상 키워드 및 검색 대상 구간 정보를 이용하여 데이터베이스(102)에 키워드 검색 질의를 전송하고(1000), 데이터베이스(102)는 수신된 키워드 검색 질의에 따라 검색을 수행한 뒤 검색 결과를 반환한다(1004).
이후, 검색기(104)는 수신된 상기 검색 결과에 따른 키워드 부재 정보를 키워드 관리기(106)로 전송하고(1006), 키워드 관리기(106)는 수신된 상기 키워드 부재 정보에 따라 데이터베이스(102)의 메타데이터 영역(202)에 키워드 부재 정보를 마킹하게 된다(1008).
도 11은 본 발명의 일 실시예에 따른 키워드 부재 정보를 이용한 키워드 검색 과정(1100)을 설명하기 위한 순서도이다.
먼저, 검색기(104)는 사용자로부터 검색 대상 키워드 및 검색 대상 구간을 포함하는 키워드 검색 요청을 수신하고, 수신된 상기 검색 요청에 포함된 검색 대상 키워드의 정보를 키워드 관리기(106)로 질의한다(1102).
상기 질의를 수신한 키워드 관리기(106)는 수신된 검색 대상 키워드가 마스터 필터 또는 충돌 키워드 히스토리 테이블 중 어느 하나에 저장되어 있는지의 여부를 탐색하고, 상기 탐색 결과를 검색기(104)로 전송한다(1104).
만약 상기 질의 결과 해당 검색 대상 키워드가 마스터 필터에 저장되어 있는 경우, 검색기(104)는 데이터베이스(102)의 메타데이터 영역(202)을 탐색하여 해당 키워드의 부재 구간을 검색하여 검색 대상 키워드의 부재 구간 정보를 획득하고(1106, 1108), 획득된 부재 구간을 제외한 나머지 구간에서 검색 대상 키워드의 검색을 수행한다(1110, 1112). 즉, 이 경우는 해당 키워드의 부재 정보가 데이터베이스(102)에 마킹되어 있는 경우이므로, 메타데이터를 이용하여 부재 구간을 제거하고 나머지 구간에서만 검색을 수행하게 된다.
그러나, 이와 달리 해당 검색 키워드가 충돌 키워드 히스토리 테이블에 저장되어 있거나, 키워드 관리기(106)에 저장된 내역이 없는 경우는 충돌로 인하여 해당 키워드를 마킹할 수 없었거나 또는 이전에 검색된 내역이 없는 경우이므로, 검색기(104)는 검색 대상 구간 전체에서 검색 대상 키워드에 대한 검색을 수행하게 된다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
<부호의 설명>
100: 정보 검색 시스템
102: 데이터베이스
104: 검색기
106: 키워드 관리기
200: 데이터 저장 영역
202: 메타데이터 영역
300: 키워드 검색부
302: 메타데이터 검색부
304: 키워드 정보 등록 및 쿼리부
400: 키워드 정보 관리부
402: 메타데이터 관리부
Claims (20)
- 데이터가 복수 개의 데이터 블록으로 구분되어 저장되는 데이터 저장 영역, 및 데이터 블록 별 키워드 부재 정보가 저장되는 메타데이터 영역을 포함하는 데이터베이스;사용자로부터 검색 대상 키워드 및 검색 대상 구간을 포함하는 키워드 검색 요청을 수신하고, 요청된 키워드를 이용하여 상기 데이터베이스에 저장된 데이터를 검색하는 검색기; 및상기 검색기로부터 키워드 검색 결과에 따른 키워드 부재 정보를 수신하고, 상기 데이터베이스에 상기 키워드 부재 정보를 기록하는 키워드 관리기를 포함하는 정보 검색 시스템.
- 청구항 1에 있어서,상기 검색기는, 상기 데이터베이스에 기록된 상기 키워드 부재 정보로부터 수신된 검색 대상 구간 중 키워드의 부재 구간이 존재하는지의 여부를 판단하고,만약 키워드의 부재 구간이 존재하는 경우, 검색 대상 구간 중 상기 키워드의 부재 구간을 제외한 나머지 구간에서 검색 대상 키워드를 이용하여 상기 데이터베이스를 검색하는, 정보 검색 시스템.
- 청구항 1에 있어서,상기 키워드 관리기는, 상기 검색기로부터 검색된 키워드의 검색 구간 및 해당 검색 구간에서의 키워드의 부재 정보를 수신하고,복수 개의 데이터 블록 중 키워드가 존재하지 않는 블록에 대응되는 메타데이터 영역에 상기 검색된 키워드의 부재를 마킹하는, 정보 검색 시스템.
- 청구항 3에 있어서,상기 키워드 관리기는,설정된 기간 동안 상기 검색기로부터 수신된 키워드가 저장되는 키워드 히스토리 테이블;상기 키워드 히스토리 테이블에 저장된 키워드의 해시값이 저장되는 마스터 필터; 및상기 검색기로부터 수신된 키워드 중, 상기 마스터 필터에 기 저장된 키워드와 충돌이 발생하는 키워드가 저장되는 충돌 키워드 히스토리 테이블을 각각 관리하는, 정보 검색 시스템.
- 청구항 4에 있어서,상기 마스터 필터는 카운팅 블룸 필터(Counting Bloom Filter)인, 정보 검색 시스템.
- 청구항 5에 있어서,상기 키워드 관리기는, 상기 검색기로부터 수신된 키워드로부터 설정된 개수의 서로 다른 해시값을 계산하고,상기 마스터 필터의 각 셀(cell) 중 계산된 해시값에 대응되는 셀 값이 모두 0보다 큰 경우, 수신된 키워드를 상기 충돌 키워드 히스토리 테이블에 저장하는, 정보 검색 시스템.
- 청구항 6에 있어서,상기 키워드 관리기는, 계산된 해시값에 대응되는 상기 마스터 필터의 셀 값 중 적어도 하나가 0인 경우, 해시값에 대응되는 상기 마스터 필터의 셀 값을 각각 1 증가시키고, 수신된 키워드를 상기 키워드 히스토리 테이블에 저장하는, 정보 검색 시스템.
- 청구항 7에 있어서,상기 키워드 관리기는, 상기 키워드 히스토리 테이블에 저장된 키워드의 부재 정보를 상기 메타데이터 영역에 마킹하는, 정보 검색 시스템.
- 청구항 5에 있어서,상기 키워드 관리기는, 상기 키워드 히스토리 테이블에 저장된 특정 키워드가 기 설정된 기간 동안 사용되지 않은 경우, 상기 특정 키워드의 해시값에 대응되는 상기 마스터 필터의 셀 값을 1 감소시키고, 상기 특정 키워드를 상기 키워드 히스토리 테이블에서 삭제하는, 정보 검색 시스템.
- 청구항 9에 있어서,상기 키워드 관리기는, 상기 키워드 히스토리 테이블에 저장된 키워드가 삭제되는 경우, 상기 충돌 키워드 히스토리 테이블에 저장된 키워드 중 상기 마스터 필터에 기 저장된 키워드와 더 이상 충돌이 발생하지 않는 키워드를 삭제하고, 상기 충돌 키워드 키워드 히스토리 테이블에서 삭제된 키워드를 상기 키워드 히스토리 테이블 및 상기 마스터 필터에 등록하는, 정보 검색 시스템.
- 청구항 4에 있어서,상기 검색기는, 상기 마스터 필터를 이용하여 검색 대상 키워드의 부재 정보 마킹 여부를 판단하고, 검색 대상 키워드의 부재 정보가 상기 데이터베이스에 마킹된 것으로 판단되는 경우, 상기 데이터베이스의 메타데이터 영역을 검색하여 검색 대상 키워드의 부재 구간 정보를 획득하는, 정보 검색 시스템.
- 검색기에서, 사용자로부터 검색 대상 키워드 및 검색 대상 구간을 포함하는 키워드 검색 요청을 수신하는 단계;상기 검색기에서, 요청된 키워드를 이용하여 데이터베이스에 저장된 데이터를 검색하는 단계; 및키워드 관리기에서, 키워드 검색 결과에 따른 키워드 부재 정보를 상기 데이터베이스에 기록하는 단계를 포함하는 정보 검색 방법.
- 청구항 12에 있어서,상기 데이터를 검색하는 단계의 수행 전, 상기 검색기에서 상기 데이터베이스에 기록된 키워드 부재 정보로부터 수신된 검색 대상 구간 중 키워드의 부재 구간이 존재하는지의 여부를 판단하는 단계를 더 포함하며,상기 데이터를 검색하는 단계는, 상기 판단 결과 키워드의 부재 구간이 존재하는 경우, 상기 검색 대상 구간 중 키워드의 부재 구간을 제외한 나머지 구간에서 상기 검색 대상 키워드를 이용하여 상기 데이터베이스를 검색하는, 정보 검색 방법.
- 청구항 12에 있어서,상기 키워드 부재 정보를 기록하는 단계는,상기 검색기로부터 키워드 검색 구간 및 검색 결과를 수신하는 단계;수신된 키워드가 마스터 필터에 기 저장된 키워드와 충돌이 발생하는지 여부를 판단하는 단계; 및상기 판단 결과에 따라 키워드를 키워드 히스토리 테이블 또는 충돌 키워드 히스토리 테이블에 저장하는 단계를 더 포함하는, 정보 검색 방법.
- 청구항 14에 있어서,상기 마스터 필터는 카운팅 블룸 필터(Counting Bloom Filter)인, 정보 검색 방법.
- 청구항 15에 있어서,상기 충돌이 발생하는지 여부를 판단하는 단계는,상기 검색기로부터 수신된 키워드로부터 설정된 개수의 서로 다른 해시값을 계산하고, 상기 마스터 필터의 각 셀(cell) 중 계산된 해시값에 대응되는 셀 값이 모두 0보다 큰 값인지의 여부에 따라 상기 키워드가 상기 마스터 필터에 저장된 키워드와 충돌이 발생하는지의 여부를 판단하는, 정보 검색 방법.
- 청구항 16에 있어서,상기 키워드를 저장하는 단계는, 상기 충돌 여부 판단 결과 계산된 해시값에 대응되는 상기 마스터 필터의 셀 값 중 적어도 하나가 0인 경우, 상기 해시값에 대응되는 상기 마스터 필터의 셀 값을 각각 1 증가시키고, 수신된 키워드를 상기 키워드 히스토리 테이블에 저장하는, 정보 검색 방법.
- 청구항 16에 있어서,상기 키워드를 저장하는 단계는, 상기 충돌 여부 판단 결과 계산된 해시값에 대응되는 상기 마스터 필터의 셀 이 모두 0보다 큰 경우, 수신된 키워드를 상기 충돌 키워드 히스토리 테이블에 저장하는, 정보 검색 방법.
- 청구항 17에 있어서,상기 키워드 부재 정보를 기록하는 단계의 수행 이후,상기 키워드 히스토리 테이블에 저장된 특정 키워드가 기 설정된 기간 동안 사용되지 않은 경우, 상기 특정 키워드의 해시값에 대응되는 상기 마스터 필터의 셀 값을 1 감소시키고, 상기 특정 키워드를 상기 키워드 히스토리 테이블에서 삭제하는 단계를 더 포함하는, 정보 검색 방법.
- 청구항 19에 있어서,상기 특정 키워드를 키워드 히스토리 테이블에서 삭제하는 단계는,상기 충돌 키워드 히스토리 테이블에 저장된 키워드 중 상기 마스터 필터에 기 저장된 키워드와 더 이상 충돌이 발생하지 않는 키워드를 삭제하고, 상기 충돌 키워드 히스토리 테이블에서 삭제된 키워드를 상기 키워드 히스토리 테이블 및 마스터 필터에 등록하는, 정보 검색 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2013-0058950 | 2013-05-24 | ||
KR20130058950A KR101496179B1 (ko) | 2013-05-24 | 2013-05-24 | 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014189190A1 true WO2014189190A1 (ko) | 2014-11-27 |
Family
ID=51933723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2013/011541 WO2014189190A1 (ko) | 2013-05-24 | 2013-12-12 | 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140351273A1 (ko) |
KR (1) | KR101496179B1 (ko) |
CN (1) | CN104182435B (ko) |
WO (1) | WO2014189190A1 (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866502B (zh) * | 2014-02-25 | 2020-10-13 | 深圳市中兴微电子技术有限公司 | 数据匹配的方法及装置 |
US10693786B2 (en) * | 2015-11-26 | 2020-06-23 | International Business Machines Corporation | Efficient size reduction of a bloom filter |
US10235431B2 (en) * | 2016-01-29 | 2019-03-19 | Splunk Inc. | Optimizing index file sizes based on indexed data storage conditions |
US11113732B2 (en) * | 2016-09-26 | 2021-09-07 | Microsoft Technology Licensing, Llc | Controlling use of negative features in a matching operation |
KR102594022B1 (ko) * | 2016-11-24 | 2023-10-26 | 삼성전자주식회사 | 전자 장치 및 그의 채널맵 업데이트 방법 |
CN108334520A (zh) * | 2017-01-19 | 2018-07-27 | 北京京东尚科信息技术有限公司 | 社交网络数据处理方法、装置、存储介质及电子设备 |
US10698898B2 (en) | 2017-01-24 | 2020-06-30 | Microsoft Technology Licensing, Llc | Front end bloom filters in distributed databases |
CN107273481A (zh) * | 2017-06-10 | 2017-10-20 | 苏州唯亚信息科技股份有限公司 | 适用于企业用户研发数据库的维护方法 |
CN110751565A (zh) * | 2019-09-18 | 2020-02-04 | 深圳市融壹买信息科技有限公司 | 数据计算方法及装置 |
KR102708772B1 (ko) * | 2021-06-07 | 2024-09-20 | 주식회사 카카오헬스케어 | 코호트 추출 방법, 이를 구현한 코호트 추출 장치 및 코호트 추출 프로그램 |
CN113608955B (zh) * | 2021-06-30 | 2024-01-26 | 北京新氧科技有限公司 | 一种日志记录方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080062989A (ko) * | 2006-12-28 | 2008-07-03 | 신용호 | 웹사이트검색기를 이용한 실시간 웹사이트 검색 시스템 및그 방법 |
KR20090112256A (ko) * | 2008-04-24 | 2009-10-28 | 주식회사 다음커뮤니케이션 | 검색 히스토리 서비스 방법 및 시스템 |
US20110251873A1 (en) * | 2008-10-09 | 2011-10-13 | Nhn Business Platform Corporation | Method, system, and computer readable recording medium for generating keyword pairs for search advertisements based on advertisement purchase history |
KR20120053351A (ko) * | 2010-11-17 | 2012-05-25 | 송유진 | 검색 히스토리 서버 및 이를 이용한 정보 제공 방법 |
KR20130050705A (ko) * | 2011-11-08 | 2013-05-16 | 삼성전자주식회사 | 키워드 검색 방법 및 장치 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1205383B (it) * | 1983-04-11 | 1989-03-15 | Rosso Ind Spa | Dispositivo rivoltacalze |
CA2326513C (en) * | 1998-03-27 | 2009-06-16 | Informix Software, Inc. | Processing precomputed views |
JP3693958B2 (ja) * | 2001-04-05 | 2005-09-14 | 松下電器産業株式会社 | 分散型文書検索方法及び装置、並びに分散型文書検索プログラム及びそのプログラムを記録した記録媒体 |
US6801904B2 (en) * | 2001-10-19 | 2004-10-05 | Microsoft Corporation | System for keyword based searching over relational databases |
US7548908B2 (en) * | 2005-06-24 | 2009-06-16 | Yahoo! Inc. | Dynamic bloom filter for caching query results |
FR2895110B1 (fr) * | 2005-12-16 | 2017-12-29 | Thales Sa | Procede de classification non supervisee lineaire et stable sur l'ordre des objets |
US9256686B2 (en) * | 2008-09-15 | 2016-02-09 | International Business Machines Corporation | Using a bloom filter in a web analytics application |
US20130297581A1 (en) * | 2009-12-01 | 2013-11-07 | Topsy Labs, Inc. | Systems and methods for customized filtering and analysis of social media content collected over social networks |
CN101826107B (zh) * | 2010-04-02 | 2015-08-05 | 华为技术有限公司 | 哈希数据处理方法和装置 |
US8612423B2 (en) * | 2010-10-29 | 2013-12-17 | Microsoft Corporation | Search cache for document search |
US20130173853A1 (en) * | 2011-09-26 | 2013-07-04 | Nec Laboratories America, Inc. | Memory-efficient caching methods and systems |
CN103793439B (zh) * | 2012-11-05 | 2019-01-15 | 腾讯科技(深圳)有限公司 | 一种实时检索信息获取方法、装置及服务器 |
CN103020300B (zh) * | 2012-12-28 | 2017-04-12 | 杭州华三通信技术有限公司 | 一种信息检索方法和设备 |
-
2013
- 2013-05-24 KR KR20130058950A patent/KR101496179B1/ko not_active IP Right Cessation
- 2013-12-12 CN CN201310681804.8A patent/CN104182435B/zh not_active Expired - Fee Related
- 2013-12-12 WO PCT/KR2013/011541 patent/WO2014189190A1/ko active Application Filing
- 2013-12-27 US US14/141,788 patent/US20140351273A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080062989A (ko) * | 2006-12-28 | 2008-07-03 | 신용호 | 웹사이트검색기를 이용한 실시간 웹사이트 검색 시스템 및그 방법 |
KR20090112256A (ko) * | 2008-04-24 | 2009-10-28 | 주식회사 다음커뮤니케이션 | 검색 히스토리 서비스 방법 및 시스템 |
US20110251873A1 (en) * | 2008-10-09 | 2011-10-13 | Nhn Business Platform Corporation | Method, system, and computer readable recording medium for generating keyword pairs for search advertisements based on advertisement purchase history |
KR20120053351A (ko) * | 2010-11-17 | 2012-05-25 | 송유진 | 검색 히스토리 서버 및 이를 이용한 정보 제공 방법 |
KR20130050705A (ko) * | 2011-11-08 | 2013-05-16 | 삼성전자주식회사 | 키워드 검색 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN104182435B (zh) | 2017-09-22 |
CN104182435A (zh) | 2014-12-03 |
KR20140137842A (ko) | 2014-12-03 |
US20140351273A1 (en) | 2014-11-27 |
KR101496179B1 (ko) | 2015-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014189190A1 (ko) | 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법 | |
WO2010123168A1 (ko) | 데이터베이스 관리 방법 및 시스템 | |
US20070233720A1 (en) | Lazy bulk insertion method for moving object indexing | |
WO2021107211A1 (ko) | 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템 | |
US20030018688A1 (en) | Method and apparatus to facilitate accessing data in network management protocol tables | |
WO2016047866A1 (ko) | 데이터베이스 마이그레이션 방법 및 그 장치 | |
CN109947796B (zh) | 一种分布式数据库系统查询中间结果集的缓存方法 | |
WO2018124495A1 (ko) | 불법 콘텐츠 검색 시스템 및 그 방법 | |
WO2012108623A1 (ko) | 이미지 데이터베이스에 신규 이미지 및 이에 대한 정보를 추가하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
US20130080466A1 (en) | Query servicing with access path security in a relational database management system | |
WO2020242086A1 (ko) | 다중 지식의 비교 우위를 추론하는 서버, 방법 및 컴퓨터 프로그램 | |
EP3170323A1 (en) | Maintaining point of interest data using wireless access points | |
WO2017188535A1 (ko) | 실시간성 이벤트를 탐지하는 방법 및 이를 이용한 서버 | |
WO2011162446A1 (ko) | 온톨로지 스키마와 결합된 개체명 사전 및 마이닝 규칙을 이용한 용어의 개체명 결정모듈 및 방법 | |
WO2012060490A1 (ko) | 추론 검증 및 점증적 추론을 위한 트리플 저장 방법 및 장치 그리고 이에 적합한 추론 의존성 색인 방법 및 장치 | |
WO2016117739A1 (ko) | 인-메모리 데이터베이스 기반의 데이터 관리 시스템 및 그 방법 | |
WO2019074155A1 (ko) | 데이터베이스 간의 실시간 통합 복제 시스템 | |
WO2023113158A1 (ko) | 범죄 행위자 프로파일링 방법, 이를 수행하는 장치 및 컴퓨터 프로그램 | |
WO2017146348A1 (ko) | 위치 기반 빅데이터 시스템 | |
WO2015163697A1 (ko) | Db2 데이터베이스에서 데이터를 복원하는 방법 및 장치 | |
US20050071366A1 (en) | Method, apparatus and computer program for retrieving data | |
JPH03174653A (ja) | キーワード管理方法およびその装置 | |
WO2020153522A1 (ko) | 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치 | |
US8166018B2 (en) | Browsing a list of data items | |
WO2012077966A1 (en) | Apparatus and method for removing malicious code |
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: 13885423 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14.03.2016) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 13885423 Country of ref document: EP Kind code of ref document: A1 |