hi anurag! a couple things are going on here. first, you actually do
need another index. appengine.ext.search converts search queries into
normal queries, with one filter for each search keyword. so, this:

User.all().search('hug bos').order('-date_joined')

is equivalent to this:

User.gql("WHERE __searchable_text_index = 'hug' AND
__searchable_text_index = 'bos' ORDER BY date_joined DESC")

so, you need a different index for each different number of search
keywords that you want to support. specifically, for this search
query, you'd need:

- kind: User
  properties:
  - name: __searchable_text_index
  - name: __searchable_text_index
  - name: date_joined
    direction: desc

if you drop the sort order, you no longer need an index because the
query then has only equals filters. see:

http://code.google.com/appengine/docs/datastore/queriesandindexes.html#Defining_Indexes_With_index_yaml

the second thing, which is causing your confusion, is that the "bo"
keyword is being ignored due to this constant in appengine/ext/search/
__init__.py:

  # words shorter than this will not be indexed. search keywords
shorter than
  # this will be ignored.
  _FULL_TEXT_MIN_LENGTH = 3

if you want to index and search on keywords under 3 characters, you
can change this constant by adding this code to your main(), or
somewhere similar:

google.appengine.ext.search._FULL_TEXT_MIN_LENGTH = 1

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

Reply via email to