如何搜索sphinx以获取带ID的记录?

时间:2013-12-12 05:36:33

标签: php sphinx

我在PHP项目中使用Sphinx搜索。我需要从带有ID的Sphinx索引中找到一条记录。我有ID,只想查询Sphinx索引的特定记录,而不是直接查询数据库。

我的情景:

我有sql表中的标签列表和另一个表中的笑话列表。我有一个名为“jokes_tags”的连接表,它有两个id。现在我需要获取特定标签的所有笑话。

我的索引:

我正在使用以下设置索引Jokes表。

sql_query = SELECT entry_id, entry, picture_url,tags,date_added FROM jokes

我当前的流程:

目前我正试图找出非常确切的标签(意思是,如果标签是'有趣的笑话'我不想要像'有趣的笑话模因'那样的匹配)是否可用,如果它可用的话,我正在服用它的ID并通过“jokes_tags”搜索关联笑话id。现在我有了笑话ID,并希望得到斯芬克斯索引的所有笑话。

我在做什么是对的?

1 个答案:

答案 0 :(得分:0)

最好在sphinx索引中包含'joke_tags'数据;所以你可以通过在查询中使用tag_id获得一个笑话列表。 MVA非常适合这个....

sql_attr_multi = uint tag_id from query; SELECT joke_id,tag_id FROM jokes_tags ORDER BY joke_id

然后就可以了

$cl->setFilter('tag_id',array($tag_id));

使用您在标签表中查找的tag_id:)