SharePoint Enterprise Search基础知识点拾遗系列之三

Filter Deamon

==============

Deamon的意识是守护进程. 在SharePoint 2007的搜索中, 它的名字是MSSDMN.exe, 这是一个用于被牺牲的进程, 其中寄存着protocol handler和filters的炮灰进程. 这些filter们都实现了一个标准接口IFilter. 之所以称它为炮灰进程, 是因为在SharePoint搜索的设计中认为这些MSSDMN.exe进程是会意外地终止的. 实际上我们同时可以有5个MSSDMN.exe进程, 一个是主要的, 剩下的是辅助的. 在注册表中有关于这些守护进程可以消耗多少内存的设置.

 

Protocol Handler

==============

Protocol handler是理解不同种类的被搜索对象的组件. 目标的类型决定与SharePoint 搜索之间沟通的内容信息的机制, 比如说sts2://, sts3://, http://, spsimport://, anchorqh://, 等等. 对exchange的公共文件夹, HTTP, WSS, SMB都有各自不同的protocol handler的.

 

Filter

==============

Filter组件能够理解具体类型的文档. 默认的SharePoint提供HTML, Office文档的filter.

 

MSSearch.exe和MSSDMN.exe之间的关系

==============

在这里稍微多说一点吧. MSSearch.exe和MSSDMN.exe之间是什么关系呢? MSSDMN.exe原本是从MSSearch.exe中分离出来的, 其核心是一种防御式的编程思想. 因为SharePoint站点上会放置很多不同种类的文档, 其中肯定有些类型的文档格式是微软产品所不理解的, 比如说PDF, rar. 这时候用户会使用第三方的Filter和protocol handler来解析这些种类的文档. 而这些Filter是否足够健壮, 以至于不会对Search有影响是微软所无法预计的. 所以, 把Filter的组件拿出来放在MSSDMN.exe这个进程中. 这样, 即使filter的过程崩溃了, 也不会对整个搜索服务造成很大的影响.

 

MSSDMN.exe和MSSearch.exe之间通过共享内存来进行通信(shared memory). 在处理文档的时候, filter daemon会提供所谓的chunk给MSSearch.exe进程.

 

在MSSearch.exe进程中有Gatherer Project. Gatherer Project被认为是处理chunk的入口. 在Gatherer Project中, chunk会被提供给各种各样的plug-in, 这些plug-in会处理提供给它的chunk.

 

在MSSearch.exe进程中有个线程池, 对每一个chunk的处理都有一个filtering thread来handle. 任意一个类型的文档都可以在这个层次被任意的filtering thread处理, 因为到这一步, 文档类型的差异已经不存在了.

posted on   中道学友  阅读(635)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2009-12-03 [翻译文章]我们是如何做到的: SharePoint.Microsoft.com
2009-12-03 常用英语食品词汇- 海产类

导航

< 2010年12月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示