问题标签 [windows-search]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - Windows 搜索中属性的最大矢量大小
在 Windows 搜索中索引 PDF 文件时,我遇到了限制,特别是 System.Keywords 属性的数组大小。最多 20 个标签一切正常,但索引中不包含任何其他标签。
我的第一直觉是查看 IFilter 正在捕获什么,并使用 filtdump.exe 得到以下输出。
所以我可以看到所有的标签都被检索到了,但最终的标签被截断了。
对 System.Keywords 的属性模式进行转储,我得到以下信息:
还查看System.Keywords的文档,没有提到最大大小或项目限制。
再次查看文档,提到了 maxSize 属性:
可选的。指示存储在 Windows 搜索数据库中的属性值允许的最大大小。此限制适用于向量的各个元素,而不是整个向量。超出此大小的值将被截断。默认值为“128”(字节)。目前,Windows Search 在计算它从文件中接受的数据量时不使用 maxSize。相反,Windows Search 使用的限制是文件大小和从注册表中读取的 MaxGrowFactor(文件大小 N * MaxGrowFactor)的乘积,位于 HKEY_LOCAL_MACHINE->Software->Microsoft->Windows Search->Gathering Manager->MaxGrowFactor。默认 MaxGrowFactor 为四 (4)。因此,如果您的文件类型的总大小往往较小但具有较大的属性,Windows Search 可能不接受您要发出的所有属性数据。但是,您可以增加 MaxGrowFactor 以满足您的需要。
但是,我不清楚这是否会影响数组的大小。我猜这种截断发生在 Windows Search 的 Gatherer 组件中,所以我想知道是否涉及任何注册表设置。
FWIW 我确实使用ESE 数据库视图实用程序查看了 Windows 搜索数据库 (Windows.edb),我可以从架构中看到列类型是大型二进制类型,因此那里不应该有限制。查看原始值,我可以看到标记值的字节(由 NUL 字符分隔)并以 @ 字符结尾。但是只有 20 个值而不是 21 个确认限制。
我已经完成了我的研究,但我还没有走得更远。是否可以扩展 System.Keywords 的数组大小,还是 Gatherer 组件中的硬编码限制?任何帮助将不胜感激,在此先感谢!
com - 具有自定义属性的 IFilter
我正在为我的文件格式开发一个自定义过滤器。<propkey.h>
当我使用来自like的任何系统键时,一切正常PKEY_Search_Contents
。
但现在我需要有我的自定义属性来注册和使用 Windows 搜索。想象:
我看到了 Property Handlers 并且已经测试过了。我使用了RecipePropertyHandler
Windows 7 SDK 示例中的项目。当我用这段代码搜索时:
我收到正确的答案。
但我不明白如何联合IFilter
来IPropertyStore
创建我的自定义属性。要开始我的IFilter
,我使用了来自 的示例Windows 7 SDK Samples
。我正在做类似的事情:
我再也找不到链接了,但是我读到了 msdn 的一段关于你不能一起实现IFilter
AND的引用IPropertyStore
。这是真的吗?换句话说,我不能创建自定义属性?
我看到了来自 msdn 的所有链接,例如link、link2或任何其他链接。我可以做单独的事情,但我不知道如何将两者结合起来。
任何想法如何实施?
编辑
我正在尝试实现 PropertyHandler。我的 .propdesc 文件有以下内容:
我从文件中收到所有信息...但是当我尝试使用 Windows Search 进行搜索时,例如:
其中目录='somedirectory'
我收到所有行都是空的...任何想法为什么?
编辑
我可以在 PropSchema 上看到我的属性:
我可以在我的 WSSQL 查询上使用我的 Microsoft.SampleRecipe.DifficultyV2,例如:
但是所有的内容都是空的
c# - 如何在本地和远程计算机上使用 Windows 搜索服务?
我正在开发一个可以在指定目录路径上搜索文件的 C# WPF 项目。这些路径可以在本地机器上也可以在远程机器上,所以我必须在两者上解决它。
起初我尝试使用具有本地路径的查询,但 OleDbDataReader 类返回零记录。我确信我已经以相应的方式调整了所有内容,例如索引选项包含正确的路径:-或在文件资源管理器中:-并且文件类型包含列表中的 txt 文件:
本地搜索代码:
后来我尝试连接到 Windows Server。服务器路径是正确的,因为我可以通过文件资源管理器浏览服务器文件 - 这是一个 VPN 连接 -。索引选项也在这里正确调整。但问题是我不能使用上面的连接方法,因为GetCatalog方法不支持远程连接 - 所以我尝试了这个方法。我找到了一个可以在下面看到的示例,但是在这里我得到了一个例外,例如:
System.UnauthorizedAccessException: 'Retrieving the COM class factory for remote component with CLSID {[CLSID]} from machine [SERVER NAME] failed due to the following error: 80070005 [SERVER NAME].'
问题是当我尝试添加 CLSID 时。我不知道在哪里可以得到这个 ID,因为我没有找到任何具体的解决方案。在这里,我需要一些帮助,例如我的 CLSID 是什么,以及如何获取它?
远程搜索代码:
vb.net - 当文本转换为大写时,Windows Search 无法找到文件
我对 Windows 搜索引擎有一个奇怪的问题。当我在 Windows 10 开始菜单搜索栏中搜索希腊词 Όρος 时,我得到了预期的结果。
当我通过 VB.Net 搜索时,找不到任何结果。我已将问题缩小到最后一个字母“ς”。删除它可以让搜索成功。任何人都知道问题可能是什么?
sql-server - 通过替换字符自定义 SQL Server 全文搜索中的规范化
我想自定义 SQL Server FTS 以更好地处理特定于语言的功能。
在波斯语和阿拉伯语等许多语言中,有相似的字符在适当的搜索行为中它们应该像这些组一样视为相同的字符:
- ['آ' , 'ا' , 'ء' , 'ا']
- ['ي' , 'ی' , 'ئ']
目前我最好的解决方案是将重复数据存储在新列中,并用代表成员替换这些字符,并规范化搜索词并在重复列中执行搜索。
有没有办法告诉 SQL Server 将这些组的任何成员视为相同的字符?
sql - 通过查询 Windows 搜索索引获取文件的全部内容
我编写了这个 shell 脚本来查询 Windows 搜索索引。
它返回文件的所有元数据,但我也想获取文件的所有内容。有什么办法吗?
这是 SYSTEMINDEX 列属性的链接: https ://docs.microsoft.com/en-us/previous-versions//ff521735(v=vs.85)?redirectedfrom=MSDN
windows-10 - Windows 10 搜索不包括带点名称的文件夹?
我的许多开发存储库文件夹都被自动添加到桌面搜索的排除列表中。我将它们从排除列表中删除,并在重新编制索引后,它们再次被放回该列表中。我尝试过重置、重建和所有其他搜索技巧,包括 W10 > 1904 的 powershell 重置。
其中许多文件夹都是点格式(因此文件夹名称将是“company.serviceType.service”,即 agilliance.webapi.custapi。)。该文件夹内是 .sln 文件、.cs 文件等。
Windows 搜索是否有虚线文件夹名称的问题?有什么办法解决这个问题吗?
WinVer 为 20H2 19042.804
问候,马克。