今天执行SQL Server 2014的full-text search 查询操作:select * from table where contains(summary, 'smith')
报出如下错误:
Msg 30046, Level 16, State 1, Line 1
SQL Server encountered error 0x8007042d while communicating with full-text filter daemon host (FDHost) process. Make sure that the FDHost process is running. To re-start the FDHost process, run the sp_fulltext_service 'restart_all_fdhosts' command or restart the SQL Server instance.
很好,哥哥后来解决了这个问题:
这个问题很可能是因为FTS (FullTextSearch Service) 停用造成的,但是也不是仅仅如此,往下看:
#1, 打开Services的面板,确定下面的Service运行正常
SQL Full-text Filter Daemon Launcher (MSSQLSERVER)
#2,账户的检查
但是,这里我尽管将其成功运行,依旧存在上面的错误报告。经过更多的研究,发现有一个问题:我将SQL Server 运行在一个域账户下,而Fulltext search却不是用的这个账户,可能是默认账户。
所以,我将域账户配置给这个Service, 并重新启动。并在SQL Server里,运行 “ exec sp_fulltext_service 'restart_all_fdhosts' ”.
并重新构建fulltext search的全文索引,并直线检索操作。 Bingo, 运行良好。