Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用FTS查询,您是否可以找到包含';abc&x27;_Sql_Sql Server_Tsql_Full Text Search - Fatal编程技术网

Sql 使用FTS查询,您是否可以找到包含';abc&x27;

Sql 使用FTS查询,您是否可以找到包含';abc&x27;,sql,sql-server,tsql,full-text-search,Sql,Sql Server,Tsql,Full Text Search,我不熟悉全文搜索,如何在下面的查询中使用Contains而不是like来执行搜索 Select * From Students Where FullName LIKE '%abc%' 谢谢类似于: SELECT * From Students Where CONTAINS(FullName,'abc') 检查上次使用此脚本填充目录的时间: DECLARE @CatalogName VARCHAR(MAX) SET @CatalogName = 'FTS_Demo_Catalog'

我不熟悉全文搜索,如何在下面的查询中使用Contains而不是like来执行搜索

Select * From Students Where FullName LIKE '%abc%'
谢谢

类似于:

SELECT * From Students Where CONTAINS(FullName,'abc')

检查上次使用此脚本填充目录的时间:

DECLARE @CatalogName VARCHAR(MAX)
SET     @CatalogName = 'FTS_Demo_Catalog'

SELECT
    DATEADD(ss, FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateCompletionAge'), '1/1/1990') AS LastPopulated
    ,(SELECT CASE FULLTEXTCATALOGPROPERTY(@CatalogName,'PopulateStatus')
        WHEN 0 THEN 'Idle'
        WHEN 1 THEN 'Full Population In Progress'
        WHEN 2 THEN 'Paused'
        WHEN 3 THEN 'Throttled'
        WHEN 4 THEN 'Recovering'
        WHEN 5 THEN 'Shutdown'
        WHEN 6 THEN 'Incremental Population In Progress'
        WHEN 7 THEN 'Building Index'
        WHEN 8 THEN 'Disk Full.  Paused'
        WHEN 9 THEN 'Change Tracking' END) AS PopulateStatus
FROM sys.fulltext_catalogs AS cat
您可能需要重新填充全文索引以查看当前结果。如果定义了FTS列,然后将数据加载到表中,则搜索索引不是最新的

如果您需要定期更新此内容,请访问Tech Net

如果“abc”与您真正想要的内容部分匹配,请更改您的CONTAINS语句,如下所示:

SELECT   * 
FROM     Students 
WHERE    CONTAINS(FullName, '"abc*"')


来源:

我认为这是不正确的,我插入了三条类似“abc bbb 123”的记录,并尝试了该查询。它返回03行。因为FTS在单词边界上工作。然而,LIKE查询返回1100条记录!!这可能不是查询本身的问题,而是目录索引选项的问题。1) 您是否设置了FTS目录计划?2)上次运行是什么时候?索引已填充,我认为没有问题!!但是你如何验证呢?看我回答中的图片。我不确定您是否可以看到“上次更新”值,除非您设置了时间表。但是你可以重新填充它,然后再测试一次。我不知道“安踏Beteftiya”是什么意思。但我意识到我的代码中有一个拼写错误,我写的是“FORM”而不是“FROM”。再试一次?另外,在你的相关帖子“为什么我要麻烦使用全文搜索?”@,你提到有数百万条记录。数百万行的索引过程可能需要数小时。您需要后退一分钟,确保1)插入行后已填充目录,2)如果刚刚开始填充目录,则确保它已实际完成。
SELECT   * 
FROM     Students 
WHERE    CONTAINS(FullName, '"*abc*"')