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