Thinking Sphinx検索の関連付けに「IS NOT NULL」条件を追加するにはどうすればよいですか?たとえば、私たちは、次のインデックスを持つ記事のモデルを持っている場合...Thinking Sphinx検索の関連付けに「IS NOT NULL」の条件があります
ThinkingSphinx::Index.define :article, :with => :active_record do
indexes subject, :sortable => true
indexes content
has pictures(:id), as: :picture_ids
end
..and我々は、特定のキーワードが含まれているし、絵を持っているすべての記事を検索したいです。記事と写真は、それがhere記載されているように、簡単なhas_many
関係
class Article < ActiveRecord::Base
has_many :pictures, -> { where 'pictures.type' => 'ArticlePicture' }
動作するように使用の次の行によって関連していないが、もはや何
Article.search(keyword, without: {picture_ids: 0})
:-(動作しているようですしていますそれを行うための正しい方法私はあなたがSQLスニペットを追加属性を追加することができSphinx2.2.10
とthinking-sphinx3.2.0
ないTSの専門家が、「絵があります(ID)を」ん暗示を関係?つまり、ピクチャIDは別のデータベーステーブルからロードされます。場合によっては2つの問題があると、A)はテーブルの「LEFT JOIN」ではなく「INNER JOIN」を実行してしまいます。そのため、画像のないレコードは単に失われます。しかし、B)もSphinx MVAで終わるならば、写真がないときは、単一の0を持つリストではなく空のリストです。 – barryhunter