I was thinking to tokenize the elments. 2010/6/3 Massimiliano <massimiliano.pietr...@gmail.com>
> Which one? > > 2010/6/3 Rafael Sierra <rafaeljs...@gmail.com> > > On Thu, Jun 3, 2010 at 2:51 PM, Rafael Sierra <rafaeljs...@gmail.com> >> wrote: >> > On Thu, Jun 3, 2010 at 2:40 PM, Massimiliano >> > <massimiliano.pietr...@gmail.com> wrote: >> >> Dear Ikai, >> >> I want to search in the datastore "Pizza" and obtain "Pizza with >> tomatoes", >> >> "Pizza with Mushrooms", I don't care about "abcpizza" or "123pizza". >> > >> > Those you can obtain by the filter told some messages ago, but 'I want >> > pizza man!' need a full-text of the poor solution I gave in the last >> > message. >> >> ...OR* the poor solution... (not "of") >> >> > >> >> Massimiliano >> >> >> >> 2010/6/3 Ikai L (Google) <ika...@google.com> >> >>> >> >>> The reason search engines work is because they do stemming on terms. >> For >> >>> instance, when you search for "cats" you may want to match "cat" and >> "cats" >> >>> for better results, and it's fairly unlikely you want to return >> "abcatst" or >> >>> "youcats123" (sorry, I couldn't think of any words that had "cats" in >> the >> >>> middle). Lucene, an open source Java project for ships with basic >> analyzers >> >>> that will do things like this. >> >>> Otherwise, there aren't easily scalable ways to index on substrings. >> The >> >>> closest you can come is to try to intelligently determine which >> substrings >> >>> in a string can be searched on, and index those terms. >> >>> On Thu, Jun 3, 2010 at 9:49 AM, Rafael Sierra <rafaeljs...@gmail.com> >> >>> wrote: >> >>>> >> >>>> Massimiliano, the point is that there's no way to create an index >> that >> >>>> can be used to avoid a full-scan into the database in that kind of >> >>>> query, so, even if you can do "ILIKE '%anything%'" in PgSQL or "LIKE >> >>>> '%anotherthing%'" in MySQL, it will result in a full-scan on every >> >>>> record at database. >> >>>> >> >>>> But, if you have a small set of record in you database, you can do >> >>>> something like this: http://dpaste.com/hold/202782/ . You can do >> this >> >>>> in larger sets of databases also, but you may deal with some >> >>>> DeadLineErrors at your application. >> >>>> >> >>>> Note: This solution has absolutely no performance at all, you can >> even >> >>>> do some kind of pagination (scanning the database only up to N >> >>>> registers and breaking after that) but if the scan happens to iterate >> >>>> over thousands of records before reach N records found, you will >> still >> >>>> have DeadLineErrors. >> >>>> >> >>>> On Thu, Jun 3, 2010 at 11:04 AM, Massimiliano >> >>>> <massimiliano.pietr...@gmail.com> wrote: >> >>>> > So there isn't a scalable solution! >> >>>> > >> >>>> > 2010/6/3 Geoffrey Spear <geoffsp...@gmail.com> >> >>>> >> >> >>>> >> >> >>>> >> On Jun 3, 4:58 am, Massimiliano <massimiliano.pietr...@gmail.com> >> >>>> >> wrote: >> >>>> >> > I need just something like *myvar* so I will accept any >> carachters >> >>>> >> > before >> >>>> >> > and after the var... >> >>>> >> > Or I have to divide the strings in list (each word an elment of >> the >> >>>> >> > list) >> >>>> >> > and use the operator IN. >> >>>> >> > Thinking >> >>>> >> >> >>>> >> Building a keyword index for each entity is fairly trivial. >> >>>> >> >> >>>> >> Indexing so that you can find "oob" in "foobar" isn't, and I don't >> >>>> >> believe there's a scalable solution for this. An RDBMS will do >> >>>> >> searches like this for you, but it won't scale well. I believe >> it's >> >>>> >> only possible by doing a table scan, which App Engine won't let >> you do >> >>>> >> (short of manually fetching every entity and checking if it >> contains >> >>>> >> your substring, which obviously isn't going to be pretty.) >> >>>> >> >> >>>> >> -- >> >>>> >> 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-appeng...@googlegroups.com. >> >>>> >> To unsubscribe from this group, send email to >> >>>> >> google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> >> . >> >>>> >> For more options, visit this group at >> >>>> >> http://groups.google.com/group/google-appengine?hl=en. >> >>>> >> >> >>>> > >> >>>> > >> >>>> > >> >>>> > -- >> >>>> > >> >>>> > My email: massimiliano.pietr...@gmail.com >> >>>> > My Google Wave: massimiliano.pietr...@googlewave.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-appeng...@googlegroups.com. >> >>>> > To unsubscribe from this group, send email to >> >>>> > google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> >> . >> >>>> > For more options, visit this group at >> >>>> > http://groups.google.com/group/google-appengine?hl=en. >> >>>> > >> >>>> >> >>>> -- >> >>>> 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-appeng...@googlegroups.com. >> >>>> To unsubscribe from this group, send email to >> >>>> google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> >> . >> >>>> For more options, visit this group at >> >>>> http://groups.google.com/group/google-appengine?hl=en. >> >>>> >> >>> >> >>> >> >>> >> >>> -- >> >>> Ikai Lan >> >>> Developer Programs Engineer, Google App Engine >> >>> Blog: http://googleappengine.blogspot.com >> >>> Twitter: http://twitter.com/app_engine >> >>> Reddit: http://www.reddit.com/r/appengine >> >>> >> >>> -- >> >>> 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-appeng...@googlegroups.com. >> >>> To unsubscribe from this group, send email to >> >>> google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> >> . >> >>> For more options, visit this group at >> >>> http://groups.google.com/group/google-appengine?hl=en. >> >> >> >> >> >> >> >> -- >> >> >> >> My email: massimiliano.pietr...@gmail.com >> >> My Google Wave: massimiliano.pietr...@googlewave.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 >> >> google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> >> . >> >> For more options, visit this group at >> >> http://groups.google.com/group/google-appengine?hl=en. >> >> >> > >> >> -- >> 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-appeng...@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine+unsubscr...@googlegroups.com<google-appengine%2bunsubscr...@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine?hl=en. >> >> > > > -- > > My email: massimiliano.pietr...@gmail.com > My Google Wave: massimiliano.pietr...@googlewave.com > -- My email: massimiliano.pietr...@gmail.com My Google Wave: massimiliano.pietr...@googlewave.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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.