Sphinx search / Filter provides different results then same query against database

StackOverflow https://stackoverflow.com/questions/21761856

  •  11-10-2022
  •  | 
  •  

質問

In my config file ..

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

when i run ....

search --filter item_family_id 12

I get a total of 26 documents found.

on the database when i run (the exact same query (i think))...

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
join product_cats as pc on pc.product_id = pr.id

where pc.item_family_id = 12

I get 41 results.

Shouldn't these two be identical? What am i doing wrong. TIA

役に立ちましたか?

解決

First of all you use different joins (LEFT JOIN in first query and JOIN in second). Second, you can run mysql client and watch to your index content using:

SELECT * FROM your_index LIMIT 100; 

It can be that your query to sphinx returns only part of results.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top