全文索引(CONTAINS)不返回所有结果,总是截断

问题描述 投票:0回答:0

在我的 db (microsoft sql) 表中索引的超过 1 亿文本(出版物摘要)中,我想获取所有包含短语“机器学习”的摘要。为此,我创建了如下全文:

CREATE FULLTEXT CATALOG ftCatalogForAbstract AS DEFAULT;

CREATE UNIQUE NONCLUSTERED INDEX IX_ABSTRACT 
ON ABSTRACT_table (ID)

CREATE FULLTEXT INDEX ON ABSTRACT_table
(
    ABSTRACT                      --Full-text index column name 
    Language 2057                 --2057 is the LCID for British English
)
KEY INDEX IX_ABSTRACT ON ftCatalogForAbstract
WITH CHANGE_TRACKING AUTO

现在我可以查询:

SELECT * FROM ABSTRACT_table
WHERE CONTAINS(ABSTRACT, '"machine learning"')

每当我运行查询时,我总是得到不同的结果集(有时 19K 行,有时 43K 行......)。如果我没记错的话,这里有说明link

那么有没有办法稳定的得到所有的结果呢?此外,我看到我的查询返回包含“机器学习”的摘要,尽管排序规则是 CS。创建全文索引时我错过了什么吗?

编辑: 显然我太不耐烦了。当我运行创建完整索引查询时,它立即完成,这让我很困惑。但我猜它必须花费一些时间才能完成索引。所以在周末过去后,当我多次运行相同的搜索查询时,我总是得到相同的结果。

sql sql-server full-text-search contains full-text-catalog
© www.soinside.com 2019 - 2024. All rights reserved.