我在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,并希望得到斯芬克斯索引的所有笑话。
我在做什么是对的?
答案 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:)