Windows 7 联合搜索 - 如何让它向我的 .net 程序集发送搜索请求
我试图通过本地 .net 程序集的联合搜索功能在 Windows 7 资源管理器中显示搜索结果。 (不是来自网络服务)
我找到了各种教程,但它们都是针对网络服务的。早些时候我认为这是不可能的,但后来我遇到了 StickyNotes 联合搜索连接器。 .OSDX 文件的内容是:
<?xml version="1.0" encoding="UTF-8"?>
<searchConnectorDescription xmlns="http://schemas.microsoft.com/windows/2009/searchConnector">
<description>Create short handwritten or text notes.</description>
<isSearchOnlyItem>true</isSearchOnlyItem>
<includeInStartMenuScope>true</includeInStartMenuScope>
<templateInfo>
<folderType>{982725EE-6F47-479E-B447-812BFA7D2E8F}</folderType>
</templateInfo>
<simpleLocation>
<url>StickyNotes://{S-1-5-21-3431700657-2522803235-1547684158-1000}/notes</url>
<serialized>MBAAAEAFCAAAAAAAADAAAAAAAYUgAAQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAYKAUAwHAykg1PPWtiyRvmVorPeOnkJkAQEATBAdAkGAjBwaAkHAOBwbAQHAlBwcAoDAvAwLAsHATBQLAEDAtAQNA0CAyAQMA0CAzAANAMDAxAwNAADAwAgNAUDA3AQLAIDA1AgMAIDA4AAMAMDAyAwMAUDAtAQMAUDA0AwNAYDA4AANAEDA1AAOA0CAxAAMAADAwAQfA8CAuBwbAQHAlBwcAAAAAAAAAAAAAAA</serialized>
</simpleLocation>
</searchConnectorDescription>
这意味着可以将搜索查询转发到本地数据存储/dll/exe
我想使用我的 .net 应用程序以相同/相似的方式提供搜索结果。我从哪里开始?
我的目标是使文档库数据库 (sqlite) 可通过 Windows 资源管理器进行搜索,并列出来自数据库的文件及其元数据资源管理器(文件存储在本地)。
I am trying to display search results in the windows 7 explorer thru the federated search feature, from a local .net assembly. (not from a web service)
I have found various tutorials, but all of them are for web services. Earlier I thought that it was not possible but then, I came across the StickyNotes federated search connector. The contents of the .OSDX file are:
<?xml version="1.0" encoding="UTF-8"?>
<searchConnectorDescription xmlns="http://schemas.microsoft.com/windows/2009/searchConnector">
<description>Create short handwritten or text notes.</description>
<isSearchOnlyItem>true</isSearchOnlyItem>
<includeInStartMenuScope>true</includeInStartMenuScope>
<templateInfo>
<folderType>{982725EE-6F47-479E-B447-812BFA7D2E8F}</folderType>
</templateInfo>
<simpleLocation>
<url>StickyNotes://{S-1-5-21-3431700657-2522803235-1547684158-1000}/notes</url>
<serialized>MBAAAEAFCAAAAAAAADAAAAAAAYUgAAQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAYKAUAwHAykg1PPWtiyRvmVorPeOnkJkAQEATBAdAkGAjBwaAkHAOBwbAQHAlBwcAoDAvAwLAsHATBQLAEDAtAQNA0CAyAQMA0CAzAANAMDAxAwNAADAwAgNAUDA3AQLAIDA1AgMAIDA4AAMAMDAyAwMAUDAtAQMAUDA0AwNAYDA4AANAEDA1AAOA0CAxAAMAADAwAQfA8CAuBwbAQHAlBwcAAAAAAAAAAAAAAA</serialized>
</simpleLocation>
</searchConnectorDescription>
This means that it is possible to forward a search query to a local datastore/dll/exe
I would like to use my .net app to provide search results in the same/similar way. Where do I start?
See: Windows 7 Federated Search Provider Implementer’s Guide
My aim is to make a documents library database (sqlite) searchable via the windows explorer and list the files and their meta data from the DB in explorer (files are stored locally).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
该项目似乎是在 C# 中实现此目的:http://mossph.codeplex.com/
该项目使用IContentEnumerator、IFilter 和 IUrlAccessor。一切都从 ContentEnumerator 类的实现传播。
This project appears to accomplish this in C#: http://mossph.codeplex.com/
The project implements ISearchProtocol using IContentEnumerator, IFilter and IUrlAccessor. Everything propogates from an implement of a ContentEnumerator class.
MSDN上的信息已更新。
http://msdn.microsoft.com/en -us/library/dd378288%28v=vs.85%29.aspx
现在列出:
参数
hwnd [in]
psz查询 [输入]
dwStartIndex [输入]
dwCount [输入]
里德 [中]
ppv [出]
至少我们知道有效的 riid 是
IID_IStream
相关信息如下:http://msdn.microsoft.com/en-us/library/windows/desktop/aa380034%28v=vs.85%29.aspx
The info on MSDN has been updated.
http://msdn.microsoft.com/en-us/library/dd378288%28v=vs.85%29.aspx
It now lists:
Parameters
hwnd [in]
pszQuery [in]
dwStartIndex [in]
dwCount [in]
riid [in]
ppv [out]
At least we know that a valid riid is
IID_IStream
The info for that is here: http://msdn.microsoft.com/en-us/library/windows/desktop/aa380034%28v=vs.85%29.aspx