Google App Engine Java: Full Text Search example needed - google-app-engine

I have a datastore with lots of entities. I want to implement a search functionality that will return me results from the the datastore. I understand that I have to use https://cloud.google.com/appengine/docs/java/search/. Can someone please suggest me the best approach to do this?

Related

GAE Full Text Search API on datastore entities using Golang

I heard that we have app engine Search API support for Golang. but it is not clear if we have can use this search API on GAE datastore entities (the Google IO 2011 video says it is possible, but not sure if that is really supported using Golang). Any thoughts about this? and any good documentation with examples? really appreciate your help.
You cannot run full text search on the datastore entities. To perform full text search you need to create separate Documents in the text search indexes, which is independent from the datastore. If you want to do text search on what data you have in the datastore, iterate over it and create the documents from the entities in full text search indexes.
For documentation , the link you provided
https://cloud.google.com/appengine/docs/go/search/
have the information in it.

Storing 100k map markers in App Engine

I'm designing yet another "Find Objects near my location" web site and mobile app.
My requirements are:
Store up to 100k objects;
Query for objects that are close to the point (my location, city, etc). And other search criteria (like object type);
Display results on the Google Maps with smooth performance.
Let user filter objects by object time.
I'm thinking about using Google App Engine for this project.
Could You recommend what would be the best data storage option for this?
And couple of words about dynamic data loading strategy.
I kinda feel overwhelmed with options at the moment and looking for hints where should I continue my research.
Thanks a lot!
I'm going to to assume that you are using the datastore. I'm not familiar with Google Cloud SQL (which I believe aims to offer MySQL-like features in the cloud), so I can't speak if it can do geospatial queries.
I've been looking into the whole "get locations in proximity of a location" problem for a while now. I have some good and bad news for you, unfortunately.
The best way to do the proximity search in the Google Environment is via the Search Service (https://developers.google.com/appengine/docs/python/search/ or find the JAVA link ). Reason being is that it supports a "Geopoint Field", and allows you to query in such a way.
Ok, cool, so there is support, right? However, "A query is complex if its query string includes the name of a geopoint field or at least one OR or NOT boolean operator". The free quota for Complex Search Queries are 100/day. Per 10,000 queries, it costs 60 cents. Depending on your application, this may be an issue.
I'm not too familar with the Google Maps API you might be able to pull off something like this :(https://developers.google.com/maps/articles/phpsqlsearch_v3)
My current project/problem involves moving locations, and not "static" ones (stores, landmarks,etc). I've decided to go with Amazon's Dynamodb and they have a library which supports geospatial indexing : http://aws.amazon.com/about-aws/whats-new/2013/09/05/announcing-amazon-dynamodb-geospatial-indexing/

What is the best approach to build a Google App Engine store locator type of application?

I am trying to build a store locator type of application that will automatically display the nearby stores on Google Map as markers. Because the limitation of GQL, traditional way of doing geo query is not possible. I came across three options and want to ask if anyone had any experience with them and which one works better. Thanks!
Geomodel
Mutiny project
Geodatastore
I don't have any experience doing geo queries, but it is always helpful to use the activity meters that Google Code has.
At a glance it looks like the first one is your best bet.
The Search API now supports Geosearch.
It can retrieve results within a given radius and sort them by distance, so it should work for what you want to do.

Confused about Google App Engine and Google Docs options

I want to use the Google App Engine to store my data and then query/display/ edit it using Google Spreadsheets as the user interface, with multiple concurrent users having their own view of the data. The problem I have now is that if I put everyone's data on the same Google Spreadsheet that everyone accesses, we can't each do sorting / filtering at the same time.
Is there a way to do this, and is it a good idea to build a simple system this way? I'll eventually need to query a series of Google Word Processor documents as well.
Can someone point me in the right direction on this or suggest other options?
I would ask what the advantage of doing something like this is as opposed to say hosting your application on Google App Engine and building a javascript front end with grids to help sort/filter and view data.
Anyway to answer your questions, you can build your interface over Google Spreadsheets using Google App Scripts. This will allow you to do things like authenticate your user, query, update and display data. If you want to merely display data it turns out that Google Spreadsheets has some built-in functions to do that.
Regarding consistency you should read up on GAE's Datastore as well as its features like transactions. The datastore is not an RDBMS, but is an object database which stores objects against keys. Again something to consider if you are planning to do a lot of data analysis and computation (summations, aggregations).
Overall I would recommend doing a rough design of your system without fixing on particular technologies (like GAE, and Google Spreadsheets). Once you identify what your key goals are for your application, then you can figure out which technologies and resources would make the most sense within your budget.

What are my options in choosing a search engine for my Django app?

I am building a web site in Django where I would need to implement searching through about 5 million records.
Users need to be able to:
Search by full text on title and body of entry
Filter on category
Sort by Votes
Sort by price.
Is there a search engine which supports all the above inherently and connects well to django ? I've built a similar system before using Sphinx but was not really happy with it's Django integration. Anyone has other suggestion or can convince me that Sphinx is good enough ?
Just use django-haystack and select your backend.
Do you really need search engine? MySQL has pretty decent full-text search support, some other databases probably do too.
The rest of the features you listed are within standard duties of any RDBMS. With proper indexes, it should be fine even for 5 million objects.

Resources