Unfortunately, I don't think there's any way to do this in Sphinx (though if 
you'd like to double-check, I'd recommend posting to the Sphinx forum).
http://sphinxsearch.com/forum/

An alternative could be to parse the query string into separate words, and use 
ActiveSupport's singularize method. Of course, this isn't super-reliable, but 
might be worth a shot.

-- 
Pat

On 15/12/2009, at 12:15 PM, Jon Crawford wrote:

> Oh, wow.  Yeah I had it backwards.  My desired behavior would be for
> Product.search("dogs") to return a match for "dog".  My users aren't
> too bright sometimes and they add an S to the end of a word and it
> rules out search results.
> 
> Example:   Product.search("*shirts*) would rule out any product just
> tagged with "shirt".
> 
> Any suggestions for how to alter the actual search term to achieve
> this?
> 
> !jon
> 
> On Dec 14, 4:55 pm, Pat Allan <[email protected]> wrote:
>> Hi Jon
>> 
>> Just to clarify - morphology works the opposite way around. You index dogs, 
>> and search for dog, and it will get returned. If you index dog, and search 
>> for dogs, you won't get the document returned. Was this your understanding 
>> too?
>> 
>> Also, I've just tested in my app, searching for '*dog*' matches SkyDog, but 
>> '*dogs*' does not.
>> 
>> I'm using the 0.9.9 release - not sure if it's worth upgrading (though I've 
>> not heard of morphology being buggy before)... I can't spot anything out of 
>> place in your index definition.
>> 
>> --
>> Pat
>> 
>> On 15/12/2009, at 5:26 AM, Jon Crawford wrote:
>> 
>> 
>> 
>>> Thanks for the help, Pat.
>> 
>>> I've got Sphinx 0.9.8.1-release (r1533).  Still seeing this behavior
>>> after a couple days in production and many reconfig/rebuilds.
>> 
>>> Is morphology not compatible with searching with star?   Product.search
>>> ("*dogs*") should match "SkyDog" in a perfect world but does not.
>> 
>>> Here's my define_index block:
>> 
>>>  define_index do
>>>    indexes :name, :sortable => true
>>>    indexes description
>>>    indexes tags.name, :as => :tag_names
>> 
>>>    has created_at, store_id, deleted_at, cents, category_id
>>>    has :active, :type => :boolean
>>>    has store.active, :as => :store_active, :type => :boolean
>>>    has store.admin_disabled, :as => :store_admin_disabled, :type
>>> => :boolean
>>>    has taggings.tag_id, :as => :tag_ids
>> 
>>>    where "products.deleted_at IS NULL"
>>>  end
>> 
>>> On Dec 12, 1:59 am, Pat Allan <[email protected]> wrote:
>>>> Hi Jon
>> 
>>>> I've just created some test data in a local app, and it seems to be 
>>>> working fine for me (indeed, with the examples you've offered - an object 
>>>> with running returns in a search for run, ditto for dogs/dog). I've got 
>>>> the same settings in my sphinx.yml file...
>> 
>>>> So, maybe it's something to do with the index setup? Can you provide a bit 
>>>> more detail on what your define_index block looks like, and what Sphinx 
>>>> version you're using?
>> 
>>>> Cheers
>> 
>>>> --
>>>> Pat
>> 
>>>> On 12/12/2009, at 1:13 AM, Jon Crawford wrote:
>> 
>>>>> And for a point of clarification, I checked the generated conf file
>>>>> and the morphology is specified there.
>> 
>>>>> index product_core
>>>>> {
>>>>>   source = product_core_0
>>>>>   path = /path/to/index/product_core
>>>>>   morphology = stem_en
>>>>>   charset_type = utf-8
>>>>>   min_infix_len = 3
>>>>>   enable_star = 1
>>>>>   html_strip = 1
>>>>> }
>> 
>>>>> On Dec 11, 12:42 am, Jon Crawford <[email protected]> wrote:
>>>>>> Using this configuration, I've tried it in development and staging.
>>>>>> But it's not changing the query according to the query log.
>> 
>>>>>> development:
>>>>>>   morphology: stem_en
>>>>>>   enable_star: true
>>>>>>   min_infix_len: 3
>>>>>>   html_strip: true
>> 
>>>>>> Product.search("dogs") should query for "dog", right?
>>>>>> Product.search("running") should query for "run", right?
>> 
>>>>>> I've configured, indexed, restarted multiple times.  Any suggestions?
>> 
>>>>> --
>> 
>>>>> You received this message because you are subscribed to the Google Groups 
>>>>> "Thinking Sphinx" 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 
>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>> 
>>> --
>> 
>>> You received this message because you are subscribed to the Google Groups 
>>> "Thinking Sphinx" 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 
>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
> 
> --
> 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" 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/thinking-sphinx?hl=en.
> 
> 

--

You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" 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/thinking-sphinx?hl=en.


Reply via email to