我在PHP / MySQL的票务系统上工作。 我们在布尔模式下实现了mysql FTS,为用户提供搜索功能。 用户输入搜索字符串,我们向她提供问题列表。
以下是示例数据库架构:
问题表 - ( ID ,标题,说明)
它有fts索引(标题,描述)
issue_comments表 - ( id , issue_id ,评论)
它有fts索引(评论)
每个问题都可以有多个评论。 因此,issue_comments表中可以有多行与问题表
中的行相对应假设用户输入搜索字符串 - alpha beta
php脚本会在单个单词中断开字符串,在每个单词之前附加“ + ”符号并执行以下查询。
select id as issue_id from issues where match(title, description) against ('+alpha +beta' in boolean mode)
union
select id as issue_id from issues inner join issue_comments on issue.id=issue_comments.issue_id where match(comment) against ('+alpha +beta' in boolean mode)
搜索所有问题 在(标题,描述)中有alpha和beta 或者在问题的一个评论中同时包含alpha和beta。
但这种设置有局限性 如果问题标题中存在alpha并且其评论中存在beta,我想在搜索结果中出现问题。以上设置无法做到这一点 我怎样才能做到这一点?
答案 0 :(得分:0)