Method and apparatus for a searchable data service
First Claim
1. A system, comprising:
- one or more computer devices configured to implement a web services platform configured to provide a web service interface to a searchable data service, wherein the web services platform is configured to receive service requests from a plurality of client applications in accordance with the web service interface, wherein the service requests comprise query requests and storage requests, and wherein the web service interface provides a common message endpoint to the plurality of client applications to send the query requests and storage requests; and
a plurality of computer devices configured to implement a plurality of nodes configured to participate in the searchable data service to;
store searchable data service objects specified in received storage requests in respective searchable indexes for a plurality of independent data stores used by the client applications, wherein the searchable indexes are on the plurality of nodes, wherein the data stores are on one or more storage devices each on a network and separate from the one or more computer devices that implement the plurality of nodes configured to participate in the searchable data service, wherein each searchable index stores searchable data service objects for a particular one of the plurality of independent data stores such that each searchable index provides a complete index for only one of the independent data stores, wherein each searchable data service object specifies two or more attributes of a particular entity in a particular data store, wherein the attributes include a unique entity identifier for locating the particular entity in the particular data store;
locate sets of one or more searchable data service objects from the searchable indexes that satisfy received query requests, wherein the received query requests specify one of the searchable indexes; and
return at least the entity identifiers from the sets of one or more searchable data service objects that satisfy the query requests to the client applications in accordance with the web service interface.
1 Assignment
0 Petitions
Accused Products
Abstract
Method and apparatus for a searchable data service are described. The searchable data service may be implemented as a Web service with a Web service interface that allows the storage of locators and other attributes associated with entities stored in a data store in a searchable index. The attributes may be expressed as {name, value} pairs. The interface may allow client applications to query the searchable index to retrieve locators for entities in the backend data store according to the attributes associated with each locator. Search speed may be automatically optimized using, for example, indexes, query planning, and parallelism. The searchable data service provides a searchable index and is not a data store per se. The searchable data service separates searching and indexing of data from the actual storage of the data.
159 Citations
123 Claims
-
1. A system, comprising:
-
one or more computer devices configured to implement a web services platform configured to provide a web service interface to a searchable data service, wherein the web services platform is configured to receive service requests from a plurality of client applications in accordance with the web service interface, wherein the service requests comprise query requests and storage requests, and wherein the web service interface provides a common message endpoint to the plurality of client applications to send the query requests and storage requests; and a plurality of computer devices configured to implement a plurality of nodes configured to participate in the searchable data service to; store searchable data service objects specified in received storage requests in respective searchable indexes for a plurality of independent data stores used by the client applications, wherein the searchable indexes are on the plurality of nodes, wherein the data stores are on one or more storage devices each on a network and separate from the one or more computer devices that implement the plurality of nodes configured to participate in the searchable data service, wherein each searchable index stores searchable data service objects for a particular one of the plurality of independent data stores such that each searchable index provides a complete index for only one of the independent data stores, wherein each searchable data service object specifies two or more attributes of a particular entity in a particular data store, wherein the attributes include a unique entity identifier for locating the particular entity in the particular data store; locate sets of one or more searchable data service objects from the searchable indexes that satisfy received query requests, wherein the received query requests specify one of the searchable indexes; and return at least the entity identifiers from the sets of one or more searchable data service objects that satisfy the query requests to the client applications in accordance with the web service interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer-implemented method, comprising:
-
receiving service requests from a plurality of client applications on a web service interface to a searchable data service, wherein the service requests comprise query requests and storage requests, and wherein said receiving comprises receiving the query requests and storage requests at a common message endpoint provided by the web service interface to the plurality of client applications to send the query requests and storage requests; forwarding each service request from the web service interface to one of a plurality of nodes configured to participate in the searchable data service; processing received storage requests on the plurality of nodes to store searchable data service objects specified in the storage requests in respective searchable indexes for a plurality of independent data stores used by the client applications, wherein the searchable indexes are on the plurality of nodes, wherein the data stores are on one or more storage devices each on a network and separate from the one or more computer devices that implement the plurality of nodes configured to participate in the searchable data service, wherein each searchable index stores searchable data service objects for a particular one of the plurality of independent data stores such that each searchable index provides a complete index for only one of the independent data stores, wherein each searchable data service object specifies two or more attributes of a particular entity in a particular data store, and wherein the attributes include a unique entity identifier for locating the particular entity in the particular data store; processing each received query request on the plurality of nodes to locate a set of one or more searchable data service objects from the searchable indexes that satisfy the query request, wherein the received query requests specify one of the searchable indexes; and returning at least the entity identifiers from the set of one or more searchable data service objects that satisfy the query request to the client applications in accordance with the web service interface. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68)
-
-
69. A computer-accessible memory medium comprising program instructions, wherein the program instructions are configured to implement a searchable data service on a plurality of nodes, wherein the searchable data service is configured to:
-
receive service requests from a plurality of client applications via a web services platform configured to provide a web service interface to the searchable data service, wherein the service requests comprise query requests and storage requests, and wherein the web service interface provides a common message endpoint to the plurality of client applications to send the query requests and storage requests; process received storage requests on the plurality of nodes to store searchable data service objects specified in the storage requests in respective searchable indexes for a plurality of independent data stores used by the client applications, wherein the searchable indexes are on the plurality of nodes, wherein the data stores are on one or more storage devices each on a network and separate from the one or more computer devices that implement the plurality of nodes configured to participate in the searchable data service, wherein each searchable index stores searchable data service objects for a particular one of the plurality of independent data stores such that each searchable index provides a complete index for only one of the independent data stores, wherein each searchable data service object specifies two or more attributes of a particular entity in a particular data store, and wherein the attributes include a unique entity identifier for locating the particular entity in the particular data store; process received query requests on the plurality of nodes, wherein each received query request is processed to locate a set of one or more searchable data service objects from the searchable indexes that satisfy the query request wherein the query request specifies one of the searchable indexes; and return at least the entity identifiers from the set of one or more searchable data service objects that satisfy the query request to the client applications in accordance with the web service interface. - View Dependent Claims (70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101)
-
-
102. A searchable data service node, comprising:
-
one or more processors; a network interface configured to communicatively couple to a network; and a memory comprising program instructions, wherein the program instructions are executable by the one or more processors to; receive via the network searchable data service requests from a plurality of client applications in accordance with a web service interface, wherein the searchable data service requests comprise query requests, and wherein the web service interface provides a common message endpoint to the plurality of client applications to send the query requests; locate sets of one or more searchable data service objects in respective searchable indexes for a plurality of independent data stores used by the client applications that satisfy received query requests, wherein the query requests specify one of the searchable indexes, wherein the searchable indexes are distributed on a plurality of searchable data service nodes on the network, wherein the data stores are on one or more storage devices each on the network and separate from computer devices on the network that implement the searchable data service nodes, wherein each searchable index stores searchable data service objects for a particular one of the plurality of independent data stores such that each searchable index provides a complete index for only one of the independent data stores, wherein each searchable data service object specifies two or more attributes of a particular entity in a particular data store, and wherein the attributes include a unique entity identifier for locating the particular entity in the particular data store; and return via the network at least the entity identifiers from the sets of one or more searchable data service objects that satisfy the query requests to the client applications in accordance with the web service interface. - View Dependent Claims (103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115)
-
-
116. A computer-implemented method, comprising:
-
receiving query requests from a plurality of client applications on a web service interface to a searchable data service, wherein said receiving comprises receiving the query requests at a common message endpoint provided by the web service interface to the plurality of client applications to send the query requests; forwarding each query request from the web service interface to at least one of a plurality of nodes configured to participate in the searchable data service, wherein each query request comprises an identification of a searchable index and search criteria for the searchable data service, wherein the plurality of nodes store searchable indexes for a plurality of independent data stores used by the client applications, wherein the data stores are on one or more storage devices separate from the plurality of nodes, and wherein each searchable index stores searchable data service objects for a particular one of the plurality of independent data stores such that each searchable index provides a complete index for only one of the independent data stores; receiving a query result for each query request from a respective one of the plurality of nodes, wherein each query result comprises an entity identifier from each of one or more searchable data service objects from a particular searchable index of the searchable data service that satisfy the search criteria of the query request; and returning at least the entity identifier from each of the one or more searchable data service objects that satisfy the query request to the client application in accordance with the web service interface, wherein each entity identifier locates a particular entity in a particular data store used by the client applications. - View Dependent Claims (117, 118, 119, 120, 121, 122, 123)
-
Specification