【问题标题】:Best way to literal phrase search a text column in SQL Server在 SQL Server 中文字短语搜索文本列的最佳方法
【发布时间】:2009-04-08 20:28:43
【问题描述】:

我认为全文搜索可以让我以比 LIKE 谓词更优化的方式进行精确的短语搜索,但我了解到它并不能完全做到这一点。

“LIKE”是在表中搜索数千行 TEXT 字段以查找文字字符串的最有效方法吗?

一定要完全匹配……

【问题讨论】:

    标签: sql-server full-text-search sql-like


    【解决方案1】:

    LIKE(string%) 如果您在列上有正确的索引并且您只在值的开头寻找“字符串”,那么 LIKE(string%) 的工作速度会更快。如果“字符串”可能在您的值的中间,您必须使用 LIKE(%string%) ;在这种情况下会触发表扫描,并且速度很慢(通常比全文搜索慢)。 您可以使用全文搜索的 CONTAINS() 函数进行精确匹配。

    【讨论】:

      【解决方案2】:

      显然,CONTAINSLIKE 查询要快...

      http://www.docstoc.com/docs/2280727/Microsoft-SQL-Server-70-Full-Text-Search-What-is-full-text-search

      (可以在该演示文稿的第 19 页上找到简介)

      【讨论】:

        【解决方案3】:

        您使用的是哪个版本的 SQL Server?如果可以的话,我建议用 VARCHAR(MAX) 替换 TEXT(SQL Server 2005 及更高版本)。

        是什么让您说全文不起作用?您是如何设置全文的,您的全文查询是什么样的?

        马克

        【讨论】:

        • 我通过使用 SQL Server Management Studio 设置全文并在我的一个表中的字段上创建具有全文索引的全文目录。我的查询:SELECT TOP 10 serial_no,writer_id,writing,assignment_type,subdate,title FROM write_onsite WHERE CONTAINS(writing'"take it once"')
        • - 查询返回开头有 take 的东西,中间有任意数量的单词,然后是单词“once”。我只想要字面意思“拿一次”
        猜你喜欢
        • 1970-01-01
        • 2021-12-10
        • 2013-08-05
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 2012-01-02
        • 2012-05-18
        • 2014-11-08
        相关资源
        最近更新 更多