Как вы добавляете условие «IS NOT NULL» для ассоциаций в поиске мышления Sphinx? Например, если мы имеем модель статьи, которая имеет следующий индекс ..Условия «НЕ НУЛЛ» для ассоциаций в поиске мышления Сфинкс
ThinkingSphinx::Index.define :article, :with => :active_record do
indexes subject, :sortable => true
indexes content
has pictures(:id), as: :picture_ids
end
..и мы хотим найти все статьи, которые содержат определенное ключевое слово и иметь картину. Статьи и фотографии не связаны простым has_many
отношений
class Article < ActiveRecord::Base
has_many :pictures, -> { where 'pictures.type' => 'ArticlePicture' }
Следующая строка используется для работы, как описано here, но это уже не похоже на работу :-(
Article.search(keyword, without: {picture_ids: 0})
Что такое правильный способ сделать это, я использую Sphinx2.2.10
и thinking-sphinx3.2.0
не эксперт TS, но «имеет изображение (: ИД),» подразумевает отношение? Т.е. идентификаторы изображения загружаются из отдельной таблицы базы данных. Если это возможно, две проблемы, A) заканчивается запуском «INNER JOIN», а не «LEFT JOIN» на таблицах, поэтому записи без каких-либо изображений просто отсутствуют. Но также B), если в конечном итоге это Sphinx MVA, тогда, когда нет pics, это пустой список, а не список с одиночным 0. – barryhunter