- 浏览: 958066 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (385)
- 搜索引擎学习 (62)
- 算法 (1)
- 数据库 (15)
- web开发 (38)
- solr开发 (17)
- nutch 1.2 系统学习 (8)
- cms (1)
- 系统架构 (11)
- linux 与 unix 编程 (16)
- android (15)
- maven (1)
- 关注物流 (1)
- 网址收集 (1)
- 分布式,集群 (1)
- mysql (5)
- apache (1)
- 资料文档备份 (7)
- 上班有感 (0)
- 工作流 (15)
- javascript (1)
- weblogic (1)
- eclipse 集成 (1)
- JMS (7)
- Hibernate (1)
- 性能测试 (1)
- spring (6)
- 缓存cache (1)
- mongodb (2)
- webservice (1)
- HTML5 COCOS2D-HTML5 (1)
- BrowserQuest (2)
最新评论
-
avi9111:
内陷到android, ios, winphone里面也是随便 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
avi9111:
呵呵,做不下去了吧,没有第二集了吧,游戏是个深坑,谨慎进入,其 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
excaliburace:
方案3亲测完全可用,顺便解决了我其他方面的一些疑问,非常感谢
spring security 2添加用户验证码 -
yuanliangding:
Spring太强大了。
Spring Data JPA 简单介绍 -
小高你好:
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
就是教你怎样把邮件建立索引,再搜索出来。用MAPI把邮件读取到数据库里,用SharpICTCLAS做一个lucene的中文的语汇单元分析器,用lucene建立索引及查询索引。
把某目录邮件读取到数据库里的代码很简单
private static void getmails()
{
_Application appOutlook = new Application();
NameSpace outlookNS = appOutlook.GetNamespace("MAPI");
outlookNS.Logon("", null, null, null);
Console.WriteLine(outlookNS.Folders.Count);
MAPIFolder inboxFolder = outlookNS.Folders[1].Folders["chat"];
HandlerFolder(inboxFolder);
outlookNS.Logoff();
}
private static void HandlerFolder(MAPIFolder inboxFolder)
{
foreach (object item in inboxFolder.Items)
{
MailItem mi = item as MailItem;
if (mi != null)
{
Console.WriteLine("ReceivedTime:{0}\r\nSubject:{1}", mi.ReceivedTime, mi.Subject);
try
{
MailDAO.Add_Mail_SSH(mi.Subject, mi.Body, mi.ReceivedTime, mi.To,
mi.SenderName, mi.SenderEmailAddress, mi.CC ?? "", mi.BCC ?? "");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
}
{
_Application appOutlook = new Application();
NameSpace outlookNS = appOutlook.GetNamespace("MAPI");
outlookNS.Logon("", null, null, null);
Console.WriteLine(outlookNS.Folders.Count);
MAPIFolder inboxFolder = outlookNS.Folders[1].Folders["chat"];
HandlerFolder(inboxFolder);
outlookNS.Logoff();
}
private static void HandlerFolder(MAPIFolder inboxFolder)
{
foreach (object item in inboxFolder.Items)
{
MailItem mi = item as MailItem;
if (mi != null)
{
Console.WriteLine("ReceivedTime:{0}\r\nSubject:{1}", mi.ReceivedTime, mi.Subject);
try
{
MailDAO.Add_Mail_SSH(mi.Subject, mi.Body, mi.ReceivedTime, mi.To,
mi.SenderName, mi.SenderEmailAddress, mi.CC ?? "", mi.BCC ?? "");
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
}
为了方便测试,先弄一些假数据
class MailDAO
{
public static IList<Email> GetMails()
{
List<Email> ret = new List<Email>();
Email mail = new Email();
mail.Subject = "倡议:大家做一个.net开源的灾难管理系统";
mail.Body = "倡议:大家做一个.net开源的灾难管理系统";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@126.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-18 12:19");
ret.Add(mail);
mail = new Email();
mail.Subject = "[置顶]蛙蛙推荐:蛙蛙教你文本聚类";
mail.Body = "[置顶]蛙蛙推荐:蛙蛙教你文本聚类";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@126.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-10 20:43");
ret.Add(mail);
mail = new Email();
mail.Subject = "蛙蛙推荐:蛙蛙牌关键词提取算法";
mail.Body = "蛙蛙推荐:蛙蛙牌关键词提取算法";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@126.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-11 23:34");
ret.Add(mail);
mail = new Email();
mail.Subject = "蛙蛙推荐:蛙蛙牌软件注册码算法";
mail.Body = "蛙蛙推荐:蛙蛙牌软件注册码算法";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@fetionmm.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-03 21:55");
ret.Add(mail);
return ret;
}
}
{
public static IList<Email> GetMails()
{
List<Email> ret = new List<Email>();
Email mail = new Email();
mail.Subject = "倡议:大家做一个.net开源的灾难管理系统";
mail.Body = "倡议:大家做一个.net开源的灾难管理系统";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@126.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-18 12:19");
ret.Add(mail);
mail = new Email();
mail.Subject = "[置顶]蛙蛙推荐:蛙蛙教你文本聚类";
mail.Body = "[置顶]蛙蛙推荐:蛙蛙教你文本聚类";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@126.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-10 20:43");
ret.Add(mail);
mail = new Email();
mail.Subject = "蛙蛙推荐:蛙蛙牌关键词提取算法";
mail.Body = "蛙蛙推荐:蛙蛙牌关键词提取算法";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@126.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-11 23:34");
ret.Add(mail);
mail = new Email();
mail.Subject = "蛙蛙推荐:蛙蛙牌软件注册码算法";
mail.Body = "蛙蛙推荐:蛙蛙牌软件注册码算法";
mail.MailTo = "onlytiancai@sohu.com;onlytiancai@163.com;onlytiancai@msn.com;";
mail.Cc = "onlytiancai@yahoo.com.cn;onlytiancai@fetionmm.com";
mail.Bcc = "onlytiancai@qq.com;onlytiancai@sina.com;onlytiancai@gmail.com";
mail.SenderEmailAddress = "onlytiancai@live.com";
mail.SenderName = "蛙蛙王子";
mail.ReceiveTime = DateTime.Parse("2008-05-03 21:55");
ret.Add(mail);
return ret;
}
}
像收件人,抄送地址等用一个简单的语汇单元分析器就可以,代码如下,因为token的位置信息只在分析的时候有用,只有位置增量才会写到索引里,所以位置信息都写了-1
/**//// <summary>
/// 用于语汇单元化用简单分割字符隔开的字符串
/// </summary>
public class WawaSimpleTokenizer : Tokenizer
{
private readonly string _txt;
private List<string> _filter;
private int _current;
private bool _isStart = true;
private int _max;
public WawaSimpleTokenizer(TextReader reader)
{
input = reader;
_txt = input.ReadToEnd();
_txt = _txt.ToLower().Replace("'", "").Replace('"', ' ');
}
public override Token Next()
{
if (_isStart)
{
Regex r = new Regex("([ \\t{}():;. \n])");
String[] tokens = r.Split(_txt);
_filter = new List<string>();
for (int i = 0; i < tokens.Length; i++)
{
MatchCollection mc = r.Matches(tokens[i]);
if (mc.Count <= 0 && tokens[i].Trim().Length > 0)
_filter.Add(tokens[i]);
}
_max = _filter.Count-1;
_current = 0;
_isStart = false;
}
if (_current > _max)
return null;
string word = _filter[_current];
Token token = new Token(word, -1, -1);
_current++;
return token;
}
}
/// 用于语汇单元化用简单分割字符隔开的字符串
/// </summary>
public class WawaSimpleTokenizer : Tokenizer
{
private readonly string _txt;
private List<string> _filter;
private int _current;
private bool _isStart = true;
private int _max;
public WawaSimpleTokenizer(TextReader reader)
{
input = reader;
_txt = input.ReadToEnd();
_txt = _txt.ToLower().Replace("'", "").Replace('"', ' ');
}
public override Token Next()
{
if (_isStart)
{
Regex r = new Regex("([ \\t{}():;. \n])");
String[] tokens = r.Split(_txt);
_filter = new List<string>();
for (int i = 0; i < tokens.Length; i++)
{
MatchCollection mc = r.Matches(tokens[i]);
if (mc.Count <= 0 && tokens[i].Trim().Length > 0)
_filter.Add(tokens[i]);
}
_max = _filter.Count-1;
_current = 0;
_isStart = false;
}
if (_current > _max)
return null;
string word = _filter[_current];
Token token = new Token(word, -1, -1);
_current++;
return token;
}
}
把lucene适配成lucene的分析器,有人做了,直接拿过来,链接如下
http://www.cnblogs.com/birdshover/archive/2008/03/26/1122305.html
建立索引的代码如下,写了些注释,不多说了就
public class MailIndexer
{
protected string _indexDirectory;
protected IndexWriter _writer = null;
protected virtual void setUp()
{
string dictPath = Path.Combine(Environment.CurrentDirectory, "Data") + Path.DirectorySeparatorChar; //词库路径
SharpICTCLASAnalyzer sharpICTCLASAnalyzer = new SharpICTCLASAnalyzer(dictPath); //中文分析器
//按域分析包装器,邮件标题、正文等用中文分析器分析
PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(sharpICTCLASAnalyzer);
WawaSimpleAnalyzer simpleAnalyzer = new WawaSimpleAnalyzer(); //按分隔符语汇单元化的分析器
//收件人,抄送和密送地址用简单解析器
wrapper.AddAnalyzer("MailTo", simpleAnalyzer);
wrapper.AddAnalyzer("Cc", simpleAnalyzer);
wrapper.AddAnalyzer("Bcc", simpleAnalyzer);
_indexDirectory = Path.Combine(Environment.CurrentDirectory, "mailindex") + Path.DirectorySeparatorChar;
; //索引路径
_writer = new IndexWriter(_indexDirectory, wrapper, true); //创建IndexWriter
_writer.SetUseCompoundFile(true); //显式设置索引为复合索引
_writer.SetMaxFieldLength(int.MaxValue); //设置域最大长度为最大值
_writer.SetMergeFactor(100); //设置每100个段合并成一个大段
_writer.SetMaxMergeDocs(10000); //设置一个段的最大文档数
_writer.SetMaxBufferedDocs(1000); //设置在把索引写入磁盘前内存里文档的缓存个数
}
public void ExeCute()
{
try
{
setUp();
IList<Email> mails = MailDAO.GetMails();
foreach (Email mail in mails)
{
try
{
Console.WriteLine("正在索引:{0}", mail.Subject);
Document doc = new Document();
doc.Add(new Field("Subject", mail.Subject ?? "",
Field.Store.YES, Field.Index.TOKENIZED)); //邮件主题,分词、索引、存储——
doc.Add(new Field("Body", mail.Body ?? "",
Field.Store.NO, Field.Index.TOKENIZED)); //邮件正文,分词、索引,不存储
doc.Add(new Field("ReceiveTime", mail.ReceiveTime.ToString("yyyyMMdd"),
Field.Store.YES, Field.Index.UN_TOKENIZED)); //接受时间,不分词,不索引,保存
doc.Add(new Field("MailTo", mail.MailTo ?? "",
Field.Store.YES, Field.Index.TOKENIZED)); //收件人,分词,索引,保存
doc.Add(new Field("SenderName", mail.SenderName ?? "",
Field.Store.YES, Field.Index.UN_TOKENIZED)); //发送人姓名,不分词,索引,保存
doc.Add(new Field("SenderEmailAddress", mail.SenderEmailAddress ?? "",
Field.Store.YES, Field.Index.UN_TOKENIZED)); //发送人邮件,不分词,索引,保存
doc.Add(new Field("Cc", mail.Cc ?? "",
Field.Store.YES, Field.Index.NO)); //抄送,分词,索引,保存
doc.Add(new Field("Bcc", mail.Bcc ?? "
{
protected string _indexDirectory;
protected IndexWriter _writer = null;
protected virtual void setUp()
{
string dictPath = Path.Combine(Environment.CurrentDirectory, "Data") + Path.DirectorySeparatorChar; //词库路径
SharpICTCLASAnalyzer sharpICTCLASAnalyzer = new SharpICTCLASAnalyzer(dictPath); //中文分析器
//按域分析包装器,邮件标题、正文等用中文分析器分析
PerFieldAnalyzerWrapper wrapper = new PerFieldAnalyzerWrapper(sharpICTCLASAnalyzer);
WawaSimpleAnalyzer simpleAnalyzer = new WawaSimpleAnalyzer(); //按分隔符语汇单元化的分析器
//收件人,抄送和密送地址用简单解析器
wrapper.AddAnalyzer("MailTo", simpleAnalyzer);
wrapper.AddAnalyzer("Cc", simpleAnalyzer);
wrapper.AddAnalyzer("Bcc", simpleAnalyzer);
_indexDirectory = Path.Combine(Environment.CurrentDirectory, "mailindex") + Path.DirectorySeparatorChar;
; //索引路径
_writer = new IndexWriter(_indexDirectory, wrapper, true); //创建IndexWriter
_writer.SetUseCompoundFile(true); //显式设置索引为复合索引
_writer.SetMaxFieldLength(int.MaxValue); //设置域最大长度为最大值
_writer.SetMergeFactor(100); //设置每100个段合并成一个大段
_writer.SetMaxMergeDocs(10000); //设置一个段的最大文档数
_writer.SetMaxBufferedDocs(1000); //设置在把索引写入磁盘前内存里文档的缓存个数
}
public void ExeCute()
{
try
{
setUp();
IList<Email> mails = MailDAO.GetMails();
foreach (Email mail in mails)
{
try
{
Console.WriteLine("正在索引:{0}", mail.Subject);
Document doc = new Document();
doc.Add(new Field("Subject", mail.Subject ?? "",
Field.Store.YES, Field.Index.TOKENIZED)); //邮件主题,分词、索引、存储——
doc.Add(new Field("Body", mail.Body ?? "",
Field.Store.NO, Field.Index.TOKENIZED)); //邮件正文,分词、索引,不存储
doc.Add(new Field("ReceiveTime", mail.ReceiveTime.ToString("yyyyMMdd"),
Field.Store.YES, Field.Index.UN_TOKENIZED)); //接受时间,不分词,不索引,保存
doc.Add(new Field("MailTo", mail.MailTo ?? "",
Field.Store.YES, Field.Index.TOKENIZED)); //收件人,分词,索引,保存
doc.Add(new Field("SenderName", mail.SenderName ?? "",
Field.Store.YES, Field.Index.UN_TOKENIZED)); //发送人姓名,不分词,索引,保存
doc.Add(new Field("SenderEmailAddress", mail.SenderEmailAddress ?? "",
Field.Store.YES, Field.Index.UN_TOKENIZED)); //发送人邮件,不分词,索引,保存
doc.Add(new Field("Cc", mail.Cc ?? "",
Field.Store.YES, Field.Index.NO)); //抄送,分词,索引,保存
doc.Add(new Field("Bcc", mail.Bcc ?? "
发表评论
-
nutch1.4 环境变量设置
2012-04-06 12:52 1720Exception in thread "main& ... -
正则使用
2010-06-18 00:19 1131java正则表达式(java.Regex)HtmlParser ... -
nutch 1.0 读源码,过滤掉不正确的URL实现方法
2010-06-18 00:17 3392nutch 1.0 读源码,过滤掉不正确的URL实现方法: ... -
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputExnutch新发现,为以后备忘
2010-06-16 23:16 2292urls -dir mycrawl -depth 3 -top ... -
HTMLParser 解析html字符串,提取纯文本
2010-05-14 09:59 8322今天在群里问别人怎么提取文本,也没有具体告诉我用什么,只是说用 ... -
HTMLParser的两种使用方法[转]
2010-05-13 23:37 1936HTMLParser的两种使用方法 文章分类:Java编程 ... -
搜索引擎术语
2010-05-05 11:40 1428附录. 术语 B: 半结构化 ... -
影响Lucene索引速度原因以及提高索引速度技巧[转]
2010-04-25 00:11 2743影响Lucene索引速度原因以及提高索引速度技巧 关键字: ... -
如何配置compass的索引位置为相对路径
2009-09-01 19:28 1504Compass是对lucene进行封装 ... -
heritrix 基本介绍
2009-08-01 10:35 3907Heritrix使用小结 1. H ... -
我对HtmlParser 提取网页各属性的总结及示例说明
2009-07-08 13:50 1932/** * 属性过滤器 * @param parser ... -
数学之美 系列十三 信息指纹及其应用
2009-06-25 22:34 10352006年8月3日 上午 11:17:00 ... -
数学之美系列二十一 - 布隆过滤器(Bloom Filter)
2009-06-25 22:27 15122007年7月3日 上午 09:35:00 ... -
用HTMLParser提取URL页面超链接的一段代码(小试牛刀)
2009-06-06 16:54 7090用HTMLParser提取URL页面超 ... -
深入学习Heritrix---解析处理器(Processor)
2009-06-06 13:17 1627键字: heritrix processor 本节解析与 ... -
深入学习Heritrix---解析Frontier(链接工厂)
2009-06-06 10:02 1215Frontier是Heritrix最核心的组成部分之一,也是最 ... -
深入学习Heritrix---解析CrawlController
2009-06-06 10:00 1383当我们以Web UI方式使用Heritrix时,点击任务开始( ... -
深入学习Heritrix---解析Frontier(链接工厂)
2009-06-03 21:50 1516原创作者: pengranxiang 阅读:231次 ... -
lucene2.0+heritrix示例补充
2009-06-03 21:31 1540由于lucene2.0+heritrix一书示例用的网站( ... -
htmlparser 使用手册
2009-05-30 16:47 29202009-05-08 14:20 需要做一 ...
相关推荐
- "’2J/属性值": 邮件索引,通常从%开始。 三、程序编制过程 1. 设计界面:在Delphi中创建新工程,添加所需的控件,如文本框、标签、按钮、列表框、多行文本框、状态栏和*12343-控件,并设置各控件属性。 2. 编制...
在本文中,我们将探讨如何使用Lucene建立数据库索引,并分享一些在实践过程中的经验和教训。Lucene是一个高性能、全文本搜索库,广泛用于构建搜索引擎。在创建索引时,需要注意以下关键点: 1. **资料的准确性**:...
通常,我们使用`ContactsContract.Contacts`表来获取联系人基本信息,然后通过联系人的ID进一步查询其详细信息,如电话号码、电子邮件等。为了有索引,我们可以利用`ContactsContract.Contacts._ID`作为主键,通过`...
4. **遍历并下载邮件**:使用`GetMessage()`方法获取指定索引的邮件,然后可以使用`MailMessage`类来解析邮件内容。 ```csharp for (int i = 0; i ; i++) { MailMessage message = client.GetMessage(i); ...
《IBM Lotus Domino 7 邮件服务器配置全程攻略》是一部深入浅出的教程,针对IBM Lotus Domino 7这一版本的邮件...通过深入学习,你将能够熟练配置和管理这一强大的邮件系统,为组织提供稳定、安全、高效的邮件服务。
- 查看邮件:使用Pop3类的GetMessage或GetMessages方法获取邮件列表,然后通过MessageNumber索引获取具体邮件内容。 - 修改邮件:由于POP3协议设计初衷是下载邮件,不支持在线编辑,一般不提供修改邮件功能。但...
SMTP发送邮件 POP3收取邮件 访问数据库 使用SQLite 使用MySQL 使用SQLAlchemy Web开发 HTTP协议简介 HTML简介 WSGI接口 使用Web框架 使用模板 异步IO 协程 asyncio async/await aiohttp 实战 file:///E|/Personal/...
本教程将深入探讨如何处理“联系人列表,索引,分组”这一主题,以帮助开发者更好地理解和实现相关功能。 首先,我们需要理解“联系人索引”。在Android中,联系人数据是存储在SQLite数据库中的,当联系人数量庞大...
Lucene.NET 广泛应用于各种需要全文检索功能的系统,如内容管理系统、知识库、搜索引擎、邮件系统等。通过图形界面管理器,开发者和管理员可以更直观地了解索引结构,优化搜索性能,以及进行索引维护。 **6. 扩展与...
除了加密外,Mailpile还提供了一些其他隐私保护措施,比如对搜索索引的本地存储,避免敏感信息泄露到第三方服务器。此外,用户还可以控制自己的数据,选择是否分享以及与谁分享。 6. **自托管邮件服务** Mailpile...
同时,对于邮件的存储,可能需要对邮件进行一定的预处理,如压缩附件以减少数据库空间占用,或者提取关键信息(如附件名、邮件主题等)作为索引,以便快速检索。 总之,结合LumiSoft.Net和System.Net.Mail,开发者...
软件类型: 办公软件,邮件搜索 运行环境:Windows 软件语言:英语,德语 授权方式:共享软件 软件大小:8.5MB 软件作者:Axonic 软件简介: Lookeen是微软Outlook插件,嵌入Outlook程序中帮助检索Outlook中的所有...
在Lucene中,文档(Document)代表一个可被搜索的信息单元,如一篇网页或电子邮件。文档由多个字段(Field)组成,每个字段都有特定的名称和值,比如标题(Title)、内容(Content)和作者(Author)。 ### 2.2 ...
10. **应用实例**: Lucene.Net常用于网站的搜索功能、大数据分析、日志分析、电子邮件搜索以及任何需要快速全文检索的场合。 通过学习这个“lucene.net+完全入门教程”,开发者可以了解如何在.NET环境中设置Lucene...
报表服务(SSRS)是SQL Server 2005中的报告工具,它允许你创建交互式、多格式的报表,并能通过电子邮件或其他方式分发。学会设计和部署报表,有助于将数据库中的信息转化为有价值的信息。 最后,通过阅读《实践...
- **社区参与**:Lucene拥有活跃的开发者社区,用户可以通过邮件列表、论坛等方式获取帮助和支持。 - **官方文档与教程**:Lucene提供了丰富的官方文档和教程资源,帮助开发者快速上手。 - **书籍推荐**:《Lucene ...
Sphinx是一个开源的全文搜索引擎,它能够为大量的数据提供索引,并提供搜索接口。由于其强大的性能和灵活性,Sphinx被广泛应用于各种...希望辛星笔记之Sphinx教程能够帮助到你,让你对Sphinx有一个全面而深入的理解。
通过索引更改的内容来更新更多数据库 这“为我工作”。 这些脚本具有潜在的危险,可能会破坏/删除您的电子邮件。 这就是为什么我不在这里写下教程的原因。 阅读脚本,了解它们的作用,进行备份,以一种不会修改您的...