2

例如,我有 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
);

我希望能够搜索documentstitlecontentfor 标签。

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

sql_query SELECT id, title, content FROM documents

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

4

1 回答 1

3

您可以在 sql_query 中使用带有 group_concat 的子选择来检索它们,但更好的方法是使用 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
于 2013-01-10T20:55:23.397 回答