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:
Implementations provide an indexing system with an instant failover that uses a moving snapshot window. For example, a method may include receiving, by a processor, a query and determining that a main query processing engine is not responding. The method may further include generating a search result for the query using a secondary query processing engine that applies at least one snapshot record to a portion of a posting list, the snapshot record including the portion of the posting list as it appeared before a modification, and the modification occurring within a predetermined time before receiving the query. The portion is a fixed size smaller than the posting list. Applying the snapshot record can include overlaying the portion of the posting list with the snapshot record beginning at an offset specified by the snapshot record. The main query processing engine generates a search result without applying snapshot records.
Abstract:
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium for access control for enterprise information. In one aspect, a method includes receiving resources of an enterprise, each resource having a respective access control list specifying access privileges to the resource for one or more members, and the resources including entities related to the enterprise and relationships; identifying entity facts of the entities from the resources; determining, for each entity fact, an entity fact access control list; storing data describing the entities, entity facts and the respective entity fact access control lists, wherein each entity fact is associated with its corresponding entity fact access control list; and providing, to each of the members of the enterprise, access privileges to the data describing the entities and the entity facts according to the respective entity fact access control lists.
Abstract:
Implementations provide an indexing system with near-instant updates to an inverted index while maintaining techniques for query optimization. The system may provision empty positions in posting lists to enable in-place updating, without having to rebuild the posting list or append updates to the end of the posting list. For example, a system comprises at least one processor and memory storing an index that includes at least one posting list that maps a term to a set of the documents. The posting list includes an ordered list of documents and has a plurality of open positions within the ordered list. The memory also stores instructions that, when executed by the at least one processor, cause the system to locate an open position of the plurality of open positions for a new document and to insert the new document into the at least one posting list using the open position.
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.