Thinking Sphinx и ActiveRecord default_scope

Можно ли как-нибудь пропустить применение default_scope ActiveRecord::Base к результатам поиска Thinking Sphinx?

https://gist.github.com/1378847


person leomayleomay    schedule 19.11.2011    source источник


Ответы (1)


Просто используйте метод unscoped перед вызовом поиска.

См. дополнительную информацию

ИЗМЕНИТЬ

См. https://github.com/freelancing-god/thinking-sphinx/blob/master/lib/thinking_sphinx/search.rb#L89. Добавьте и выберите :ignore_default, чтобы пропустить области действия. (Но это использует прицелы Sphinx, поэтому необходимо проверить).

person Mark Huk    schedule 19.11.2011
comment
это не работает, я пробовал Article.unscoped.search(...) и Article.unscoped {Article.search(...)}, все они вернули результаты с заданной областью - person leomayleomay; 19.11.2011
comment
@ Марк, тебе не кажется, что это ошибка Thinking Sphinx, в строке 89 отсутствует параметр @ перед - person leomayleomay; 19.11.2011
comment
Article.search(keywords, :ignore_default => true) возвращает результаты с областью действия, не повезло - person leomayleomay; 19.11.2011
comment
Как видно из здесь, по умолчанию ignore_default равно true - person leomayleomay; 19.11.2011
comment
Получите to_sql в «Article.search (ключевые слова)». Затем мы можем выяснить, есть ли проблема в sql или в индексах. - person Mark Huk; 19.11.2011
comment
кажется, я не могу напрямую вызвать to_sql на Article.search - person leomayleomay; 19.11.2011
comment
здесь указывает, что ignore_default используется для игнорирования области видимости sphinx по умолчанию, но области ActiveRecord::Base по умолчанию - person leomayleomay; 20.11.2011