Exchange全文检索概述
来源:互联网
作者:west263.com
时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
FORMSOF( type,"string" [,"string"] )
在Exchange中type参数的值恒为INFLECTIONAL。
RANK BY:该谓词通常用来修饰CONTAINS或FREETEXT谓词,用来表示关键字出现的频度。格式为,
RANK BY CLAUSE (Mechanism, Weight)
其中CLAUSE参数为WEIGHT或COERCION,WEIGHT表示权值,CORECION居然没有任何说明。Mechanism参数,表示行为,例如WEIGHT或MULTIPHY。Weight为0-1之间的一个数值,表示权重。
当WHERE子句中包含多部分CONTAINS和FREETEXT时,有了RANK BY,能够认为是匹配度,很有用。添加RANK BY谓词之后,能够读取"urn:schemas.microsoft.com:fulltextqueryinfo"属性的值,来比较记录之间的匹配程度。我不知道该属性最大的值为多少,但是从获得的实际数据的情况来看,最大为128。
来看一个完整的例子:
Select "DAV:href","urn:schemas.microsoft.com:fulltextqueryinfo:rank"
FROM Scope('DEEP TRAVERSAL OF ""')
WHERE FREETEXT('"program" OR "software"') RANK BY WEIGHT(1.0) OR CONTAINS('FORMSOF(INFLECTIONAL,"java") AND "vb"') RANK BY WEIGHT(0.5)
以上仅仅对有关全文查询相关的内容进行说明,完成的Store SQL的语法,参阅MSDN中的文档。
顺便说一句,Exchange主要提供协同服务,而非文档管理,所以在全文检索的支持上并非特别强大和灵活。MS的另一个服务器产品Sharepoint Portal Server,主要功能是文档管理,其重要应用之一即提供检索服务,所以他的全文检索的功能更加强大一点。除了上述内容外,还提供了NEAR、ISABOUT、RANKMETHOD等修饰项(Term),能够更好的控制查询条件。其中细节也请自行参阅相关文档。
3-3、ADO & WebDAV
在执行查询时能够采用两种方法,ADO或WebDAV。这里只列举实现的代码加以说明。
3-3-1、WebDAV。
通过向指定查询的URL发送HTTP的SEARCH请求,命令参数和相应的数据,都是一定格式的XML文档(参看WebDAV的参考手册)。示例如下:
private System.Xml.XmlDocument SendSearchRequest(System.String sUrl,System.String sQuery)
{
System.Net.HttpWebRequest oRequest = null;
System.Net.HttpWebResponse oResponse = null;
System.Net.NetworkCredential oCredential = null;
System.IO.Stream oStream = null;
System.Text.UTF8Encoding oEncoder = new System.Text.UTF8Encoding();
System.Byte[] abData = null;
System.Xml.XmlDocument xmldoc = null;
www.bitsCN.com
{
System.Net.HttpWebRequest oRequest = null;
System.Net.HttpWebResponse oResponse = null;
System.Net.NetworkCredential oCredential = null;
System.IO.Stream oStream = null;
System.Text.UTF8Encoding oEncoder = new System.Text.UTF8Encoding();
System.Byte[] abData = null;
System.Xml.XmlDocument xmldoc = null;
if ( sUrl == null || sUrl == String.Empty)
return null;
if (sQuery == null || sQuery == String.Empty)
return null;
return null;
if (sQuery == null || sQuery == String.Empty)
return null;
abData = oEncoder.GetBytes(sQuery);
if (abData == null)
return null;
if (abData == null)
return null;
oCredential = new NetworkCredential("administrator","server",String.Empty); bitsCN.nET中国网管博客
oRequest = (System.Net.HttpWebRequest) WebRequest.Create(sUrl);
if (oRequest != null)
{
// preparing search request
oRequest.ProtocolVersion = HttpVersion.Version11;
oRequest.Method = @"SEARCH";
if (oCredential != null)
oRequest.Credentials = oCredential.GetCredential(new System.Uri(sUrl),String.Empty);
oRequest.ContentType = @"text/xml";
oRequest.ContentLength = abData.Length;
oStream = oRequest.GetRequestStream();
oStream.Write(abData,0,abData.Length);
oStream.Close();
// waiting for response
try
{
oResponse = (System.Net.HttpWebResponse) oRequest.GetResponse();
oRequest = null;
}
catch(System.Exception e)
{
Trace.WriteLine("SendSearchRequest: " e.Message);
}
if (oResponse != null)
{
oStream = oResponse.GetResponseStream();
// get data from stream
if (oStream != null)
{
try
{
xmldoc = new XmlDocument();
if (xmldoc != null)
{
xmldoc.Load(oStream);
}
}
catch(System.Exception e)
{
Trace.WriteLine("SendSearchRequest: " e.Message);
oRequest = (System.Net.HttpWebRequest) WebRequest.Create(sUrl);
if (oRequest != null)
{
// preparing search request
oRequest.ProtocolVersion = HttpVersion.Version11;
oRequest.Method = @"SEARCH";
if (oCredential != null)
oRequest.Credentials = oCredential.GetCredential(new System.Uri(sUrl),String.Empty);
oRequest.ContentType = @"text/xml";
oRequest.ContentLength = abData.Length;
oStream = oRequest.GetRequestStream();
oStream.Write(abData,0,abData.Length);
oStream.Close();
// waiting for response
try
{
oResponse = (System.Net.HttpWebResponse) oRequest.GetResponse();
oRequest = null;
中国网管联盟
}
catch(System.Exception e)
{
Trace.WriteLine("SendSearchRequest: " e.Message);
}
if (oResponse != null)
{
oStream = oResponse.GetResponseStream();
// get data from stream
if (oStream != null)
{
try
{
xmldoc = new XmlDocument();
if (xmldoc != null)
{
xmldoc.Load(oStream);
}
}
catch(System.Exception e)
{
www.bitsCN.com
Trace.WriteLine("SendSearchRequest: " e.Message);
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
热点关注
- 利用Exchange Server 200
- Exchange 2000 Outlook W
- 实现Outlook Web Access
- Exchange 2007 数据保护
- 利用Exchange Server 200
- 安装配置和使用Windows S
- Windows 2000域控制器 Ex
- Exchange Server中使用收
- Exchange 2000 Server 备
- Exchange研发(六) Exchan
- 使用Exchange IMF引擎过
- 如何使用 Exchange 2003
- 维护Exchange Server 200
- 关于OWA“HTTP/1.1 503
- 如何用Exchange Server 2
- Instant Messaging的常见
- Exchange 2003和Exchange
- 在 Exchange Server 2003
- 三步轻松搞定导出/复制邮
- Exchange 常用工具
- Exchange Server 2003的
- 通过LDAP查询导出Exchang
- 迁移Exchange 2003到Exch
- 使用NTBACKUP备份和恢复E
- 使用Exchange 2000 Serve
- Exchange灾难恢复全过程
- 保护 Exchange 通信安全
- ISA Server 2004中的Outl
- Exchange Server 2003中
- 如何安装Exchange 2000 S
- Exchange系统的默认队列
- 如何使用Outlook Web Acc
- 使用 Microsoft ISA Serv
- 如何從Exchange 5.5升級
- Exchange 2000和Exchange
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD



