【问题标题】:How to optimize formatted text storage in MS SQL for search feature?如何优化 MS SQL 中的格式化文本存储以实现搜索功能?
【发布时间】:2011-08-15 10:35:56
【问题描述】:

我将在 mssql 数据库中存储一些将在 ASP.NET 页面上显示的文章(采用 XHTML 格式),并且我将提供一些搜索功能。 现在我有几个问题:

  1. 哪种数据库类型最适合存储文本?
  2. 如何在该字段中进行搜索(LIKE 是否适合长文本)?
  3. 如何在不查找格式化标签中的数据的情况下执行搜索?例如,当用户搜索“spa”时,它不应该匹配 span 元素(一个简单的 LIKE 会这样做)。

要插入格式化数据,我将使用 ASP.NET 控件,但我还没有选择任何控件,通常它们的输出是 XHTML。或许你也可以推荐一个这样的控件和DB表结构的“包”?

提前致谢。

【问题讨论】:

    标签: .net asp.net sql-server tsql


    【解决方案1】:

    1) 如果您要存储任意长度的文本,我会一直使用 NTEXT。 您可以使用 NVARCHAR(MAX) ,但是关于这个选择有很多优点和缺点;一个重要的问题是性能以及根据大小存储数据的位置。 (如果小于 8000 字节则使用表行,如果大于则使用 LOB 存储)。

    2) 您可以将 LIKE 与 NTEXT 一起使用,但 NTEXT 也使您能够使用全文索引。

    3)如果您使用全文索引,则可以避免 HTML 标记,这是另一个关于此细节的 SO 答案:

    How to ignore html tags in Sql Server 2008 Full Text Search

    【讨论】:

    • 广告 3。是的,我看到了,但它只包含简单的标签,没有属性。
    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 2020-11-29
    • 2020-10-20
    • 2012-05-05
    • 2011-10-23
    • 1970-01-01
    • 2021-01-31
    • 2016-11-17
    相关资源
    最近更新 更多