【问题标题】:How do you search a database column that allows markup?如何搜索允许标记的数据库列?
【发布时间】:2010-10-18 18:20:56
【问题描述】:

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

我打算使用 like '%searchword%' 查询。全文搜索对这种简单的文本搜索有什么好处吗?

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

【问题讨论】:

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


    【解决方案1】:

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

    另见

    替代方案

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-06-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-11
          • 2015-02-15
          相关资源
          最近更新 更多