use of com.google.appengine.api.search.IndexSpec in project teammates by TEAMMATES.
the class SearchManager method getIndex.
private static Index getIndex(String indexName) {
Map<String, Index> indicesTable = getIndicesTable();
Index index = indicesTable.get(indexName);
if (index == null) {
IndexSpec indexSpec = IndexSpec.newBuilder().setName(indexName).build();
index = SearchServiceFactory.getSearchService().getIndex(indexSpec);
indicesTable.put(indexName, index);
}
return index;
}
use of com.google.appengine.api.search.IndexSpec in project java-docs-samples by GoogleCloudPlatform.
the class SearchOptionServlet method doSearch.
private Results<ScoredDocument> doSearch() {
String indexName = SEARCH_INDEX;
// [START search_with_options]
try {
// Build the SortOptions with 2 sort keys
SortOptions sortOptions = SortOptions.newBuilder().addSortExpression(SortExpression.newBuilder().setExpression("price").setDirection(SortExpression.SortDirection.DESCENDING).setDefaultValueNumeric(0)).addSortExpression(SortExpression.newBuilder().setExpression("brand").setDirection(SortExpression.SortDirection.DESCENDING).setDefaultValue("")).setLimit(1000).build();
// Build the QueryOptions
QueryOptions options = QueryOptions.newBuilder().setLimit(25).setFieldsToReturn("model", "price", "description").setSortOptions(sortOptions).build();
// A query string
String queryString = "product: coffee roaster AND price < 500";
// Build the Query and run the search
Query query = Query.newBuilder().setOptions(options).build(queryString);
IndexSpec indexSpec = IndexSpec.newBuilder().setName(indexName).build();
Index index = SearchServiceFactory.getSearchService().getIndex(indexSpec);
Results<ScoredDocument> result = index.search(query);
return result;
} catch (SearchException e) {
// handle exception...
}
// [END search_with_options]
return null;
}
use of com.google.appengine.api.search.IndexSpec in project java-docs-samples by GoogleCloudPlatform.
the class Utils method indexADocument.
/**
* Put a given document into an index with the given indexName.
* @param indexName The name of the index.
* @param document A document to add.
* @throws InterruptedException When Thread.sleep is interrupted.
*/
// [START putting_document_with_retry]
public static void indexADocument(String indexName, Document document) throws InterruptedException {
IndexSpec indexSpec = IndexSpec.newBuilder().setName(indexName).build();
Index index = SearchServiceFactory.getSearchService().getIndex(indexSpec);
final int maxRetry = 3;
int attempts = 0;
int delay = 2;
while (true) {
try {
index.put(document);
} catch (PutException e) {
if (StatusCode.TRANSIENT_ERROR.equals(e.getOperationResult().getCode()) && ++attempts < maxRetry) {
// retrying
Thread.sleep(delay * 1000);
// easy exponential backoff
delay *= 2;
continue;
} else {
// otherwise throw
throw e;
}
}
break;
}
}
use of com.google.appengine.api.search.IndexSpec in project java-docs-samples by GoogleCloudPlatform.
the class MultitenancyServlet method doGet.
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String namespace;
PrintWriter out = resp.getWriter();
out.println("Code Snippets -- not yet fully runnable as an app");
// [START temp_namespace]
// Set the namepace temporarily to "abc"
String oldNamespace = NamespaceManager.get();
NamespaceManager.set("abc");
try {
// ... perform operation using current namespace ...
} finally {
NamespaceManager.set(oldNamespace);
}
// [START per_user_namespace]
if (com.google.appengine.api.NamespaceManager.get() == null) {
// Assuming there is a logged in user.
namespace = UserServiceFactory.getUserService().getCurrentUser().getUserId();
NamespaceManager.set(namespace);
}
// [END per_user_namespace]
String value = "something here";
// [START ns_memcache]
// Create a MemcacheService that uses the current namespace by
// calling NamespaceManager.get() for every access.
MemcacheService current = MemcacheServiceFactory.getMemcacheService();
// stores value in namespace "abc"
oldNamespace = NamespaceManager.get();
NamespaceManager.set("abc");
try {
// stores value in namespace “abc”
current.put("key", value);
} finally {
NamespaceManager.set(oldNamespace);
}
// [END ns_memcache]
// [START specific_memcache]
// Create a MemcacheService that uses the namespace "abc".
MemcacheService explicit = MemcacheServiceFactory.getMemcacheService("abc");
// stores value in namespace "abc"
explicit.put("key", value);
// [END specific_memcache]
// [START searchns]
// Set the current namespace to "aSpace"
NamespaceManager.set("aSpace");
// Create a SearchService with the namespace "aSpace"
SearchService searchService = SearchServiceFactory.getSearchService();
// Create an IndexSpec
IndexSpec indexSpec = IndexSpec.newBuilder().setName("myIndex").build();
// Create an Index with the namespace "aSpace"
Index index = searchService.getIndex(indexSpec);
// [END searchns]
// [START searchns_2]
// Create a SearchServiceConfig, specifying the namespace "anotherSpace"
SearchServiceConfig config = SearchServiceConfig.newBuilder().setNamespace("anotherSpace").build();
// Create a SearchService with the namespace "anotherSpace"
searchService = SearchServiceFactory.getSearchService(config);
// Create an IndexSpec
indexSpec = IndexSpec.newBuilder().setName("myindex").build();
// Create an Index with the namespace "anotherSpace"
index = searchService.getIndex(indexSpec);
// [END searchns_2]
}
Aggregations