2011-05-05 56 views
1

我想为招聘代理模式制作一个标签系统,并且喜欢这样分隔标签和搜索其余短语的方式。你会如何重现一个StackOverflow使用的标记系统?

你怎么会在一个表中搜索查询等比较标签...

我想出了下面的,但它有一些hickups ...

  1. 用户输入搜索查询
  2. 全文SQL包含tbl_tags
  3. 返回5个结果
  4. 检查每一个“确切的标签短语”在原来的查询字符串是否存在()搜索。
  5. 如果确实存在,则将tagID添加到数组中。
  6. 从原始搜索字符串中删除标签名称...
  7. 在tbl_people中搜索带有链接TagID的用户,并使用剩余文本搜索文本字段。

实例搜索:法国的项目经理与甲骨文经验

标签:[法国] [项目经理] s的甲骨文]经验

剩余的文本:s的经验

现在问题来了,当我搜索项目经理时,它留给我一个盈余“s”...也有可能与此逻辑的其他错误,我不能说明...

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

在此先感谢,我知道这可能是一个有点抽象的问题......

+0

过滤这个问题可能是更合适的[元](http://meta.stackoverflow.com/)。 – 2011-05-05 11:02:22

+0

嗯好吧,我该如何移动它? – 2011-05-05 11:05:50

+0

选择“其他”并输入您的请求来移动它。 – 2011-05-05 11:08:04

回答

1

你错过的StackOverflow上如何完成其​​搜索的关键因素。 SO要求用户通过明确地在标签周围放置括号来描述搜索字符串中的标签。 (可能是简化的)逻辑就是。

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

如果您搜索web开发,它就会知道它带有或不带括号的标签... – 2011-05-05 11:18:22

+0

@Chris - 有趣的是,出现在“how-to”中。对最后一页标签上的标签进行一点试验表明,它不适用于所有标签。我怀疑有一个“最常用”或“最多搜索”列表,用于在步骤1之后扫描搜索字符串中的标记。我将更新。 – tvanfosson 2011-05-05 11:23:53

+0

谢谢,我想知道它是如何知道例如......“网络发展”作为一个短语和网络开发作为标签之间的区别.. – 2011-05-05 11:25:34

相关问题