Postgresql Sphinx搜索/过滤器提供不同的结果,然后对数据库执行相同的查询
在我的配置文件中Postgresql Sphinx搜索/过滤器提供不同的结果,然后对数据库执行相同的查询,postgresql,sphinx,Postgresql,Sphinx,在我的配置文件中 sql_query = select pr.id, pr.sf_skus, pr.name, pr.description, pr.sf_vendors, pr.sf_product_kw, \ pr.sf_family_kw, pr.sf_class_kw, pr.sf_group_kw, pr.sf_category_kw, \ pr.sf_sku_descriptions, \
sql_query = select pr.id, pr.sf_skus, pr.name, pr.description, pr.sf_vendors,
pr.sf_product_kw, \
pr.sf_family_kw, pr.sf_class_kw, pr.sf_group_kw, pr.sf_category_kw, \
pr.sf_sku_descriptions, \
pc.item_category_id, pc.item_group_id, pc.item_class_id, \
pc.item_family_id \
from products as pr \
left join product_cats as pc on pc.product_id = pr.id
sql_attr_uint = item_category_id
sql_attr_uint = item_group_id
sql_attr_uint = item_class_id
sql_attr_uint = item_family_id
当我跑的时候
search --filter item_family_id 12
我总共找到了26份文件
在数据库上运行时(我认为是完全相同的查询))
我得到41个结果
这两个不应该是相同的吗?我做错了什么。TIA首先,您使用不同的联接(第一个查询中使用左联接,第二个查询中使用联接)。其次,您可以运行
mysql
client,并使用以下命令监视索引内容:
SELECT * FROM your_index LIMIT 100;
可能是您对sphinx的查询只返回部分结果。尝试通过sphinxapi或sphinxql运行查询。不要使用“搜索”工具,因为它没有维护,而且非常破损。它已从最新版本的sphinx中删除,因为它已被遗忘。在实际设置中,它们都是左连接,是的,我确保返回结果的数量没有限制或问题。我也在使用postgres,不知道这是否重要。是的,我知道你在使用postgres。我的意思是sphinxsearch有一个sql客户端(比如postgres的
psql
),您可以使用mysql
运行它。你可以找到一个例子。
SELECT * FROM your_index LIMIT 100;