System and method for performing a fuzzy search on database records
The cache-based fuzzy search mechanism addresses performance issues in traditional algorithms by locally caching search records and using similarity scores for filtering, resulting in faster and more relevant search results.
Patent Information
- Application Number
- PCT/IN2025/051401
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-08-31
- Filing Date
- 2025-08-31
- Publication Date
- 2026-03-05
AI Technical Summary
Traditional fuzzy search algorithms on large databases suffer from performance issues and high latency due to the need to process vast amounts of data in real-time, leading to inefficient and inaccurate search results.
A cache-based fuzzy search mechanism that loads large search records locally in a cache database, using a processor to extract and filter results based on similarity scores, and allows for customizable refresh strategies to maintain accuracy and speed.
Enhances search speed and efficiency while maintaining accurate and relevant results by leveraging a cache database for local data storage and advanced filtering techniques, with user-configurable settings for optimal performance.
Smart Images

Figure IN2025051401_05032026_PF_FP_ABST
Abstract
Description
SYSTEM AND METHOD FOR PERFORMING A FUZZY SEARCH ON DATABASE RECORDSTECHNICAL FIELD
[0001] The embodiments of the present disclosure generally relate to the field of information processing systems. More particularly, the present disclosure relates to a system and a method for performing a fuzzy search on database records.BACKGROUND OF THE INVENTION
[0002] The subject matter disclosed in the background section should not be assumed or construed to be prior art merely due to its mention in the background section. Similarly, any problem statement mentioned in the background section or its association with the subject matter of the background section should not be assumed or construed to have been previously recognized in the prior art.
[0003] With advancements in the field of information technology, several technologies have been developed to process vast amounts of information. Traditional ways of conducting legal discoveries have been overwhelmed by the sheer volume of discoverable information that is available in electronic form. Information retrieval systems face several daunting problems with delivering highly relevant and highly inclusive content in response to a user's query. Traditional fuzzy search algorithms on large documents suffer from performance issues and high latency due to the need to process vast amounts of data in real-time.
[0004] Thus, there lies a need for a solution that can address the above discussed challenges of traditional fuzzy search algorithms, thereby improving search speed and efficiency while maintaining accurate and relevant search results.SUMMARY
[0005] The following embodiments present a simplified summary in order to provide a basic understanding of some aspects of the disclosed invention. Thissummary is not an extensive overview, and it is not intended to identify key / critical elements or to delineate the scope thereof. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
[0006] In an embodiment, a method for performing a fuzzy search on database records is disclosed. The method includes receiving, by a reception module, a query string from a user device. Further, the method includes extracting, by a search module based on the query string, one or more fuzzy search result strings from a plurality of records present in a cache memory. Further, the method includes determining, by a filtering module, a similarity score between each of the one or more fuzzy search result strings and the query string. Furthermore, the method includes filtering, by the filtering module, one or more result strings from the one or more fuzzy search result strings having the similarity score greater than a specific value. Thereafter, the method includes displaying, by a display control module on a display interface of the user device, the one or more result strings.
[0007] According to an aspect of the present disclosure, the method further includes sorting, by the search module, the one or more result strings included in the list of search results in one of an ascending order or a descending order of the similarity score. Further, the method includes displaying, by the display control module on the display interface, the sorted one or more result strings.
[0008] According to an aspect of the present disclosure, the method further includes updating, by a data processing module, the cache memory at one or more of a refresh frequency rate and a pre-defined expiry period, wherein the refresh frequency rate and the pre-defined expiry period are set based on a user input.
[0009] According to an aspect of the present disclosure, the method further includes extracting, by a data processing module, one or more search terms from the received query string. Further, the method includes identifying, by the data processing module, a context associated with the query string based on the one or more search terms. Further, the method includes determining, by the data processing module,whether records associated with the identified context are present in the cache memory. Furthermore, the method includes extracting, by the search module, the one or more fuzzy search result strings from the cache memory based on a result of the determination that the records associated with the identified context are present in the cache memory.
[0010] According to an aspect of the present disclosure, the specific value is determined based on a level of fuzziness. Further, the level of fuzziness is configurable by the user where a low value of level of fuzziness indicates a higher specific value.
[0011] According to an aspect of the present disclosure, the method further includes extracting, by the search module, search result strings from the source database based on a result of the determination that the records associated with the identified context are absent in the cache memory.
[0012] According to an aspect of the present disclosure, the method further includes displaying, by the display control module along with the one or more result strings, Identity Document (ID) numbers of records among the plurality of records that includes the one or more result strings.
[0013] In another embodiment, disclosed herein is a system for performing a fuzzy search on database records. The system includes a reception module configured to receive a query string from a user device. Further, the system includes a search module configured to extract, based on the query string, one or more fuzzy search result strings from a plurality of records present in a cache memory. Furthermore, the system includes a filtering module configured to determine a similarity score between each of the one or more fuzzy search result strings and the query string. The filtering module is further configured to filter one or more result strings from the one or more fuzzy search result strings having the similarity score greater than a specific value. Further, the system includes a display control module configured to display, on a display interface of the user device, the one or more result strings.BRIEF DESCRIPTION OF DRAWINGS
[0014] Various embodiments disclosed herein will become better understood from the following detailed description when read with the accompanying drawings. The accompanying drawings constitute a part of the present disclosure and illustrate certain non-limiting embodiments of inventive concepts. Further, components and elements shown in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. For the purpose of consistency and ease of understanding, similar components and elements are annotated by reference numerals in the exemplary drawings.
[0015] FIG. 1 illustrates an exemplary environment of a cache-based fuzzy search mechanism, in accordance with one or more embodiments of the present disclosure.
[0016] FIG. 2 illustrates a block diagram of a system for performing a fuzzy search on database records, in accordance with the one or more embodiments of the present disclosure.
[0017] FIG. 3 illustrates a diagram depicting a process flow for implementing the cache-based fuzzy search mechanism for performing the fuzzy search on the database records, in accordance with the one or more embodiments of the present disclosure.
[0018] FIG. 4 illustrates a flow diagram of a method for performing the fuzzy search on the database records, in accordance with the one or more embodiments of the present disclosure.
[0019] FIG. 5 illustrates a schematic block diagram of a computing system for performing the fuzzy search on the database records, in accordance with the one or more embodiments of the present disclosure.DETAILED DESCRIPTION OF THE INVENTION
[0020] Inventive concepts of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which examples of one or more embodiments of inventive concepts are shown. Inventive concepts may, however, be embodied in different forms and should not be construed as limited to the embodiments set forth herein. Further, the one or more embodiments disclosed herein are provided to describe the inventive concept thoroughly and completely, and to fully convey the scope of each of the present inventive concepts to those skilled in the art. Furthermore, it should be noted that the embodiments disclosed herein are not mutually exclusive concepts. Accordingly, one or more components from one embodiment may be tacitly assumed to be present or used in any other embodiment.
[0021] The following description presents various embodiments of the present disclosure. The embodiments disclosed herein are presented as teaching examples and are not to be construed as limiting the scope of the present disclosure. The present disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, including the exemplary design and implementation illustrated and described herein, but may be modified, omitted, or expanded upon without departing from the scope of the present disclosure.
[0022] The following description contains specific information pertaining to embodiments in the present disclosure. The detailed description uses the phrases “in some embodiments” or “some implementations” which may each refer to one or more or all of the same or different embodiments or implementations. The term “some” as used herein is defined as “one, or more than one, or all.” Accordingly, the terms “one,” “more than one,” “more than one, but not all” or “all” would all fall under the definition of “some.” In view of the same, the terms, for example, “in an embodiment” or “in an implementation” refers to one embodiment or one implementation and the term, for example, “in one or more embodiments” refers to “at least one embodiment, or more than one embodiment, or all embodiments .”. Further, the term, for example, “in one or more implementations” refers to “at least one implementation, or more than one implementation, or all implementations.
[0023] The term “comprising,” when utilized, means “including, but not necessarily limited to;” it specifically indicates open-ended inclusion in the so-described one or more listed features, elements in a combination, unless otherwise stated with limiting language. Furthermore, to the extent that the terms “includes,” “has,” “have,” “contains,” and other similar words are used in either the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.”
[0024] In the following description, for the purposes of explanation, various specific details are set forth in order to provide a thorough understanding of embodiments of the present disclosure. It will be apparent, however, that embodiments of the present disclosure may be practiced without these specific details. Several features described hereafter can each be used independently of one another or with any combination of other features.
[0025] The description provided herein discloses exemplary embodiments only and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the foregoing description of the exemplary embodiments will provide those skilled in the art with an enabling description for implementing any of the exemplary embodiments. Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it may be understood by one of the ordinary skilled in the art that the embodiments disclosed herein may be practiced without these specific details.
[0026] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein the description, the singular forms "a", "an", and "the" include plural forms unless the context of the invention indicates otherwise.
[0027] The terminology and structure employed herein are for describing, teaching, and illuminating some embodiments and their specific features and elements and do not limit, restrict, or reduce the scope of the present disclosure. Accordingly, unless otherwise defined, all terms, and especially any technical and / or scientific terms,used herein may be taken to have the same meaning as commonly understood by one having ordinary skill in the art.
[0028] An object of the present disclosure is to provide a system and a method for implementing a cache-based fuzzy search mechanism for performing a fuzzy search on database records.
[0029] Another object of the present disclosure is to provide the system and the method for performing search within the database records by loading large search records locally to improve search speed and efficiency while maintaining accurate and relevant search results.
[0030] The term “fuzzy search” may refer to a search technique which provides one or more search results even when a search term within a search query is not correct or complete.
[0031] The term “level of fuzziness” in the fuzzy search may refer to an allowed level of error between the search query and a result among the one or more search results.
[0032] The term “similarity score” is a metric that measures how dissimilar two strings are by counting a minimum number of edits requires to transform one string to another. The similarity score may also be measured by measuring the Levenshtein distance between the two strings.
[0033] Embodiments of the present disclosure will be described below in detail with reference to the accompanying drawings. FIG. 1 through FIG. 5, discussed below, and the one or more embodiments used to describe the principles of the present disclosure are by way of illustration only and should not be construed in any way to limit the scope of the present disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged system or device.
[0034] FIG. 1 illustrates an exemplary environment 100 of the cache-based fuzzy search mechanism, in accordance with one or more embodiments of the present disclosure. As illustrated in FIG. 1, the environment 100 includes a user device 102, a network 104, a server 106, a source database 108, and a cache database 110 (hereinafter may also be referred to as “cache memory 110”).
[0035] The user device 102 may be configured to communicate with the server 106 through the network 104. For instance, the user device 102 may communicate with the server 106 via the network 104 using a communication technique, such as 2ndGeneration (2G) communication technology, 3rd Generation (3G) communication technology, Long Term Evolution (LTE), 4th Generation (4G) LTE, 5th Generation (5G) / New Radio (NR), Long Term Evolution Advanced (LTE-A), Worldwide Interoperability for Microwave Access (WiMAX), Wireless Fidelity (Wi-Fi), or other wireless communication techniques with multiple bands and carriers of telecom operator.
[0036] Typically, the term “user device” can refer to any component such as “mobile station”, “User Equipment”, “remote terminal”, “wireless terminal”, “end user device”, or the like. The user device 102 may include smartphones, tablets, laptops, or desktop computers.
[0037] The network 104 may provide a path for the exchange of information between the server 106 and the user device 102. The network 104 may include suitable logic, circuitry, and interfaces that may be configured to provide several network ports and several communication channels for transmission and reception of data related to fuzzy search operation. Each network port may correspond to a virtual address (or a physical machine address) for transmission and reception of communication data. For example, the virtual address may be an Internet Protocol Version 4 (IPV4) (or an IPV6 address). The communication data may be transmitted or received via the communication protocols. Examples of the communication protocols may include, but are not limited to, Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), DomainNetwork System (DNS) protocol, Common Management Interface Protocol (CMIP), Transmission Control Protocol and Internet Protocol (TCP / IP), User Datagram Protocol (UDP), Long Term Evolution (LTE) communication protocols, or any combination thereof. In some aspects of the present disclosure, the communication data may be transmitted or received via at least one communication channel of several communication channels in the network 104. The communication channels may include, but are not limited to, a wireless channel, a wired channel, a combination of wireless and wired channel thereof. The wireless or wired channel may be associated with a data standard which may be defined by one of a Local Area Network (LAN), a Personal Area Network (PAN), a Wireless Local Area Network (WLAN), a Wireless Sensor Network (WSN), Wireless Area Network (WAN), Wireless Wide Area Network (WWAN), a metropolitan area network (MAN), a satellite network, the Internet, an optical fiber network, a coaxial cable network, an infrared (IR) network, a radio frequency (RF) network, and a combination thereof. Aspects of the present disclosure are intended to include or otherwise cover any type of communication channel, including known, related art, and / or later developed technologies.
[0038] Further, the server 106 is communicatively coupled with the source database 108 via the cache database 110. In an embodiment, the server 106 may be configured as an application server and may be communicably operational or may be integrated with the user device 102 via the network 104.
[0039] The server 106 may handles one or more requests from the user device 102 and performs a plurality of tasks such as processing, storage, and data retrieval. The server 106 may be a physical machine or a virtual machine in a cloud environment, a network of computers, a software framework, or a combination thereof, that may provide a generalized approach to create a server implementation. Examples of the server 106 may include, but are not limited to, personal computers, laptops, minicomputers, mainframe computers, any non-transient and tangible machine that can execute a machine-readable code, cloud-based servers, distributed server networks,or a network of computer systems. The server 106 may be controlled by the processor to perform one or more operations.
[0040] The cache database 110 may be is installed between the server 106 and the source database 108. The cache database 110 is installed to load and store large search results locally from the source database 108. Usage of the cache database 110 significantly improves search speed and efficiency while maintaining accurate and relevant results. The cache database 108 may be a distributed cache database or a centralized cache database. In the distributed cache database, the cache database 108 is distributed across multiple nodes which ensures high availability and reduced latency in accessing the cache database 108 and thereby enhances scalability and system performance.
[0041] In an implementation, the cache database 110 and the source database 108 may be installed internally within the server 106. In another implementation, the cache database 110 or the source database 108 may be installed external to the server 106.
[0042] In an embodiment, a user associated with the user device 102 sends a query string (may also be referred to as “search query”) to the server 106 via the network 104. Upon receiving the query string, the server 106 traverses the information present in the database records (the cache database 110 and the source database 108) to fetch a response on the query string. Further, the server 106 transmits the response to the user device 102.
[0043] FIG. 2 illustrates a block diagram of a system 200 for performing the fuzzy search on the database records, in accordance with the one or more embodiments of the present disclosure. The embodiment of the system 200 as shown in FIG. 2 is for illustration only. However, the system 200 may come in a wide variety of configurations, and FIG. 2 does not limit the scope of the present disclosure to any particular implementation of the system 200.
[0044] As illustrated in FIG. 2, the system 200 includes the user device 102, the server 106, the source database 108, and the cache database 110. The user device 102 includes a query interface 202 and a control module 204.
[0045] The query interface 202 may be configured to generate the query string based on an input of the user associated with the user device 102. The query may comprise one or more search terms inputted by the user. The query interface 202 may include an input interface to enable the user to input the query string for performing a fuzzy search on the database records. Examples of the input interface may include, but are not limited to, a touch interface, a mouse, a keyboard, a motion recognition unit, a gesture recognition unit, a voice recognition unit, or the like. Aspects of the present disclosure are intended to include or otherwise cover any type of the input interface including known, related art, and / or later developed technologies without deviating from the scope of the present disclosure.
[0046] Further, the control module 204 may be configured to control refresh frequencies between the cache database 110 and the source database 108. In an implementation, after an expiry time, the cache database 110 refreshes to keep the cache data up to date. In a non-limiting example, the expiry time may be a predefined expiry period. In an implementation, the user may override the refresh frequencies or perform manual refreshes on demand. Also, the user may define the refresh frequencies and strategies to refresh the cache database 108 based on their specific use cases to optimize system performance and relevance. In an implementation, the user may set the refresh frequency based on the search query.
[0047] The user device 102 may also include a display interface (not shown in figure) to display output result of the fuzzy search. Examples of the display interface may include, but are not limited to, a digital display, an analog display, a touch screen display, an appearance of a desktop, and / or illuminated characters.
[0048] In one or more embodiments, the server 106 may include a processor 206, a memory 208, a communication unit 210, and one or more processing modules 212 (hereinafter may referred to as “processing modules 212”).
[0049] The processor 206 may include various processing circuitry and communicates with the memory 208 and the communication unit 210 via a communication bus. The processor 206 is configured to execute instructions stored in the memory 208 and to perform various processes. The processor 206 may include one or a plurality of processors, including a general-purpose processor, such as, for example, and without limitation, a central processing unit (CPU), an application processor (AP), a dedicated processor, a graphics-only processing unit such as a graphics processing unit (GPU) or the like, a programmable logic device, or any combination thereof.
[0050] The memory 208 stores the set of instructions required by the processor 206 of the server 106 for controlling its overall operations. The memory 208 may include non-volatile storage elements. Examples of such non-volatile storage elements may include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories. In addition, the memory 208 may, in some examples, be considered a non-transitory storage medium. The "non-transitory" storage medium is not embodied in a carrier wave or a propagated signal. However, the term "non-transitory" should not be interpreted as the memory 208 is nonmovable. The memory 208 may be an internal storage unit or an external storage unit of the server 106, cloud storage, or any other type of external storage. In certain examples, the memory 208 configured as the non-transitory storage medium may include hard drives, solid-state drives, flash drives, Compact Disk (CD), Digital Video Disk (DVD), and the like. Further, the memory 208 may include any type of non-transitory storage medium, without deviating from the scope of the present disclosure.
[0051] More specifically, the memory 208 may store computer-readable instructions including instructions that, when executed by a processor (e.g., the processor 206) cause the server 106 to perform various functions described herein. In some cases, the memory 208 may contain, among other things, a BIOS whichmay control basic hardware or software operation such as the interaction with peripheral components or devices.
[0052] The communication unit 210 may be configured to enable the server 106 to communicate with various entities of the system 200. Examples of the communication unit 210 may include, but are not limited to, a network interface such as an Ethernet card, a communication port, and / or a Personal Computer Memory Card International Association (PCMCIA) slot and card, an antenna, a radio frequency (RF) transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a coder-decoder (CODEC) chipset, a subscriber identity module (SIM) card, and a local buffer circuit.
[0053] The processing modules 212 may be implemented as a combination of hardware and programming (for example, programmable instructions) to implement one or more functionalities of the server 106. In non-limiting examples, described herein, such combinations of hardware and programming may be implemented in several different ways. For example, the programming for the processing modules 212 may be processor-executable instructions stored on a non-transitory machine- readable storage medium and the hardware for the processing modules 212 may comprise a processing resource (for example, one or more processors), to execute such instructions. In the present examples, the machine-readable storage medium may store instructions that, when executed by the processing resource, implement the processing modules 212. In such examples, the server 106 may also comprise the machine-readable storage medium storing the instructions and the processing resource to execute the instructions, or the machine-readable storage medium may be separate but accessible to the server 106 and the processing resource. In other examples, the processing modules 212 may be implemented using an electronic circuitry.
[0054] In one or more embodiments, the processing modules 212 may include a reception module 214, a data processing module 216, a search module 218, a filtering module 220, and a display control module 222.
[0055] In an embodiment, the processor 206, using the reception module 214, may receive the query string from the user device 102 for performing the fuzzy search on a plurality of records (may also be referred to as “database records”) present in the cache database 110. In the fuzzy search a matching is performed between the query string and strings available in the plurality of records. The plurality of records are the set of related data fields or attributes that are stored together. The records may be stored in form of row and column as a table. Further, each record may have its record Identification (ID) number to identify a particular record. In one or more embodiments, the plurality of records may include records having information of all type of alarms (alarm database), customer database record, product inventory record, record of transactions, data usage records, billing record, or any other user or system related record.
[0056] Before performing the fuzzy search, the processor 206, using the data processing module 216, may load the plurality of records from the source database 108 into the cache database 110. The selection of the plurality of records which is to be loaded in the cache database 110 is based on one of business requirement of operator, critically of functions where search is required, frequency of context in past search requests, user requirement, or any other criteria set by the operator.
[0057] Further, upon receiving the query string, the processor 206, using the data processing module 216 may extract one or more search terms from the query string. The data processing module 216 may include a Natural Language Understanding (NLU) component which extracts the one or more search terms from the query string. Further, the processor 206, using the data processing module 216, may identify a context associated with the query string based on the one or more search terms. The processor 206 may identify the context using one of Large Language Model (LLM) or any other rule-based model. The processor 206, using the data processing module 216, may then determine whether records associated with the identified context are available in the cache database 110 or not. If the records associated with the context are available, the search module 218 performs the extraction of search records from the cache database 110. Further, if the recordsassociated with the context are not available in the cache database 110, the search module 218 terminates the extraction of search records from the cache database 110. Upon termination of the extraction from the cache database 110, the search module 218 may perform the extraction of search records from the source database 108 .
[0058] In a non-limiting example, if the query string is “search a list of nodes with coverage related alarms”, the data processing module 216 first extracts that the context of the query string is to search into alarm index or alarm database. The data processing module 216 may then determines whether the alarm index or alarm related data is present / available in the cache database 110. If the alarm index or alarm related data is present in the cache database 110, then the search module 218 proceeds to perform the fuzzy search. In one or more embodiments, if the records associated with the context are not available in the cache database 110, the search may be fallback to the source database 108 and a normal search will be performed.
[0059] In one or more embodiments, the processor 206, using the data processing module 216, may update the cache database 110 at one of a refresh frequency rate or the pre-defined expiry period. In a non-limiting example, the refresh frequency rate and the pre-defined expiry period may be predefined or may be configured by the user.
[0060] Further, when the records associated with the context are available, the processor 206, using the search module 218, may extract one or more fuzzy search result strings from the plurality of records present in the cache database 110. The processor 206 may extract the one or more fuzzy search result strings based on the query string. For instance, the search module 218 may start the fuzzy search operation as soon as the user start inputting the query string using one or more characters of the query string. The functionality to perform the fuzzy search during run time may enable faster search operation. In a non-limiting example, if the query string is “billing information of user “ABC”, the fuzzy search result strings may include “billing info of user “AB” or “information of user “ABC”).
[0061] Further, the processor 206, using the filtering module 220, may filter one or more result strings from the one or more fuzzy search result strings. For instance, the processor 206, using the filtering module 220, may determine a similarity score between each of the one or more fuzzy search result strings and the query string. Further, the processor 206, using the filtering module 220, may determine whether the determined similarity score is greater than a specific value. The processor 206, using the filtering module 220, filters the one or more result strings among the one or more fuzzy search result strings for those the similarity score is greater than the specific value. In one or more embodiments, the specific value may be predefined value or may be configurable by the user. In one or more other embodiments, the specific value may be determined based on a level of fuzziness. The level of fuzziness is configurable by the user. For instance, a low value of level of fuzziness indicates a higher specific value. If the level of fuzziness is configured at lower side that indicates that search is permitted for the records which have very less difference than the query string. Therefore, a higher the specific value results in more similarity in the two search strings. Further, If the level of fuzziness is configured at higher side that indicates that search is permitted for the records which have a significance difference than the query string.
[0062] In one or more aspects of the present disclosure, determining the similarity score between the one or more fuzzy search result strings and the query string may corresponds to determining / calculating a Levenshtein distance between the one or more fuzzy search result strings and the query string. A higher value of the similarity score corresponds to lower value of the Levenshtein distance. If the Levenshtein distance is less than or equal to a pre-defined level of fuzziness, then strings are considered to be matched.
[0063] In one or more embodiments, the similarity score may be determined using Jaccard similarity method, cosine similarity method, classic edit distance, or any other string-matching algorithms.
[0064] Further, the processor 206, using the search module 218, may sort the one or more result strings in one of an ascending order or a descending order of the similarity score.
[0065] Thereafter, the processor 206, using the display control module 222, may display the one or more result strings on the display interface of the user device 102. For instance, the displayed list of search results may may include the one or more result strings sorted in the ascending order or the descending order.
[0066] Further, the processor 206, using the display control module 222, may also display, along with the one or more result strings, Identity Document (ID) numbers of records among the plurality of records that includes the one or more result strings.
[0067] Further, if for each of the one or more fuzzy search result strings the similarity score is less than the threshold value, the processor 206, using the display control module 222, may display a null result. In one or more embodiments, the processor 206 may extract search result strings from the source database 108 if the search results are not present in the cache database 110.
[0068] Further, the processing modules 212 may also include an expiry management module (not shown in figure) for determining whether a user request for performing the fuzzy search is expired or not. If the user request is expired, the search module 218 does not extract any result strings from the plurality of records.
[0069] FIG. 3 illustrates a diagram depicting a process flow 300 for implementing the cache-based fuzzy search mechanism for performing the fuzzy search on the database records, in accordance with the one or more embodiments of the present disclosure. The process flow 300 comprises a series of operation steps from 302 to 308. The process flow 300 starts at step 302.
[0070] At step 302, the user associated with the user device 102 sends the query string to the server 106. The user sends the query string for performing the fuzzy search on the plurality of records stored in the cache database 110.
[0071] At step 304, the search module 218 of the server 106 extracts the one or more fuzzy search result strings from the plurality of records present in the cache database 110 based on the query string. The plurality of records is loaded in the cache database 110 from the source database 108. Also, the source database 108 periodically updates the records the cache database 110 at a predefined time interval. The predefined time interval may depend on the refresh frequency that is predefined in the system 200 or set by the user. In an implementation, the cache database 110 has an expiry set, after which the system auto-refreshes to keep data up to date.
[0072] At step 306, the filtering module 220 of the server 106 filters the one or more result strings from the one or more fuzzy search result strings based on the similarity score between the one or more fuzzy search result strings and the query string. For instance, the filtering module 220 calculates / determines the similarity score (or the Levenshtein distance) between the one or more fuzzy search result strings and the query string. Thereafter, the filtering module 220 filters the one or more result strings from the one or more fuzzy search result strings for those the similarity score is greater than the specific value (or the Levenshtein distance is less than the pre-defined level of fuzziness).
[0073] At step 308, the search module 218 sorts the one or more result strings in one of the ascending order or the descending order of the similarity score (or the Levenshtein distance) and send the result to the display control module 222. Thereafter, the display control module 222 controls the display interface of the user device 102 to display the one or more result strings.
[0074] FIG. 4 illustrates a flow diagram of a method 400 for performing the fuzzy search on the database records, in accordance with the one or more embodiments of the present disclosure. The method 400 comprises a series of operation steps indicated by blocks 402 through 412 performed by the system 200. The method 400 starts at block 402.
[0075] At block 402, the reception module 214 may receive the query string from the user device 102 for performing the fuzzy search on the plurality of records present in the cache database 110.
[0076] At block 404, the search module 218 may extract the one or more fuzzy search result strings from the plurality of records loaded in the cache database 110 based on the query string.
[0077] At block 406, the filtering module 220 may determine the similarity score between each of the one or more fuzzy search result strings and the query string. For instance, the filtering module 220 may determine the similarity score for each fuzzy search result string of the one or more fuzzy search result strings. The similarity score indicates a degree of similarity between each fuzzy search result string and the query string.
[0078] At block 408, the filtering module 220 may filter the one or more result strings from the one or more fuzzy search result strings having the similarity score greater than the specific value.
[0079] At block 410, the display control module 222 may display the one or more result strings on the display interface of the user device 102. The one or more result strings have the similarity score greater than the threshold value.
[0080] In one or more embodiments, the display control module 222 may also display the ID numbers of records among the plurality of records that includes the one or more result strings.
[0081] FIG. 5 illustrates a schematic block diagram of a computing system 500 for performing the fuzzy search on the database records, in accordance with the one or more embodiments of the present disclosure.
[0082] The computing system 500 includes a network 502, a network interface 504, a processor 506 (similar in functionality to the processor 206 of FIG. 2), an Input / Output (VO) interface 508, and a non-transitory computer readable storagemedium 510 (hereinafter may also be referred to as the “storage medium 510” or the “storage media 510”). The network interface 504 includes an Ethernet card, Universal Serial Bus (USB), a communication port, or a Personal Computer Memory Card International Association (PCMCIA) slot and card.
[0083] The processor 506 may include various processing circuitry / modules and communicate with the storage medium 510 and the I / O interface 508. The processor 506 and the I / O interface 508 are configured to perform various steps described above for performing the fuzzy search on the database records. The processor 506 may include an intelligent hardware device including a general -purpose processor, such as, for example, and without limitation, the CPU, the AP, the dedicated processor, or the like, the graphics-only processing unit such as the GPU, the microcontroller, the FPGA, the programmable logic device, the discrete hardware component, or any combination thereof. The processor 506 may be configured to execute computer-readable instructions 510-1 stored in the storage medium 510 to cause the system 200 to perform various functions disclosed throughput the disclosure.
[0084] The storage medium 510 stores a set of instructions i.e., computer program instructions 510-1 (hereinafter may also be referred to as instructions 510-1) required by the processor 506 for controlling its overall operations. The storage media 510 may include an electronic storage medium, a magnetic storage medium, an optical storage medium, a quantum storage medium, or the like. For example, the storage media 510 may include, but are not limited to, hard drives, floppy diskettes, optical disks, ROMs, RAMs, EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of physical media suitable for storing electronic instructions. In one or more embodiments, the storage media 510 includes a Compact Disk-Read Only Memory (CD-ROM), a Compact Disk- Read / Write (CD-R / W), and / or a Digital Video Disc (DVD). In one or more implementations, the storage medium 510 stores computer program code configured to cause the computing system 500 to perform at least a portion of the processes and / or methods disclosed herein throughput the disclosure.
[0085] Embodiments of the present disclosure have been described above with reference to flowchart illustrations of methods and systems according to embodiments of the disclosure, and / or procedures, algorithms, steps, operations, formulae, or other computational depictions, which may also be implemented as computer program products. In this regard, each block or step of the flowchart, and combinations of blocks (and / or steps) in the flowchart, as well as any procedure, algorithm, step, operation, formula, or computational depiction can be implemented by various means, such as hardware, firmware, and / or software including one or more computer program instructions embodied in computer-readable program code. As will be appreciated, any such computer program instructions may be executed by one or more computer processors, including without limitation a general -purpose computer or special purpose computer, or other programmable processing apparatus to perform a group of operations comprising the operations or blocks described in connection with the disclosed method.
[0086] Further, these computer program instructions, such as embodied in computer-readable program code, may also be stored in one or more computer- readable memory or memory devices (for example, the memory 208 or the storage medium 510) that can direct a computer processor or other programmable processing apparatus to function in a particular manner, such that the instructions 510-1 stored in the computer-readable memory or memory devices produce an article of manufacture including instruction means which implement the function specified in the block(s) of the flowchart(s).
[0087] It will further be appreciated that the term “computer program instructions” as used herein refer to one or more instructions that can be executed by the one or more processors (for example, the processor 206 or the processor 506) to perform one or more functions as described herein. The instructions 510-1 may also be stored remotely such as on a server, or all or a portion of the instructions can be stored locally and remotely.
[0088] Referring to the technical abilities and advantageous effect of the present disclosure, operational advantages that may be provided by one or more embodiments may include enabling high speed search operation by caching large results locally. Further, the disclosed system and method ensures high relevance of search results by using advanced filtering techniques. Further, the disclosed system and method auto refreshes the cache database to keep the cache database up to date. Further, the disclosed system and method provide users with control to override refresh frequencies for refreshing the cache database. A further potential advantage of the disclosed system and method include enabling customization of refresh strategies which allows the users to tailor cache refresh to specific use cases, offering flexibility in managing data. The disclosed system and method integrate the cache database for loading the large search records locally and allow for customizable refresh strategies, which enhances both speed and relevance of search results.
[0089] Those skilled in the art will appreciate that the methodology described herein in the present disclosure may be carried out in other specific ways than those set forth herein in the above disclosed embodiments without departing from essential characteristics and features of the present invention. The above-described embodiments are therefore to be construed in all aspects as illustrative and not restrictive.
[0090] The drawings and the forgoing description give examples of embodiments. Those skilled in the art will appreciate that one or more of the described elements may well be combined into a single functional element. Alternatively, certain elements may be split into multiple functional elements. Elements from one embodiment may be added to another embodiment. For example, orders of processes described herein may be changed and are not limited to the manner described herein. Any combination of the above features and functionalities may be used in accordance with one or more embodiments.
[0091] In the present disclosure, each of the embodiments has been described with reference to numerous specific details which may vary from embodiment to embodiment. The foregoing description of the specific embodiments disclosed herein may reveal the general nature of the embodiments herein that others may, by applying current knowledge, readily modify and / or adapt for various applications such specific embodiments without departing from the generic concept, and, therefore, such adaptations and modifications are intended to be comprehended within the meaning of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and is not limited in scope.LIST OF REFERENCE NUMERALS
[0092] The following list is provided for convenience and in support of the drawing figures and as part of the text of the specification, which describe innovations by reference to multiple items. Items not listed here may nonetheless be part of a given embodiment. For better legibility of the text, a given reference number is recited near some, but not all, recitations of the referenced item in the text. The same reference number may be used with reference to different examples or different instances of a given item. The list of reference numerals is:100 - Environment of the cache-based fuzzy search mechanism102 - User device104 - Network106 - Server108 - Source database110 - Cache database / Cache memory200 - System for performing the fuzzy search202 - Query interface204 - Control module206 - Processor208 - Memory210 - Communication Unit212 - Processing modules214 - Reception module216 - Data processing module218 - Search module 220 - Filtering module222 - Display control module300 - Process flow for implementing the cache-based fuzzy search mechanism302-308 - Operation steps of process flow 300400 - Method for performing the fuzzy search 402-410 - Operation steps of the method 400500 - Block diagram of a computing system502 - Network504 - Network interface506 - Processor 508 - Input / Output (I / O) interface510 - Non-transitory computer readable storage medium510-1 - Set of instructions
Claims
I / We claim:
1. A method (400) for performing a fuzzy search on database records, the method (400) comprising: receiving (402), by a reception module (214), a query string from a user device (102); extracting (404), by a search module (218) based on the query string, one or more fuzzy search result strings from a plurality of records present in a cache memory (110); determining (406), by a filtering module (220), a similarity score between each of the one or more fuzzy search result strings and the query string; filtering (408), by the filtering module (220), one or more result strings from the one or more fuzzy search result strings having the similarity score greater than a specific value; and displaying (410), by a display control module (222) on a display interface of the user device (102), the one or more result strings.
2. The method (400) as claimed in claim 1, comprising: sorting, by the search module (218), the one or more result strings included in the list of search results in one of an ascending order or a descending order of the similarity score; and displaying, by the display control module (222) on the display interface, the sorted one or more result strings.
3. The method (400) as claimed in claim 1, comprising: updating, by a data processing module (216), the cache memory (110) at one or more of a refresh frequency rate and a pre-defined expiry period, wherein the refresh frequency rate and the pre-defined expiry period are set based on a user input.
4. The method (400) as claimed in claim 1, comprising:extracting, by a data processing module (216), one or more search terms from the received query string; identifying, by the data processing module (216), a context associated with the query string based on the one or more search terms; determining, by the data processing module (216), whether records associated with the identified context are present in the cache memory (110); and extracting, by the search module (218), the one or more fuzzy search result strings from the cache memory (110) based on a result of the determination that the records associated with the identified context are present in the cache memory (110).
5. The method (400) as claimed in claim 4, comprising extracting, by the search module (218), search result strings from the source database (108) based on a result of the determination that the records associated with the identified context are absent in the cache memory (110).
6. The method (400) as claimed in claim 1, wherein the specific value is determined based on a level of fuzziness, the level of fuzziness is configurable by the user, and a low value of level of fuzziness indicates a higher specific value.
7. The method (400) as claimed in claim 1, comprising displaying, by the display control module (222) along with the one or more result strings, Identity Document (ID) numbers of records among the plurality of records that includes the one or more result strings.
8. A system (200) for performing a fuzzy search on database records, the system (200) comprising: a reception module (214) configured to receive a query string from a user device (102);1 a search module (218) configured to extract, based on the query string, one or more fuzzy search result strings from a plurality of records present in a cache memory (110); a filtering module (220) configured to: determine a similarity score between each of the one or more fuzzy search result strings and the query string; and filter one or more result strings from the one or more fuzzy search result strings having the similarity score greater than a specific value; and a display control module (222) configured to display, on a display interface of the user device (102), the one or more result strings.
9. The system (200) as claimed in claim 8, wherein the search module (218) is configured to sort the one or more result strings included in the list of search results in one of an ascending order or a descending order of the similarity score, and wherein the display control module (222) is configured to display on the display interface, the sorted one or more result strings.
10. The system (200) as claimed in claim 8, comprising a data processing module (216) configured to update the cache memory (110) at one or more of a refresh frequency rate or a pre-defined expiry period, wherein the refresh frequency rate and the pre-defined expiry period are set based on a user input.
11. The system (200) as claimed in claim 8, comprising: a data processing module (216) configured to: extract one or more search terms from the received query string, identify a context associated with the query string based on the one or more search terms, and determine whether records associated with the identified context are present in the cache memory (110), whereinthe search module (218) is configured to extract the one or more fuzzy search result strings from the cache memory (110) based on a result of the determination that the records associated with the identified context are present in the cache memory (110).
12. The system (200) as claimed in claim 11, wherein the search module (218) is configured to extract search result strings from the source database (108) based on a result of the determination that the records associated with the identified context are absent in the cache memory (110).
13. The system (200) as claimed in claim 8, wherein the specific value is determined based on a level of fuzziness, the level of fuzziness is configurable by the user, and a low value of level of fuzziness indicates a higher specific value .
14. The system (200) as claimed in claim 8, wherein the display control module (222) is configured to display, along with the one or more result strings, Identity Document (ID) numbers of records among the plurality of records that includes the one or more result strings.
15. A computer program product comprising computer-executable instructions that are stored on a non-transitory computer-readable medium and that, when executed by at least one processor performs operations comprising: receiving a query string from a user device (102); extracting, based on the query string, one or more fuzzy search result strings from a plurality of records present in a cache memory (110); determining a similarity score between each of the one or more fuzzy search result strings and the query string; filtering one or more result strings from the one or more fuzzy search result strings having the similarity score greater than a specific value; and displaying, on a display interface of the user device (102), the one or more result strings.
Citation Information
Patent Citations
Designing record matching queries utilizing examples
US20070294221A1
Dynamic caching system
US20170052976A1
Method for efficiently supporting interactive, fuzzy search on structured data
US8631035B2