public interface Index
Documents as
well as synchronous and asynchronous searching for Documents for a given Query. The
following code fragment shows how to add documents, then search the index for documents matching
a query.
// Get the SearchService for the default namespace
SearchService searchService = SearchServiceFactory.getSearchService();
// Get the index. If not yet created, create it.
Index index = searchService.getIndex(
IndexSpec.newBuilder().setIndexName("indexName"));
// Create a document.
Document document = Document.newBuilder()
.setId("documentId")
.addField(Field.newBuilder().setName("subject").setText("my first email"))
.addField(Field.newBuilder().setName("body")
.setHTML("<html>some content here</html>")
.build();
// Put the document.
try {
index.put(document);
} catch (PutException e) {
if (StatusCode.TRANSIENT_ERROR.equals(e.getOperationResult().getCode())) {
// retry putting document
}
}
// Query the index.
try {
Results<ScoredDocument> results =
index.search(Query.newBuilder().build("subject:first body:here"));
// Iterate through the search results.
for (ScoredDocument document : results) {
// display results
}
} catch (SearchException e) {
if (StatusCode.TRANSIENT_ERROR.equals(e.getOperationResult().getCode())) {
// retry
}
}
| Modifier and Type | Method and Description |
|---|---|
void |
delete(java.lang.Iterable<java.lang.String> documentIds) |
void |
delete(java.lang.String... documentIds)
Delete documents for the given document ids from the index if they are in the index.
|
java.util.concurrent.Future<java.lang.Void> |
deleteAsync(java.lang.Iterable<java.lang.String> documentIds) |
java.util.concurrent.Future<java.lang.Void> |
deleteAsync(java.lang.String... documentId) |
void |
deleteSchema()
Delete the schema from the index.
|
java.util.concurrent.Future<java.lang.Void> |
deleteSchemaAsync() |
Document |
get(java.lang.String documentId)
Gets a
Document for the given document Id. |
java.lang.String |
getName() |
java.lang.String |
getNamespace() |
GetResponse<Document> |
getRange(GetRequest.Builder builder) |
GetResponse<Document> |
getRange(GetRequest request)
Get an index's documents, in document Id order.
|
java.util.concurrent.Future<GetResponse<Document>> |
getRangeAsync(GetRequest.Builder builder) |
java.util.concurrent.Future<GetResponse<Document>> |
getRangeAsync(GetRequest request) |
Schema |
getSchema() |
long |
getStorageLimit() |
long |
getStorageUsage() |
PutResponse |
put(Document... documents)
Put the documents into the index, updating any document that is already present.
|
PutResponse |
put(Document.Builder... builders) |
PutResponse |
put(java.lang.Iterable<Document> documents) |
java.util.concurrent.Future<PutResponse> |
putAsync(Document... document) |
java.util.concurrent.Future<PutResponse> |
putAsync(Document.Builder... document) |
java.util.concurrent.Future<PutResponse> |
putAsync(java.lang.Iterable<Document> documents) |
Results<ScoredDocument> |
search(Query query)
Search the index for documents matching the query.
|
Results<ScoredDocument> |
search(java.lang.String query)
Search the index for documents matching the query string.
|
java.util.concurrent.Future<Results<ScoredDocument>> |
searchAsync(Query query) |
java.util.concurrent.Future<Results<ScoredDocument>> |
searchAsync(java.lang.String query) |
java.lang.String getName()
java.lang.String getNamespace()
java.util.concurrent.Future<java.lang.Void> deleteAsync(java.lang.String... documentId)
delete(String...)java.util.concurrent.Future<java.lang.Void> deleteAsync(java.lang.Iterable<java.lang.String> documentIds)
delete(String...)java.util.concurrent.Future<java.lang.Void> deleteSchemaAsync()
deleteSchema()java.util.concurrent.Future<PutResponse> putAsync(Document... document)
put(Document...)java.util.concurrent.Future<PutResponse> putAsync(Document.Builder... document)
put(Document...)java.util.concurrent.Future<PutResponse> putAsync(java.lang.Iterable<Document> documents)
put(Document...)java.util.concurrent.Future<Results<ScoredDocument>> searchAsync(java.lang.String query)
search(String)java.util.concurrent.Future<Results<ScoredDocument>> searchAsync(Query query)
search(Query)java.util.concurrent.Future<GetResponse<Document>> getRangeAsync(GetRequest request)
getRange(GetRequest)java.util.concurrent.Future<GetResponse<Document>> getRangeAsync(GetRequest.Builder builder)
getRange(GetRequest)void delete(java.lang.String... documentIds)
documentIds - the ids of documents to deleteDeleteException - if there is a failure in the search service deleting documentsjava.lang.IllegalArgumentException - if some document id is invalidvoid delete(java.lang.Iterable<java.lang.String> documentIds)
delete(String...)void deleteSchema()
DeleteException - if there is a failure in the search service deleting the schemaPutResponse put(Document... documents)
documents - the documents to put into the indexPutResponse containing the result of the put operations indicating success
or failure as well as the document ids. The search service will allocate document ids for
documents which have none providedPutException - if there is a failure in the search service putting documentsjava.lang.IllegalArgumentException - if some document is invalid or more than SearchApiLimits.PUT_MAXIMUM_DOCS_PER_REQUEST documents requested to be put into the indexPutResponse put(Document.Builder... builders)
put(Document...)PutResponse put(java.lang.Iterable<Document> documents)
put(Document...)Document get(java.lang.String documentId)
Document for the given document Id.documentId - the identifier for the document to retrieveDocument. can be nullResults<ScoredDocument> search(java.lang.String query)
query - the query stringResults containing ScoredDocumentsSearchQueryException - if the query string is invalidSearchException - if there is a failure in the search service performing the searchsearch(Query)Results<ScoredDocument> search(Query query)
query - the fully specified Query objectResults containing ScoredDocumentsjava.lang.IllegalArgumentException - if the query is invalidSearchQueryException - if the query string is invalidSearchException - if there is a failure in the search service performing the searchGetResponse<Document> getRange(GetRequest request)
request - contains various options restricting which documents are returned.GetResponse containing a list of documents from the indexjava.lang.IllegalArgumentException - if the get request is invalidGetResponse<Document> getRange(GetRequest.Builder builder)
getRange(GetRequest)Schema getSchema()
Schema describing supported document field names and Field.FieldTypes supported for those field names. This schema will only be populated if
the GetIndexesRequest.isSchemaFetched() is set to true on a SearchService.getIndexes(com.google.appengine.api.search.GetIndexesRequest) requestlong getStorageUsage()
java.lang.UnsupportedOperationException - if called on an Index object that is not the result of a
SearchService.getIndexes(com.google.appengine.api.search.GetIndexesRequest) requestlong getStorageLimit()
java.lang.UnsupportedOperationException - if called on an Index object that is not the result of a
SearchService.getIndexes(com.google.appengine.api.search.GetIndexesRequest)