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

时间:2011-05-05 11:00:47

标签: sql search logic tagging

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

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

我已经提出了以下内容,但它有一些结果......

  1. 用户输入搜索查询
  2. 全文SQL包含()搜索tbl_tags
  3. 返回5个结果
  4. 检查原始查询字符串中是否存在每个“确切标记短语”。
  5. 如果确实存在,则将tagID添加到数组中。
  6. 从原始搜索字符串中删除标记名称...
  7. 在tbl_people中搜索具有关联TagID的人,并使用剩余文本搜索文本字段。
  8. 搜索示例:具有Oracle经验的法语项目经理

    标签:[法语] [项目经理]有[Oracle]经验

    剩余文字:有经验

    现在问题出现了,当我搜索项目经理时,它给我留下了剩余的“s”......而且这个逻辑可能还有其他错误,我无法解释......

    关于如何使逻辑完美的任何想法?

    先谢谢,我知道这可能是一个抽象的问题......

1 个答案:

答案 0 :(得分:1)

您错过了StackOverflow如何进行搜索的关键要素。因此,要求用户通过在标记周围明确放置括号来描绘搜索字符串中的标记。那么(可能是简化的)逻辑就是。

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