如何搜索允许标记的数据库列?

时间:2009-04-10 13:11:03

标签: .net sql-server-2005 search full-text-search markup

可以使用markdown,bbcode,html等将文本存储在数据库中。我应该从搜索条件中删除任何允许的标签吗?您的标记解析器是否有任何方法可以帮助完成该任务?

我打算使用之类的'%searchword%'查询。全文搜索是否为这种简单的文本搜索提供了任何优势?

更新:似乎有很多方法可以做到这一点。我会稍微澄清一下我的情况。这是一个公司的招聘网站,大约有5或7个varchar列可供搜索(其中4个将允许标记),在任何给定时间大约有150个活动的职位发布。

3 个答案:

答案 0 :(得分:3)

如果您的文字中有任何类型的标记(例如HTML),则在索引和搜索过程中可能无法获得出色的语言准确性。在这种情况下,您有两个选择 - 首选方法是将文本数据存储在varbinary(max)列中,并指示其文档类型以便可以对其进行过滤。如果这不是一个选项,您可以考虑使用中性分词器,如果可能的话,在噪音词列表中添加标记数据(例如HTML中的“br”)。

另见

<强>替代

答案 1 :(得分:2)

我会使用一些外部全文搜索工具 - 例如,Lucene。

答案 2 :(得分:1)

我会在单独的字段中存储该字段的条带版本,并使用全文索引搜索。剥离的字段将使用触发器

更新为最新版本