Hi Claudio

You're using state as a field, but have it listed as an attribute. I know 
you've tried this, but you'll definitely want to change it to a field. Also, to 
have the scope return items that are either public or on sale, you've got to 
use some OR logic manually:

  :conditions => {:state => "(public | on_sale)"}

Whenever you use the :conditions option, the match mode is automatically set to 
:extended, unless you're specifying something yourself - which you have been, 
so you should change that. The :any match mode applies to all query terms 
provided and treats field labels as query terms as well - again, not what you 
want.

Hope this helps.

Cheers

-- 
Pat

On 22/08/2012, at 1:59 AM, Claudio Poli wrote:

> Hello,
> I have this:
> 
>   define_index do
>     indexes :name, :sortable => true
>     indexes description
>     indexes hashtags
>     indexes tag(:name), :as => :tag, :sortable => true
>     indexes comments.comment, :as => :comment
> 
>     has state, :type => :string
>     has user_id, created_at, updated_at, tag_id, box_id
>     has "RADIANS(latitude)",  :as => :latitude,  :type => :float
>     has "RADIANS(longitude)", :as => :longitude, :type => :float
> 
>     group_by "latitude", "longitude"
>   end
> 
> `state` is a string, I'm trying to build a scope that returns items with only 
> two particular states:
> 
>   sphinx_scope(:for_public_sphinx) {
>     {
>       :conditions => {
>         :state => ['public', 'on_sale']
>       }
>     }
>   }
> 
> controller:
> 
>       search_options = { page: params[:page] || 1, per_page: 40, match_mode: 
> :any, star: true }
>       ...
>       @items = Item.for_public_sphinx.search(params[:q], search_options)
> 
> But I can't make it return the correct items, I tried also with `with` 
> instead of conditions, changing the match_mode to extended, use directly 
> state as `indexes` but I get mixed results or sometimes errors.
> 
> With the configuration above I get items matching my search query, but also 
> items with state private.
> 
> Any pointers are appreciated, thanks.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/thinking-sphinx/-/kc2l8R9MflsJ.
> 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