First off, I _really_ like the idea of AppEngine. We're hosting most of our sites (versionsapp.com, checkoutapp.com) on it and it works great for that purpose. Impressed as we were, I started trying to build our first serious webapp on AppEngine; a small webstore. What I basically wanted to do is building a page where you could browse 50 products at a time, optionally limited by a search or tag, based on Django. All went well until I wanted to implement search...
I grabbed a few example datasets from users of our Mac POS app, they mostly have around a 1000 products with a name, brand and description. I knew substring search was hard to implement, so I skipped that and used the undocumented ext.search models with my own set of search words, mostly around 40 per product. Because some searches took quite long I decided to slice the results by 50 at a time, not impressive but good enough. And because product descriptions don't change often I could use memcache to cache each result 'slice'. To do so, I figured I needed to at least order by name, so the slicing would make sense. Therefore I had to create an index on name, searchIndex (set of searchable words). Worked great, until I tried to type two words. I told me I had to create another index: name, searchIndex, searchIndex. Seemed logical, but then people may want to type more then 2 words at the same time so I added 5 indexes to get up to five words. >From that moment inserting products started to take more then a second, which I guess was due to the indexing, but even worse, I started to get errors like BadRequestError: Too many indexed properties for entity: app. I found out the max indexes for an entity is capped at 5000, and calculated that if I were to use max 3 words for a search I could only add 17 searchable words in an items' index (17*17*17=4913). I'm still not sure that math is 100% correct, but at least I was able to insert most of my products again, but searching is just horribly slow. So now I'm stuck with a _lot_ of limitations for a simple app: only 3 search terms, no substring searching, 50 results at a time and in my opinion pretty bad performance, especially when inserting. Maybe I'm doing something horribly wrong, and I don't consider myself the best db programmer out there but this just seems silly. Again, this is not to bash AppEngine because I really see the potential and like the idea. But as it stands now it's just unusable for us (a small indie dev company that wants their products to scale), and it's hard for me to imagine that anyone else can live with these limitations. I guess what I'm saying is: I love this thing to work for us! We want to use it and pay for it! Seriously, please fix the searching... you're Google for god sake :-) Kindest regards, Koen Bok - madebysofa.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
