在SQL Server 2008中,当设置全文搜索时,它给了我一个选择一个时间/天来重新填充索引的选项,我可以用代码来做这件事吗? C#代码?如果是的话,我会怎么做呢?我需要从C#执行SQL代码来刷新索引吗?刷新全文搜索索引
另外,如果我不重新填充索引并添加一些新的记录,通过使用FTS查询将新的记录仍然会出现?但速度较慢?或者,除非我重新编制索引,否则他们根本不会出现?
在SQL Server 2008中,当设置全文搜索时,它给了我一个选择一个时间/天来重新填充索引的选项,我可以用代码来做这件事吗? C#代码?如果是的话,我会怎么做呢?我需要从C#执行SQL代码来刷新索引吗?刷新全文搜索索引
另外,如果我不重新填充索引并添加一些新的记录,通过使用FTS查询将新的记录仍然会出现?但速度较慢?或者,除非我重新编制索引,否则他们根本不会出现?
编辑:当心,有保留的FT指数电流的方法有两种:
前一种方法是+/-透明用于底层目录用户继续服务,后者意味着服务的部分损失,而指数被重新填充(尽管可能不是在2008?)
这个问题涉及的是什么类型的更新或重新填充有点不清楚,所以下面的回答是通用的。
1)是的!全文索引重新填充(或更新)可以通过编程方式使用一个普通的TSQL查询来完成,如下所示。这样的查询可以很好地从C#代码调用,使用OLEDB甚至ODBC。
ALTER FULLTEXT INDEX ON myCatalog START START FULL POPULATION; -- for full (re-)population
ALTER FULLTEXT INDEX ON myCatalog START UPDATE POPULATION; -- for update
2)是,在FTS索引将反映更改数据库,在接近实时,只要它是相应地设置。
您需要设置“更改跟踪”的FT索引,以便能够维持索引当前。这是必要的条件。通过更改和新记录列表(来自更改跟踪),SQL可以“实时”更新FT索引(使该索引略微落后于实时数据库的更新;延迟是因为更新到FT索引是有点缓冲,也因为这种类型的更新通常是关于服务器上CPU使用率的低优先级),或者这可以“手动”完成(手动引用是因为“显式”可能更多适当的,对于这样的手动更新很可能被安排并因此“自动”发生。)
查看此Microsoft technet article了解更多信息。 (同时查看本文底部的链接,了解FT索引等的概况)