Back to results
US 11,455,312 B1Granted
Data query system with improved response time
AssigneeSabre Glbl Inc.
InventorYanjun Zhang
Life of this patent
Estimating the term…
Abstract
A system reduces the time and resources needed to search a large dataset by preprocessing the dataset prior to receiving a query. Generally, the system evaluates and combines rules that govern the validity of the data. The system combines rules to determine conditions under which data objects in the dataset are invalid. After a query is issued, the system quickly eliminates data objects from the response by applying the conditions rather than the individual rules to the data objects.
Claims20
A method, comprising:
- obtaining, from a data hosting server, first, second, third, and fourth data objects stored on the data hosting server;
- binding to the first data object a first plurality of rules that govern the applicability of the first data object;
- binding to the second data object a second plurality of rules that govern the applicability of the second data object;
- binding to the third data object a third plurality of rules that govern the applicability of the third data object;
- binding to the fourth data object a fourth plurality of rules that govern the applicability of the fourth data object;
- determining a first set of conditions under which the first data object is invalid, wherein the first set of conditions is a logical union of at least (1) a set of conditions under which the first data object is invalid according to a first rule of the first plurality of rules and (2) a set of conditions under which the first data object is invalid according to a second rule of the first plurality of rules;
- determining a second set of conditions under which the second data object is invalid, wherein the second set of conditions is a logical union of at least (1) a set of conditions under which the second data object is invalid according to a first rule of the second plurality of rules and (2) a set of conditions under which the second data object is invalid according to a second rule of the second plurality of rules;
- determining a third set of conditions under which the third data object is invalid, wherein the third set of conditions is a logical union of at least (1) a set of conditions under which the third data object is invalid according to a first rule of the third plurality of rules and (2) a set of conditions under which the third data object is invalid according to a second rule of the third plurality of rules;
- determining a fourth set of conditions under which the fourth data object is invalid, wherein the fourth set of conditions is a logical union of at least (1) a set of conditions under which the fourth data object is invalid according to a first rule of the fourth plurality of rules and (2) a set of conditions under which the fourth data object is invalid according to a second rule of the fourth plurality of rules;
- after determining the first, second, third, and fourth sets of conditions, receiving, from a user, a query comprising search criterion;
- and
- in response to receiving the query:
- determining that the first data object, the third data object, and the fourth data object are eligible for the query by determining that the search criteria does not satisfy the first, third, and fourth set of conditions;
- invalidating the second data object by determining that the search criteria satisfies at least one condition of the second set of conditions;
- after determining that the first data object is eligible for responding to the query, determining that the first data object is valid by applying each rule from the first plurality of rules that was not used to determine the first set of conditions;
- after determining that the fourth data object is eligible for responding to the query, determining that the fourth data object is valid by applying each rule from the fourth plurality of rules that was not used to determine the fourth set of conditions;
- after determining that the third data object is eligible for responding to the query, invalidating the third data object in response to determining that a condition under which the third data object is invalid according to a rule from the third plurality of rules that was not used to determine the third set of conditions is satisfied;
- in response to determining that the first data object and the fourth data object are valid for responding to the query, determining, that the first data object has a higher ranking than the fourth data object;
- and
- in response to determining that the first data object has a higher ranking, presenting, on a user terminal, the first data object in response to the query.
17 more elements
A method, comprising:
- obtaining first, second, third, and fourth fares for a flight between a first location and a second location;
- binding to the first fare a first plurality of rules that govern the applicability of the first fare;
- binding to the second fare a second plurality of rules that govern the applicability of the second fare;
- binding to the third fare a third plurality of rules that govern the applicability of the third fare;
- binding to the fourth fare a fourth plurality of rules that govern the applicability of the fourth fare;
- determining a first set of dates on which the first fare is invalid, the first set of dates is a logical union of at least (1) a set of dates on which the first fare is invalid according to a first rule of the first plurality of rules and (2) a set of dates on which the first fare is invalid according to a second rule of the first plurality of rules;
- determining a second set of dates on which the second fare is invalid, the second set of dates is a logical union of at least (1) a set of dates on which the second fare is invalid according to a first rule of the second plurality of rules and (2) a set of dates on which the second fare is invalid according to a second rule of the second plurality of rules;
- determining a third set of dates on which the third fare is invalid, the third set of dates is a logical union of at least (1) a set of dates on which the third fare is invalid according to a first rule of the third plurality of rules and (2) a set of dates on which the third fare is invalid according to a second rule of the third plurality of rules;
- determining a fourth set of dates on which the fourth fare is invalid, the fourth set of dates is a logical union of at least (1) a set of dates on which the fourth fare is invalid according to a first rule of the fourth plurality of rules and (2) a set of dates on which the fourth fare is invalid according to a second rule of the fourth plurality of rules;
- after determining the first, second, third, and fourth sets of dates, receiving, from a user, a query for flights comprising search criteria comprising an origin location, a destination location, and a departure date;
- and
- in response to receiving the query:
- determining that the first fare, the third fare, and the fourth fare are eligible for responding to the query by determining that the departure date is outside the corresponding first, third, and fourth set of dates;
- invalidating the second fare by determining that the departure date is within the second set of dates;
- after determining that the first fare is eligible for responding to the query, determining that the first fare is valid by applying each rule from the first plurality of rules that was not used to determine the first set of dates;
- after determining that the fourth fare is eligible for responding to the query, determining that the fourth fare is valid by applying each rule from the fourth plurality of rules that was not used to determine the fourth set of dates;
- after determining that the third fare is eligible for responding to the query, invalidating the third fare by applying a rule from the third plurality of rules that was not used to determine the third set of dates;
- in response to determining that the first fare and the fourth fare are valid for responding to the query, determining that the first fare is lower than the fourth fare;
- and
- in response to determining that the first fare is lower than the fourth fare, presenting the first fare in response to the query.
17 more elements
A system comprising:
- a data hosting server configured to store first, second, third, and fourth fares for a flight between a first location and a second location;
- a search space organizing tool communicatively coupled to the data hosting server, the search space organizing tool configured to:
- bind to the first fare a first plurality of rules that govern the applicability of the first fare;
- bind to the second fare a second plurality of rules that govern the applicability of the second fare;
- bind to the third fare a third plurality of rules that govern the applicability of the third fare;
- bind to the fourth fare a fourth plurality of rules that govern the applicability of the fourth fare;
- determine a first set of dates on which the first fare is invalid, the first set of dates is a logical union of at least (1) a set of dates on which the first fare is invalid according to a first rule of the first plurality of rules and (2) a set of dates on which the first fare is invalid according to a second rule of the first plurality of rules;
- determine a second set of dates on which the second fare is invalid, the second set of dates is a logical union of at least (1) a set of dates on which the second fare is invalid according to a first rule of the second plurality of rules and (2) a set of dates on which the second fare is invalid according to a second rule of the second plurality of rules;
- determine a third set of dates on which the third fare is invalid, the third set of dates is a logical union of at least (1) a set of dates on which the third fare is invalid according to a first rule of the third plurality of rules and (2) a set of dates on which the third fare is invalid according to a second rule of the third plurality of rules;
- and
- determine a fourth set of dates on which the fourth fare is invalid, the fourth set of dates is a logical union of at least (1) a set of dates on which the fourth fare is invalid according to a first rule of the fourth plurality of rules and (2) a set of dates on which the fourth fare is invalid according to a second rule of the fourth plurality of rules;
- and
- a query server configured to:
- after the search space organizing tool has determined the first, second, third, and fourth sets of dates, receive, from a user, a query for flights comprising search criteria comprising an origin location, a destination location, and a departure date;
- and
- in response to receiving the query:
- determine that the first fare, the third fare, and the fourth fare are eligible for responding to the query by determining that the departure date is outside the first, third, and fourth set of dates;
- invalidate the second fare by determining that the departure date is within the second set of dates;
- after determining that the first fare is eligible for responding to the query, determine that the first fare is valid by applying each rule from the first plurality of rules that was not used to determine the first set of dates;
- after determining that the fourth fare is eligible for responding to the query, determine that the fourth fare is valid by applying each rule from the fourth plurality of rules that was not used to determine the fourth set of dates;
- after determining that the third fare is eligible for responding to the query, invalidate the third fare by applying a rule from the third plurality of rules that was not used to determine the third set of dates;
- in response to determining that the first fare and the fourth fare are valid for the query, determine that the first fare is lower than the fourth fare;
- and
- in response to determining that the first fare is lower than the fourth fare, present the first fare in response to the query.
21 more elements
Dependencies are inferred from the claim text.