您将如何重现像 StackOverflow 使用的标记系统?
我正在尝试为招聘机构模型制作一个标签系统,并且喜欢 SO 分隔标签并搜索剩余短语的方式。
您如何将表中的标签与搜索查询等进行比较...
我提出了以下内容,但它有一些问题...
- 用户输入搜索查询
- 全文 SQL contains() 在 tbl_tags 上搜索
- 返回 5 个结果
- 检查是否每个“精确标记短语”都存在于原始查询字符串中。
- 如果存在,则将 tagID 添加到数组中。
- 从原始搜索字符串中删除标签名称...
- 在 tbl_people 中搜索具有链接 TagID 的人员,并搜索包含剩余文本的文本字段。
搜索示例:具有 Oracle 经验的法语项目经理
标签:[法语] [项目经理] 具有 [Oracle] 经验
剩余文本:s 具有经验
现在问题出现了,当我搜索项目经理时,它给我留下了多余的“s”。 ..而且这个逻辑可能还有其他我无法解释的错误...
关于如何使逻辑完美的任何想法?
预先感谢,我知道这可能是一个有点抽象的问题......
I am trying to produce a tagging system for a recruitment agency model and love the way SO separates tags and searches for the remaining phrases.
How would you compare the tags in a table to the search query etc...
I have come up with the following but it has some hickups...
- User enters search query
- Full text SQL contains() search on tbl_tags
- Returns 5 results
- Check if each "exact tag phrase" exists in original query string.
- If it does exist then add tagID to array.
- Remove tag names from original search string...
- Search in tbl_people for people with linked TagIDs and search text fields with remaining text.
Example search : French Project Managers with Oracle experience
Tags : [French] [Project Manager]s with [Oracle] experience
Remaining text : s with experience
Now the problem comes when I search for Project Managers it leaves me with a surplus "s"... and there are probably other bugs with this logic too that I cannot account for...
Any ideas on how to make the logic perfect?
Thanks in advance, I understand this might be a bit of an abstract question...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您忽略了 StackOverflow 搜索方式的一个关键要素。 SO 要求用户通过在标签周围显式放置括号来描述搜索字符串中的标签。那么(可能是简化的)逻辑就是。
You're missing a key ingredient of how StackOverflow does its search. SO requires that the user delineate the tags in the search string by explicitly putting brackets around the tags. The (probably simplified) logic would then be.