Index and query serving for low latency search of large graphs
First Claim
1. A system comprising:
- a graph-based datastore representing entities connected by predicates; and
a query serving system including;
at least one processor, andmemory storing;
an index of the graph-based datastore, the index including predicate posting lists, each predicate posting list having a plurality of intersection identifiers and, for each intersection identifier, at least one result identifier, the at least one result identifier identifying an entity connected by the predicate to an entity identified by the respective intersection identifier; and
instructions that, when executed by the at least one processor cause the query serving system to;
receive a query that executes in at least two stages, each stage associated with a different predicate posting list from the index,execute a forward query path on the stages to generate first query results, wherein executing the forward query path includes;
applying an expand operator on a predicate posting list for a first stage to generate intersection identifier-result identifier pairs,
generating a list of result identifiers as first stage query results, and
providing the first stage query results to a downstream stage as incident identifiers, andexecute a reverse query path on the stages to generate second query results, where the first query results include different entities than the second query results.
2 Assignments
0 Petitions
Accused Products
Abstract
A search index for searching a graph-based data store can include triple entries, each triple entry having a posting list value, at least one intersection identifier associated with the posting list value, and at least one result identifier associated with the intersection identifier. The index may also include search entries having a posting list value that corresponds to a text search aid. The search index may also include pre-computed path entries, such as chain path entries and converge path entries. The index may also include bucket posting lists representing ranges of object values for a particular predicate and proximity posting lists that include one or more entities and the areas of a location hierarchy with locations within the proximity of the entity. Queries for the data graph may have at least two stages, each stage being associated with a posting list from a graph index.
-
Citations
26 Claims
-
1. A system comprising:
-
a graph-based datastore representing entities connected by predicates; and a query serving system including; at least one processor, and memory storing; an index of the graph-based datastore, the index including predicate posting lists, each predicate posting list having a plurality of intersection identifiers and, for each intersection identifier, at least one result identifier, the at least one result identifier identifying an entity connected by the predicate to an entity identified by the respective intersection identifier; and instructions that, when executed by the at least one processor cause the query serving system to; receive a query that executes in at least two stages, each stage associated with a different predicate posting list from the index, execute a forward query path on the stages to generate first query results, wherein executing the forward query path includes;
applying an expand operator on a predicate posting list for a first stage to generate intersection identifier-result identifier pairs,
generating a list of result identifiers as first stage query results, and
providing the first stage query results to a downstream stage as incident identifiers, andexecute a reverse query path on the stages to generate second query results, where the first query results include different entities than the second query results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a graph-based datastore; and an indexing system including; at least one processor, a memory storing an index for searching the graph-based datastore, the index including; posting lists for one or more proximity ranges compatible with a space, a posting list including; one or more entities of a type compatible with the space, each entity having a location within the space, the location being a basic unit in a location hierarchy for the space, and for each entity, at least one node in the location hierarchy that falls within the proximity range of the posting list with reference to the location of the entity, at least one distance-predicate posting list that includes nodes in the location hierarchy and, for each node, one or more entities of a type compatible with the space and located within an area represented by the node, and a memory storing instructions that, when executed by the at least one processor cause the indexing system to use the index to respond to a query that includes a query proximity range for the space. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A search index for performing low-latency searches of a data graph, the data graph having entities linked by predicates, the search index comprising:
-
predicate posting lists, wherein a predicate posting list for a particular predicate includes subject entities and one or more object entities related to respective subject entities by the particular predicate; bucket posting lists that represent ranges of object values for a predicate, a bucket posting list for the particular predicate includes at least one subject entity related by the particular predicate to at least one object entity having an object value that falls within a start value and an end value for the bucket posting list; and object-rank posting lists, wherein an object-rank posting list for the particular predicate includes subject entities and one or more object entities related to respective subject entities by the particular predicate, wherein each object entity is associated with a rank; and
wherein the start value and the end value for the bucket posting lists are associated with respective ranks,wherein the search index is stored a non-transitory computer-readable medium on one or more computing systems in communication with an indexing server and a query server and is used to generate search results in response to queries. - View Dependent Claims (18, 19, 20)
-
-
21. A system comprising:
-
a graph-structured knowledge base that supplies triples for indexing, where a triple represents a subject linked with an object by at least one relationship; and an indexing system including; at least one processor, and memory storing; an index for searching the graph-structured knowledge base, each entry of at least some entries in the index having; a posting list value, a plurality of intersection identifiers associated with the posting list value, and for each of the intersection identifiers, one or more result identifiers, and instructions that, when executed by the at least one processor cause the indexing system to; generate and store, for at least one of the triples from the knowledge base, a subject index entry where the posting list value represents a subject of the triple, an object index entry where the posting list value represents an object of the triple, and a relationship index entry where the posting list value represents a relationship linking the subject and the object of the triple, pre-compute entries for the index representing an intersection between a first posting list value and a second posting list value, and store the pre-computed entries in the index. - View Dependent Claims (22, 23, 24, 25, 26)
-
Specification