On Thu, Jun 3, 2010 at 2:51 PM, Rafael Sierra <[email protected]> wrote:
> On Thu, Jun 3, 2010 at 2:40 PM, Massimiliano
> <[email protected]> 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) <[email protected]>
>>>
>>> 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 <[email protected]>
>>> 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
>>>> <[email protected]> wrote:
>>>> > So there isn't a scalable solution!
>>>> >
>>>> > 2010/6/3 Geoffrey Spear <[email protected]>
>>>> >>
>>>> >>
>>>> >> On Jun 3, 4:58 am, Massimiliano <[email protected]>
>>>> >> 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
>>>> >> [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.
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> >
>>>> > My email: [email protected]
>>>> > My Google Wave: [email protected]
>>>> >
>>>> > --
>>>> > 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.
>>>> >
>>>>
>>>> --
>>>> 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.
>>>>
>>>
>>>
>>>
>>> --
>>> 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 [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.
>>
>>
>>
>> --
>>
>> My email: [email protected]
>> My Google Wave: [email protected]
>>
>> --
>> 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.
>>
>

-- 
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.

Reply via email to