我的目标是从Windows Search API(资源管理器使用的同一内容)中获取结果摘要(也称为查询偏爱的摘要)。
类似的帖子:
我的重点是System.Search.QueryFocusedSummary
属性(https://msdn.microsoft.com/en-us/library/windows/desktop/bb760171(v=vs.85).aspx),因为它是应该提供我所需要的唯一(半)文档化字段。如果只使用.NET(C#)或C ++本机代码可行,我愿意采用不同方法。
我有一个使用C ++实现的有效搜索工具,该工具成功使用OLE DB API进行搜索
本地Windows计算机(假设已启用索引编制)并返回诸如System.ItemName
,System.MIMEType
,System.Size
等结果。
还可以获得System.Search.AutoSummary
字段,该字段基本上只是人类可读文件的前N个字符(例如UNIX head
)。有关更多信息,请参见this Microsoft page。
If I understand correctly,在System.Search.QueryFocusedSummary
属性是“虚拟”的意义上,它是由Windows(在某个时间点)动态创建的,并且不存储在Index数据库中。因此,无法使用OLE DB方法访问它。
尽管Microsoft正式“退出”了Windows API代码包,但是此页面(及其链接的其他页面)描述了如何使用Windows Search SDK。我遵循了de facto Windows API Code Pack repository中的Search App示例,并添加了QueryFocusedSummary
属性来代替现有的提取属性之一。这没有任何效果,并且所有搜索结果的属性 still 为空。
是否有人对如何从Windows Search API获取搜索摘要有任何见解?我只关心本地客户端Windows搜索。