Why not just do a single word query, then do a brutal force scan on result?
On Dec 7, 4:37 pm, Koen Bok <[EMAIL PROTECTED]> wrote: > 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 google-appengine@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---