Mysql 斯芬克斯属性问题
假设我有一个广告表,我正试图过滤它。每个广告可以有许多类型,这些类型存储在类型表中,与中间的AuthTyType表相关联。相当标准:Mysql 斯芬克斯属性问题,mysql,sphinx,Mysql,Sphinx,假设我有一个广告表,我正试图过滤它。每个广告可以有许多类型,这些类型存储在类型表中,与中间的AuthTyType表相关联。相当标准: adverts ------- id name types ----- id name advert_types ------------ id advert_id type_id 我只是尝试搜索用户选择的一个或多个类型ID中的所有广告: SELECT a.id, a.name, at.type_id FROM adverts as a LE
adverts
-------
id
name
types
-----
id
name
advert_types
------------
id
advert_id
type_id
我只是尝试搜索用户选择的一个或多个类型ID中的所有广告:
SELECT a.id, a.name, at.type_id
FROM adverts as a
LEFT JOIN advert_types as at
ON a.id = at.advert_id
WHERE at.type_id IN(1,2);
这里我应该注意到,广告不需要有与之关联的类型,因此是左连接
假设类型ID1命名为books,类型ID2命名为Magazine。在上面的查询中,我希望收到所有针对书籍、杂志或书籍和杂志的广告
这在MySQL中工作得很好,但在我的Sphinx索引中效果不太好,这是我的问题。如果我对杂志进行过滤,我只会收到退回杂志的广告;书和杂志都没有。然而,如果我搜索书籍,我成功地得到了我想要的一切。我看不出我错在哪里。我的索引中是否需要其他类型的联接?或者在狮身人面像中使用不同的排序模式
我已经在另一个过滤器中成功地完成了同样的操作,但是在1:1的关系中,因此我认为我的查询和Sphinx处理多个记录的方式存在问题。请包括Sphinx.conf中的“源”部分,目前您还没有指定如何实际索引表,请不要忘记从包含的内容中删除数据库访问详细信息!