【问题标题】:wssql always returning zero rowswssql 总是返回零行
【发布时间】:2010-06-09 04:39:43
【问题描述】:
我正在使用 windows search 4.0 服务 (wssql) 来查找一些文件,它在我的计算机上运行良好,但在我们的服务器上,它有两个驱动器 C: 和 D: 在搜索 D: 时总是返回 0 行:
我也不确定它是否相关,但 cd d: 在命令提示符中返回到 c:。
编辑:好的,当我指定 where scope = 'D:' 时,它似乎只返回零行,同样的事情发生在 c 驱动器中。该驱动器也不是网络驱动器。
【问题讨论】:
标签:
c#
windows
search
full-text-search
【解决方案1】:
只有在索引共享而不是映射的网络驱动器时才能这样做,与上面的 MLNY 相同。本地文件的路径类似于 c:\foo\bar.txt,但如果您共享它们并像远程共享一样查询本地索引,则路径变为 \server\share\foo\bar.txt。通过 UNC/FAT 协议处理程序索引的共享路径自然是 \server\share\dir\file.txt,无需转换任何内容。但是映射的网络驱动器都不是,所以它们的路径是 z:\foo\bar.txt 并且无法自动转换。
出于某种原因,我们不会对股票进行开箱即用的索引。 SMB 协议不允许我们在其他应用程序想要像使用本地文件系统一样打开我们索引的文件时避开它们,因此索引器可能会在您更改文档时锁定您的文档。 Microsoft Office 等编辑器真的不喜欢这样。此外,本地 NTFS 驱动器提供更改日志,因此我们不必在每次启动时重新抓取所有内容,以确保在我们不查看时没有任何更改。 FAT 和 SMB 共享没有这样的日志,因此索引器会在每次启动时重新抓取所有内容,从而导致网络流量负载。如果有很多客户端,同时启动它们(星期一早上?)会导致对文件服务器的 DDoS 攻击。我们宁愿您索引文件并远程查询它们。
【解决方案2】:
事实证明可以指定协议,如果不指定,系统之间的结果会有所不同。将 file: 添加到路径会产生正确的输出。