I'm an avid GAE/J user, now trying to create my first GAE/go project.
What are the limitations of the AppEngine Go runtime compared to Java or Python runtimes? Missing APIs? Runtime limitations?
https://developers.google.com/appengine/features/ covers what features are implemented by which runtimes.
What I was able to find out so far is:
DB Query: missing composite filters (AND and OR).
DB Query: missing "member of" filter operator (IN).
No App Identity API Edit: this seems to exist, but is not listed under services
No Prospective Search
Related
Does Google Cloud Platform have a product to do full-text search via an API with non-web data (such as json or xml documents)? This may seem like a pretty silly question, but the only options I have come across are:
Search inside of Google App Engine (only available for python2, not python3) -- https://cloud.google.com/appengine/training/fts_intro/.
Related to web search only: https://developers.google.com/custom-search/docs/tutorial/introduction
Using a managed Elasticsearch: https://console.cloud.google.com/marketplace/details/google/elasticsearch.
Cloud firestore explicitly states it doesn't offer that and suggests using Aloglia (and gives details on integrating): https://cloud.google.com/firestore/docs/solutions/search
Is there something I'm missing? I'm basically looking to index and search about a million documents in a sort of free-form type of search. Is this offered as a product from Google outside of App Engine? If so, how can I access it?
You have pretty much covered it there. There is currently no specific Google service for full-text search. As you mentioned, App Engine Search API is available for Python 2.7, which will stop being maintained after January 2020, and not Python 3.
There is one more option you could consider, which is using Lucene foe GAE. I found this blog where several possibilities are studied, perhaps could be an interesting reading for you.
To sum up, I would recommend ElasticSearch or Aloglia, but for the latter you need a Firebase project.
I'm trying to migrate a project from DB to NDB and found db._initialize_properties.
I searched a lot but couldn't find anything related to _initialize_properties. Not even in appengine documentation.
Also _initialize_properties is not a custom defined function in project.
Can someone please shed some light on this?
Code :
db._initialize_properties(
model_class, model_class.__name__, model_class.__bases__,
model_class.__dict__)
There's actually no NDB equivalent for that. _initialize_properties is actually a internal function of Appengine DB and can be found at google_appengine/google/appengine/ext/db/__init__.py
If you want to use _initialize_properties with NDB, you need to create a custom function in your project with that name and paste the function definition of _initialize_properties with modifications that would comply with NDB.
I have used JasperReports in past Java projects in combination with iReport for building dynamic reports that run against a database, but I understand that Google App Engine does not support JasperReports. Can anyone point me to something similar, or a report generation mechanism that is compatible with GAE?
I'm not really sure if you made any progress on this ( if you did please let us know!)
As far as I know The GAE team has marked this issue as NO-FIX. My suggestion is to try:
1) PDF Jet + Jcharts , both are pure java and do not depend on any of the balcklisted classes. I've has some limited succes with this.
2) Using Managed VMs which are not limited as the standard sandbox.
3) Finnaly, using the Google Drive API to create your docs (using a service account) and then just provide the export URL for PDF.
To be honest I ended up doing #3, while being a little more complex in the long run i found some additional benefits of having my reports pre-built and hosted on Drive.
Hope it helps.
Is there a way for me to search across all the namespaces in google app engine? Conceptually its not possible but wanted to check with the community.
Currently, I iterate through all namespaces and query each of them. Its time consuming and slow.
Not possible with standard datastore queries. Options would be to use Search API, or export to BigQuery.
Not possible, as Gwyn is pointing out. I DO see that there is a bug for this feature to be added in Google's Public Issue Tracker (namely, this issue)
It's also not possible using the Search API. My understanding is that namespaces are designed for isolation.
You could assign the same search document to two index. One generic or default and other isolated.
Then just search over the generic one, for example:
generic = search.Index("all_docs")
specific = search.Index("specific", namespace="sample_namespace")
generic.put("search_document")
specific.put("search_document")
does anyone know how to handle a "one to many" relationship with Grails/GORM on the google appengine?
I do understand how relationships get handled with Gorm, and there is also a good series of articles about it:
http://blog.springsource.com/2010/06/23/gorm-gotchas-part-1/
http://blog.springsource.com/2010/07/02/gorm-gotchas-part-2/
http://blog.springsource.com/2010/07/28/gorm-gotchas-part-3/
But I could not find any examples about releastionships within the appengine and JPA.
Have you tried Gaelyk? Its a pretty good framework for running groovy on google app engine. The following link goes over the datasource with groovy on GAE: http://gaelyk.appspot.com/tutorial/app-engine-shortcuts#datastore
I haven't tried it, but as far as I've read, you have to use JPA annotations. See here: http://blogs.oracle.com/enterprisetechtips/entry/combining_groovy_grails_mysql_and