IP Library Granted Patent US 11,321,395
Granted Patent B2
US 11,321,395 · App. 16/054,342 · Granted May 3, 2022

Data indexing for search tool

Inventors: Tao Wei (London, GB); Subbanarasimhiah Harish (London, GB); Neil Rickards (Hertfordshire, GB)
Assignee: Palantir Technologies Inc.
G06F16/903G06F9/547G06F16/13G06F16/901G06F16/951
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,321,395
App. No.
16/054,342
Granted
May 3, 2022
Kind
B2
Abstract

Methods and systems for indexing data for a search tool are disclosed, wherein the method is performed using one or more processors. The methods and systems may comprise an operation of providing an indexing application programming interface (API) for implementation in relation to one or more data resources of a data processing platform requiring data of the data resource to be indexed for searching using a search tool of the data processing platform. The interface may be configured, when implemented in relation to a data resource, to send data indicative of one or more definitions of data to be crawled from said data resource to an indexing system of the data processing platform, and to generate an event queue indicative of one or more events associated with said defined data that have occurred in relation to the data resource.

Claims (69)

1. A method of indexing data for a search service, wherein the method is performed using one or more processors, the method comprising:

providing an indexing application programming interface (API) for implementation in relation to one or more data resources of a data processing platform requiring data of the data resource to be indexed for searching using a search service of the data processing platform, the indexing API being configured, when implemented in relation to a data resource, to send data indicative of one or more definitions of data to be crawled from said data resource to an indexing system of the data processing platform, and to generate an event queue indicative of one or more events associated with said defined data that have occurred in relation to the data resource, wherein the providing of the indexing API comprises:

determining whether a schema corresponding to the data resource is available at the search service;

in response to determining that the schema is available:

retrieving the schema;

determining a first API compatible with the schema; and

retrieving the first API compatible with the schema;

in response to determining that the schema is unavailable:

creating a schema mapping, in the search service, corresponding to the data resource; and

retrieving a second API compatible with the schema mapping in the search service;

identifying one or more data resources that have implemented the indexing API;

querying the one or more identified data resources to determine one or more events indicated in respective buffers of the one or more identified data resources;

crawling the one or more identified data resources based on the determined one or more events to receive data for indexing; and

indexing the received data associated with said one or more events for access by the search service.

2. The method of claim 1 , wherein the indexing system is a centralised indexing system of a cloud-based data processing platform comprising one or more servers running the one or more data resources.

3. The method of claim 1 , wherein the indexing API is a web API.

4. The method of claim 1 , wherein the indexing API, when implemented by a data resource, is configured to cause creation of the event queue locally at said data resource.

5. The method of claim 1 , wherein querying the one or more identified data resources comprises identifying one or more new events in the one or more event queues which have occurred since a previous querying operation, and crawling the respective one or more data resources based only on the one or more new events.

6. The method of claim 5 , wherein the indexing API, when implemented by said one or more identified data resources, is further configured to cause the respective one or more event queues to empty subsequent to the crawling operation.

7. The method of claim 5 , wherein the indexing API, when implemented by said one or more data sources, is further configured to cause generation of an offset indicative of when the respective one or more event queues were previously queried.

8. The method of claim 1 , wherein the one or more event queues store event data indicative of a change of data.

9. The method of claim 8 , wherein the event data is indicative of one or more of new data, deleted data and modified data.

10. The method of claim 1 , wherein the one or more definitions of the data to be crawled permits interpretation of each event in the event queue such that data associated with the interpreted event is indexed based on the interpretation.

11. The method of claim 1 , wherein the method further comprises providing the search service specific to the data processing platform, the search service comprising a user interface for receiving a search query and for returning search results based on the search query and the data that has been indexed by the indexing operation.

12. The method of claim 11 , wherein the indexing API is operable, when implemented by the one or more data resources, to send a set of search restrictions defining limitations on the search results that can be returned to users responsive to a search query.

