【问题标题】:SQL Server Full Text Search to find containing charactersSQL Server 全文搜索以查找包含的字符
【发布时间】:2017-12-06 09:40:02
【问题描述】:

我有一个表,其中有一列 Document 是全文索引。 假设我在这张表中有这个:

| ID | Document                    |
| 1  | WINTER  SUMMER SPRING OTHER |

我的要求是找到包含“ER”的行。

为此,我这样查询:

SELECT TOP 100 
    [FullTextSearch].[Document], [FullTextSearch].[ID]
FROM 
    [FullTextSearch] 
WHERE  
    CONTAINS(Document, '"*ER*"')

但这不起作用。

请建议使用 FullTextSearch 的最佳方法。

我希望 id 1 应该返回。

【问题讨论】:

  • 标记您正在使用的 dbms。该查询是特定于产品的。
  • @jarlh Microsoft SQL Server
  • 您的预期结果是什么?我不明白你的表结构。
  • 看看这篇文章,看看包含在 FTS 中是如何工作的:csharpvault.com/blog/sql-server-full-text-search

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


【解决方案1】:

您可以使用 LIKE 运算符来查找值。

LIKE 运算符在 WHERE 子句中用于搜索列中的指定模式。

有两个通配符与 LIKE 运算符一起使用:

% - 百分号代表零个、一个或多个字符 _ - 下划线代表单个字符

语法,

选择第 1 列,第 2 列,... FROM 表名 WHERE columnN LIKE 模式;

这个查询可以帮助找到结果。

从全文搜索中选择文档、ID WHERE Document LIKE '%ER%';

【讨论】:

    【解决方案2】:

    这是一个通配符查询...这应该可以。

     SELECT TOP 100 
    [FullTextSearch].[Document], [FullTextSearch].[ID]
    FROM 
    [FullTextSearch] 
    WHERE  
    Document like '%ER%'
    

    ========OR=============

       SELECT TOP 100 
            [FullTextSearch].[Document], [FullTextSearch].[ID]
        FROM 
        [FullTextSearch] 
        WHERE  
        CONTAINS(Document, '%ER%')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 2016-09-18
      • 2011-02-08
      • 1970-01-01
      相关资源
      最近更新 更多