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
);

、 、、およびタグdocumentsを検索できるようにしたいと考えています。titlecontent

これまでのところ、次の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 に答える