Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 与Sphinx的匹配结果错误_Mysql_Sphinx - Fatal编程技术网

Mysql 与Sphinx的匹配结果错误

Mysql 与Sphinx的匹配结果错误,mysql,sphinx,Mysql,Sphinx,sphinx配置中的Mysql查询: SELECT c.id, c.name, p.vendor FROM categories AS c LEFT JOIN ( SELECT DISTINCT vendor, category_id FROM clothes ) p ON c.id = p.category_id ORDER BY c.name 查询给出了这样的结构(我把这个结果称为A):

sphinx配置中的Mysql查询:

SELECT
    c.id,
    c.name,
    p.vendor
FROM
    categories AS c
LEFT JOIN (
    SELECT DISTINCT
        vendor,
        category_id
    FROM
        clothes
) p ON c.id = p.category_id
ORDER BY
    c.name
查询给出了这样的结构(我把这个结果称为A):

Sphinx匹配模式为SPH_match_ANY。 当我试图进行
查询('dress')
时,问题就开始了,结果是

178 dress   Liu Jo Jeans
190 dress   Moda Corazon
但我需要
name
vendor
字段包含“dress”(预期结果A不带靴子)的所有结果

我做错了什么?提前谢谢

达尼洛·布斯托斯的更新
类别结构:
id(整数,自动递增)、name(varchar,255)、parent\u id(整数)

服装结构:
id(整数,自动递增)、name(varchar,255)、vendor(varchar,255)

预期结果:

id  name    vendor
178 dress   Liu Jo Jeans
178 dress   Bergamoda
178 dress   Rifle
190 dress   Moda Corazon
190 dress   Bergamoda

您的主要问题之一是sphinx中的“文档id”应该是唯一的。您似乎正在使用category_id。但是,结果A中有多行具有相同id。这会导致Sphinx中出现不可预测的结果

一般来说,您应该使用衣服的id作为document-id。因此可以获得多行,因为它应该是唯一的。如果仍然希望结果集包含category_id,则可以将其放入sphinx属性中


(可能需要更改“内部”查询以获取联接表中的id,使用GROUP BY而不是DISTINCT进行重复数据消除。虽然可能根本不需要重复数据消除,但两个表之间的标准联接可能就可以了)

能否复制表的结构并定义预期结果的示例?Main post更新
id  name    vendor
178 dress   Liu Jo Jeans
178 dress   Bergamoda
178 dress   Rifle
190 dress   Moda Corazon
190 dress   Bergamoda