|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Index
An Index allows synchronous and asynchronous adding and deleting of
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") .setConsistency(Consistency.PER_DOCUMENT)); // 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(); // Add the document. try { index.add(document); } catch (AddException e) { if (StatusCode.TRANSIENT_ERROR.equals(e.getOperationResult().getCode())) { // retry adding 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 } }
Method Summary | |
---|---|
AddDocumentsResponse |
add(Document... documents)
Add the documents to the index, updating any document that is already present. |
AddDocumentsResponse |
add(java.lang.Iterable<Document> documents)
|
java.util.concurrent.Future<AddDocumentsResponse> |
addAsync(Document... document)
|
java.util.concurrent.Future<AddDocumentsResponse> |
addAsync(java.lang.Iterable<Document> documents)
|
Consistency |
getConsistency()
|
java.lang.String |
getName()
|
java.lang.String |
getNamespace()
|
Schema |
getSchema()
|
ListResponse<Document> |
listDocuments(ListRequest request)
Lists the index's documents, in document Id order. |
java.util.concurrent.Future<ListResponse<Document>> |
listDocumentsAsync(ListRequest request)
|
void |
remove(java.lang.Iterable<java.lang.String> documentIds)
|
void |
remove(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> |
removeAsync(java.lang.Iterable<java.lang.String> documentIds)
|
java.util.concurrent.Future<java.lang.Void> |
removeAsync(java.lang.String... documentId)
|
Results<ScoredDocument> |
search(Query query)
Search the index for documents matching the query. |
Results<ScoredDocument> |
search(java.lang.String query)
|
java.util.concurrent.Future<Results<ScoredDocument>> |
searchAsync(Query query)
|
java.util.concurrent.Future<Results<ScoredDocument>> |
searchAsync(java.lang.String query)
|
Method Detail |
---|
java.lang.String getName()
java.lang.String getNamespace()
Consistency getConsistency()
java.util.concurrent.Future<java.lang.Void> removeAsync(java.lang.String... documentId)
#remove(String...)}
java.util.concurrent.Future<java.lang.Void> removeAsync(java.lang.Iterable<java.lang.String> documentIds)
#remove(String...)}
java.util.concurrent.Future<AddDocumentsResponse> addAsync(Document... document)
#add(Document...)}
java.util.concurrent.Future<AddDocumentsResponse> addAsync(java.lang.Iterable<Document> documents)
#add(Document...)}
java.util.concurrent.Future<Results<ScoredDocument>> searchAsync(java.lang.String query)
{@link #search(String)}
java.util.concurrent.Future<Results<ScoredDocument>> searchAsync(Query query)
#search(Query)}
java.util.concurrent.Future<ListResponse<Document>> listDocumentsAsync(ListRequest request)
#listDocuments(ListRequest)}
void remove(java.lang.String... documentIds)
documentIds
- the ids of documents to remove
RemoveException
- if there is a failure in the search
service deleting documents
java.lang.IllegalArgumentException
- if some document id is invalidvoid remove(java.lang.Iterable<java.lang.String> documentIds)
#remove(String...)}
AddDocumentsResponse add(Document... documents)
documents
- the documents to add to the index
AddDocumentsResponse
containing the result of
the add operations indicating success or failure as well as the document
ids. The search service will allocate document ids for documents which
have none provided
AddException
- if there is a failure in the search
service adding documents
java.lang.IllegalArgumentException
- if some document is invalid or
more than IndexChecker.MAXIMUM_DOCS_PER_REQUEST
documents
requested to be addedAddDocumentsResponse add(java.lang.Iterable<Document> documents)
#add(Document...)}
Results<ScoredDocument> search(java.lang.String query)
#search(Query)}
Results<ScoredDocument> search(Query query)
query
- the fully specified Query
object
Results
containing
ScoredDocuments
java.lang.IllegalArgumentException
- if the query is invalid
SearchQueryException
- if the query string is invalid
SearchException
- if there is a failure in the search service
performing the searchListResponse<Document> listDocuments(ListRequest request)
request
- contains various options restricting which documents are
returned.
ListResponse<Document>
containing a list of
documents from the index
java.lang.IllegalArgumentException
- if the list request is invalidSchema getSchema()
Schema
describing supported document field names and
Field.FieldType
s supported for those field names. This schema
will only be populated if the ListIndexesRequest.isSchemaFetched()
is set to true on an SearchService.listIndexes(com.google.appengine.api.search.ListIndexesRequest)
request
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |