Efficient calculation of sets of distinct results in an information retrieval service
AssigneeSap SE
InventorsThomas Peh, Holger Schwedes, Oliver M. Steinau, Wolfgang Stephan
Life of this patent
Estimating the term…
Abstract
Systems and methods are provided for efficient calculation of sets of distinct results in an information retrieval service. A query is received having at least one requested attribute and one or more conditions. For each row identifier in a database table that matches the one or more conditions, a tuple of value identifiers having an entry for each requested attribute is calculated. A unique number is generated and assigned to the tuple for each distinct combination of the value identifiers. Duplicate entries in the tuple listing are identified and removed, so that a result set provides only distinct results.
Claims11
A computer-implemented method for efficient calculation of sets of distinct results in an information retrieval service, the method comprising:
- receiving a query from a client application, the query having at least two requested attributes and one or more conditions;
- for each row identifier in each of a plurality of database tables that matches the one or more conditions, calculating a tuple of value identifiers having an entry for each requested attribute;
- separately, substantially, and concurrently assigning for each of the plurality of database tables a unique number to the tuple for each distinct combination of the value identifiers corresponding to the requested attributes;
- determining, from a list of the row identifiers mapped with the unique numbers, duplicate list entries based on the attributes requested in the query by:
- mapping, for matching row identifiers from two or more database tables, the corresponding unique numbers from each distinct combination of the value identifiers, and
- identifying, using a hashing algorithm, duplicate tuples with a same set of unique numbers;
- deleting, prior to projection, duplicate list entries from the list of the row identifiers mapped with the unique numbers to isolate for each unique number a single remaining tuple;
- and
- inserting the single remaining tuple into a result set.
A non-transitory machine-readable storage medium containing a set of instructions for an information retrieval computer, the set of instructions causing the information retrieval computer to:
- receive a query from a client application, the query having at least one requested attribute and one or more conditions;
- for each row identifier in each of a plurality of database tables that match the one or more conditions, calculate a tuple of value identifiers having an entry for each requested attribute;
- separately, substantially, and concurrently assign for each of the plurality of database tables a unique number to the tuple for each distinct combination of the value identifiers corresponding to the requested attributes;
- determine, from a list of the row identifiers mapped with the unique numbers, duplicate list entries based on the attributes requested in the query by:
- mapping, for matching row identifiers from two or more database tables, the corresponding unique numbers from each distinct combination of the value identifiers, and
- identifying, using a hashing algorithm, duplicate tuples with a same set of unique numbers;
- deleting, prior to projection, duplicate list entries from the list of the row identifiers mapped with the unique numbers to isolate for each unique number a single remaining tuple;
- and
- insert, during a projection step, the single remaining tuple into a result set.
A system for efficient calculation of sets of distinct results in an information retrieval service, the system comprising:
- a processor;
- a memory for storing the instructions, which when executed by the processor, cause to implement:
- a name server module for receiving a query from a client application, the query having at least one requested attribute and one or more conditions;
- and
- an index server module having an attribute engine, the attribute engine parsing the query to execute the one or more conditions to search the at least one requested attribute, the attribute engine further being configured to:
- for each row identifier in each of a plurality of database tables that matches the one or more conditions, calculate a tuple of value identifiers having an entry for each requested attribute;
- assign, in parallel, a unique number to the tuple for each distinct combination of the value identifiers in each of the plurality of database tables;
- and
- determine, from the list of the row identifiers mapped with the unique numbers, duplicate list entries based on the attributes specified in the query by:
- mapping, for matching row identifiers from two or more database tables, the corresponding unique numbers from each distinct combination of the value identifiers, and
- identifying, using a hashing algorithm, duplicate tuples with a same set of unique numbers;
- deleting, prior to projection, duplicate list entries from the list of the row identifiers mapped with the unique numbers to isolate for each unique number a single remaining tuple;
- and
- insert, during a projection step, the single remaining tuple into a result set.
Dependencies are inferred from the claim text.