使用FTS查询,你能找到的所有条目包含“ABC”(Using FTS query, Can you

2019-09-17 02:40发布

我是新来的全文检索,我怎么使用蕴含,而不是使用像下面的查询执行搜索

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

谢谢

Answer 1:

就像是:

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

链接到MSDN文档



Answer 2:

检查时您的目录上一次人口使用这个脚本:

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列,然后加载数据到表中,搜索索引是不是最新的。

如果您需要这是定期更新,看看这篇文章对科技网



Answer 3:

如果“ABC”是你真正需要的部分匹配,改变你的CONTAINS语句是这样的:

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

要么

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

来源: MSDN -包含



文章来源: Using FTS query, Can you find all entries contains 'abc'