Efficient search result update mechanism
First Claim
1. A computer-implemented method comprising:
- receiving a query for identifying a set of data among a plurality of sets of data, wherein the query is an expression comprising one or more component conditions, wherein the data has a plurality of attributes;
parsing the query into its component conditions;
creating entries in a plurality of condition indices for each of the component conditions parsed from the query, wherein the plurality of condition indices correspond to a respective plurality of condition types, the entries being created based on the condition type of each of the component conditions;
creating a cross-reference between the query and the parsed component conditions that have to be true in order for the query to be true;
comparing a new or changed set of data to the stored condition indices and identifying conditions that are true based on values of the attributes in the new or changed set of data andidentifying the query using the cross-reference if the necessary conditions are true for the new or changed set of data,wherein one or more of the receiving, parsing, creating and comparing steps are implemented by the computer.
1 Assignment
0 Petitions
Accused Products
Abstract
A method/algorithm allows database queries to be saved and an efficient mechanism that matches records whenever they are added or modified to all of the saved queries and returns the list of those queries that match a given record as soon as the record is added or modified. If used in an online search portal example (e.g. a job search site), this invention would allow the searcher to submit and save his search criteria once and the application would return the listings that match the search criteria at that point in time and will also automatically match any new listings that get added after the query gets saved and if a match occurs would notify the user of the listing as soon as the listing is added. This matching on new listings to the saved search will happen continuously until the search is removed. According to an aspect of the invention, by matching a record that is added or changed to the database to all saved queries, it provides convenience to the users and it also reduces the computational cost to achieve the same result relative to other existing techniques to address the same scenario.
57 Citations
20 Claims
-
1. A computer-implemented method comprising:
-
receiving a query for identifying a set of data among a plurality of sets of data, wherein the query is an expression comprising one or more component conditions, wherein the data has a plurality of attributes; parsing the query into its component conditions; creating entries in a plurality of condition indices for each of the component conditions parsed from the query, wherein the plurality of condition indices correspond to a respective plurality of condition types, the entries being created based on the condition type of each of the component conditions; creating a cross-reference between the query and the parsed component conditions that have to be true in order for the query to be true; comparing a new or changed set of data to the stored condition indices and identifying conditions that are true based on values of the attributes in the new or changed set of data and identifying the query using the cross-reference if the necessary conditions are true for the new or changed set of data, wherein one or more of the receiving, parsing, creating and comparing steps are implemented by the computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method comprising:
-
providing one or more computers that are adapted with a query tool and a database of records accessible via an online portal, wherein the records have a plurality of attributes; receiving a query from a user via the online portal, wherein the query is an expression comprising one or more conditions; using the query tool to perform a search of the database, and returning search results to the user; parsing the query to extract its conditions; creating entries in a plurality of condition indices for each of the conditions parsed from the query, wherein the plurality of condition indices correspond to a respective plurality of condition types, the entries being created based on the condition type of each of the extracted conditions; creating a cross-reference between the query and the parsed conditions that have to be true in order for the query to be true; receiving a new or changed record for storing in the database; comparing the received record against the stored condition indices to determine conditions that are true based on values of the attributes in the new or changed set of data; identifying the query using the cross-reference if the necessary conditions are true for the received record; and notifying the user if it is determined that the search results for the query are changed. - View Dependent Claims (15, 16)
-
-
17. An apparatus for searching for records in a table, wherein the records have a plurality of attributes, comprising:
-
a computer-implemented query processor that is adapted to parse a received query, wherein the query is an expression comprising one or more conditions and the parsing extracts the conditions, create entries in a plurality of condition indices for each of the extracted conditions parsed from the query, wherein the plurality of condition indices correspond to a respective plurality of condition types, the entries being created based on the condition type of each of the component conditions, and create a cross-reference between the query and the parsed component conditions that have to be true in order for the query to be true; and a computer-implemented query matching processor that is adapted to compare a new or changed record to the stored condition indices and to identify conditions that are true based on values of the attributes in the new or changed set of data, and to further identify the query if the necessary conditions are true for the new or changed set of data. - View Dependent Claims (18, 19, 20)
-
Specification