13. The method of claim 11 , wherein the search restrictions are based on an identifier of a user or user role associated with the search query.

14. The method of claim 13 , wherein the search restrictions define that search results relating to second data resources belonging to a particular organisation are only returned to users having a predetermined association with the particular organisation.

15. The method of claim 13 , wherein the search restrictions define one or more of: (i) a subset of the indexed data returned to the user in the search results (ii) whether the search results are accessible and (iii) the format of the search results.

16. The method of claim 1 , wherein the indexing API is operable, when implemented by the one or more data resources, to send a set of indexing preferences to the indexing system indicative of user-defined data sub-types to be crawled and indexed.

17. The method of claim 1 , wherein the one or more data resources comprise one or more of executable applications, data analysis applications, databases, metadata, documents.

18. The method of claim 1 , wherein the one or more events comprise a change in the schema of the data resource to a changed schema; and the providing of the indexing API comprises:

determining whether the changed schema is available at the search service;

in response to determining that the changed schema is available:

retrieving the changed schema;

determining a third API compatible with the changed schema; and

retrieving the third API compatible with the changed schema;

in response to determining that the changed schema is unavailable:

creating a second schema mapping, in the search service, corresponding to the data resource; and

retrieving a fourth API compatible with the second schema mapping in the search service.

19. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:

providing an indexing application programming interface (API) for implementation in relation to one or more data resources of a data processing platform requiring data of the data resource to be indexed for searching using a search service of the data processing platform, the indexing API being configured, when implemented in relation to a data resource, to send data indicative of one or more definitions of data to be crawled from said data resource to an indexing system of the data processing platform, and to generate an event queue indicative of one or more events associated with said defined data that have occurred in relation to the data resource, wherein the providing of the indexing API comprises:

determining whether a schema corresponding to the data resource is available at the search service;

in response to determining that the schema is available:

retrieving the schema;

determining a first API compatible with the schema; and

retrieving the first API compatible with the schema;

in response to determining that the schema is unavailable:

creating a schema mapping, in the search service, corresponding to the data resource; and

retrieving a second API compatible with the schema mapping in the search service;

identifying one or more data resources that have implemented the indexing API;

querying the one or more identified data resources to determine one or more events indicated in respective buffers of the one or more identified data resources;

crawling the one or more identified data resources based on the determined one or more events to receive data for indexing; and

indexing the received data associated with said one or more events for access by the search service.

20. A system for indexing data, the system comprising:

one or more physical processors;

a memory storing instructions that, when executed by the one or more physical processors, cause the system to perform:

providing an indexing application programming interface (API) for implementation in relation to one or more data resources of a data processing platform requiring data of the data resource to be indexed for searching using a search service of the data processing platform, the indexing API being configured, when implemented in relation to a data resource, to send data indicative of one or more definitions of data to be crawled from said data resource to an indexing system of the data processing platform, and to generate an event queue indicative of one or more events associated with said defined data that have occurred in relation to the data resource, wherein the providing of the indexing API comprises:

determining whether a schema corresponding to the data resource is available at the search service;

in response to determining that the schema is available:

retrieving the schema;

determining a first API compatible with the schema; and

retrieving the first API compatible with the schema;

in response to determining that the schema is unavailable:

creating a schema mapping, in the search service, corresponding to the data resource; and

retrieving a second API compatible with the schema mapping in the search service;

identifying one or more data resources that have implemented the indexing API;

querying the one or more identified data resources to determine one or more events querying the one or more identified data resources to determine one or more events indicated in respective buffers of the one or more identified data resources;

crawling the one or more identified data resources based on the determined one or more events to receive data for indexing; and

indexing the received data associated with said one or more events for access by the search service.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2018
From: WEI, TAO; HARISH, SUBBANARASIMHIAH; RICKARDS, NEIL
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 046660/0951 →
Priority Claims (1)
GB 1716171 · Oct 4, 2017 · national
Continuity (1)
Related Publication 20190102478A1 · Apr 4, 2019