我在PHP项目中使用Sphinx搜索。我需要从Sphinx索引中找到一个ID为的记录。我有ID,只想查询特定记录的Sphinx指数,而不是直接查询数据库。
我的场景:
我在sql表中有标签列表,在另一个表中有笑话列表。我有一个名为"jokes_tags"的连接表,它有两个id。现在我需要获取特定标签的所有笑话。
我的索引:
我正在用以下设置为笑话表编制索引。
sql_query = SELECT entry_id, entry, picture_url,tags,date_added FROM jokes
我的当前流量:
目前,我正在努力寻找一个非常准确的标签(意思是,如果标签是"搞笑笑话",我不想要像"搞笑笑话迷因"这样的匹配)是否可用,如果可用,我会获取它的ID,并在"jokes_tags"中搜索相关的笑话ID。现在我有了jokes ID,并希望从狮身人面像索引中获得所有笑话。
我所做的是对的?
最好将'joke_tags'数据包含在sphinx索引中;因此,只需在查询中使用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));
使用您在标签表中查找的标签id:)