Abstract:
A system for efficiently responding to proximity queries may include a memory storing an index for searching a graph-based data store, the index including posting lists for one or more proximity ranges compatible with a space. A posting list can include 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. The system may also include a memory storing instructions that cause the system to use the index to respond to a query that includes a query proximity range for the space. The space can be a geographic space or a time space.
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.