我正在尝试创建一个可以搜索的相对简单的分层标记系统。这是它现在的工作方式,这是 MySQL 表结构:
--------------------------------------------
id | tag | parentID | topParentID |
--------------------------------------------
1 | Boston | NULL | NULL |
--------------------------------------------
2 | Events | 1 | 1 |
--------------------------------------------
3 | June 30th | 2 | 1 |
--------------------------------------------
4 | NYC | NULL | NULL |
--------------------------------------------
5 | Attractions | 4 | 4 |
--------------------------------------------
因此,如果用户在搜索栏中键入波士顿,他们将收到建议“波士顿活动”和“波士顿活动 6 月 30 日”。同样,如果他们在搜索栏中输入 NYC,他们将收到“NYC Attractions”作为建议。
此外,如果有人在搜索栏中输入事件,他们会得到建议“波士顿事件”,或者如果他们输入 6 月 30 日,他们会得到建议“波士顿事件 6 月 30 日”
我已经弄乱了代码来做到这一点,我绝对可以将查询字符串分解为关键字,然后在标签表中搜索每个关键字并返回匹配项,但我还没有找到正确的方法来返回完整的标签字符串我上面提到的格式。