您将如何重现像 StackOverflow 使用的标记系统?

发布于 2024-11-05 09:06:33 字数 569 浏览 1 评论 0原文

我正在尝试为招聘机构模型制作一个标签系统,并且喜欢 SO 分隔标签并搜索剩余短语的方式。

您如何将表中的标签与搜索查询等进行比较...

我提出了以下内容,但它有一些问题...

  1. 用户输入搜索查询
  2. 全文 SQL contains() 在 tbl_tags 上搜索
  3. 返回 5 个结果
  4. 检查是否每个“精确标记短语”都存在于原始查询字符串中。
  5. 如果存在,则将 tagID 添加到数组中。
  6. 从原始搜索字符串中删除标签名称...
  7. 在 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...

  1. User enters search query
  2. Full text SQL contains() search on tbl_tags
  3. Returns 5 results
  4. Check if each "exact tag phrase" exists in original query string.
  5. If it does exist then add tagID to array.
  6. Remove tag names from original search string...
  7. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

玩物 2024-11-12 09:06:33

您忽略了 StackOverflow 搜索方式的一个关键要素。 SO 要求用户通过在标签周围显式放置括号来描述搜索字符串中的标签。那么(可能是简化的)逻辑就是。

  1. 使用正则表达式提取标记的标签来检测括号内的内容
  2. 使用最常见的标签列表,扫描字符串以查找未标记的标签并提取它们。
  3. 删除标签元字符
  4. 执行全文搜索,按标签过滤

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.

  1. Extract marked tags using regex to detect contents inside brackets
  2. Using list of most common tags, scan string for unmarked tags and extract them.
  3. Remove tag meta characters
  4. Perform full-text search, filtered by tags
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文