使用Sphinx进行简单的标签搜索

时间:2013-01-10 13:20:15

标签: sql postgresql sphinx

例如,我有3个表:

documents (
    id serial PRIMARY KEY,
    title character varying(256),
    content text,
    created timestamp with time zone
);

tags (
    id serial PRIMARY KEY,
    tag_content character varying(128)
);

tag_assoc (
    id serial PRIMARY KEY,
    document_id integer,
    tag_id integer
);

我希望能够documents搜索titlecontent和标记。

我的sql_query到目前为止非常简单,如:

sql_query SELECT id, title, content FROM documents

如何设置Sphinx sql_query以便与每个文档关联的标签与它们连接?

1 个答案:

答案 0 :(得分:3)

你可以在sql_query里面使用group_concat的subselect来检索它们,但更好的方法是使用s ql_joined_field。在你的情况下,看起来像:

sql_joined_field = tags from query; tag.assoc.document_id, \
                   tag_content from tags join tag_assoc on \
                   tags.id=tar_assoc.tag_id order by tag.assoc.document_id asc