1、shootSegment 分词建索引
Analyzer a = new shootAnalyzer();//用空格分割的
IndexWriter writer = new IndexWriter("d:\\indexer", a, true);
AddDoc("标题1", "瑞星卡卡上网安全助手6.0 强势发布", writer);
2、开始搜索
//开始搜索,定位索引位置
IndexSearcher searcher = new IndexSearcher("d:\\indexer");
//关键词检索
QueryParser parser = new QueryParser("body", a);
Query query = parser.Parse("瑞星安全助手");
Response.Write(query.ToString() + "<br>");//输出:瑞星 安全 助手
Hits hits = searcher.Search(query);
//安装搜索结果列出
for (int i = 0; i < hits.Length(); i++)
{
Document doc = hits.Doc(i);
Response.Write(doc.Get("title"));
}
//关闭搜索
searcher.Close();
//添加搜索条目
private void AddDoc(string Title, string Body, IndexWriter writer)
{
Document doc = new Document();
doc.Add(new Field("title", Title, Field.Store.YES, Field.Index.TOKENIZED));
doc.Add(new Field("body", Body, Field.Store.YES, Field.Index.TOKENIZED));
//doc.Add(new Field("title", Title, true, true, true));
//doc.Add(new Field("body", Body, true, true, true));
writer.AddDocument(doc);
}
另外搜索条件:Query query = parser.Parse("瑞星"); 也搜索不到结果,
但是Query query = parser.Parse("瑞星卡卡");能搜索到
下边是用NLuke.exe查看的图:
Analyzer a = new shootAnalyzer();//用空格分割的
IndexWriter writer = new IndexWriter("d:\\indexer", a, true);
AddDoc("标题1", "瑞星卡卡上网安全助手6.0 强势发布", writer);
2、开始搜索
//开始搜索,定位索引位置
IndexSearcher searcher = new IndexSearcher("d:\\indexer");
//关键词检索
QueryParser parser = new QueryParser("body", a);
Query query = parser.Parse("瑞星安全助手");
Response.Write(query.ToString() + "<br>");//输出:瑞星 安全 助手
Hits hits = searcher.Search(query);
//安装搜索结果列出
for (int i = 0; i < hits.Length(); i++)
{
Document doc = hits.Doc(i);
Response.Write(doc.Get("title"));
}
//关闭搜索
searcher.Close();
//添加搜索条目
private void AddDoc(string Title, string Body, IndexWriter writer)
{
Document doc = new Document();
doc.Add(new Field("title", Title, Field.Store.YES, Field.Index.TOKENIZED));
doc.Add(new Field("body", Body, Field.Store.YES, Field.Index.TOKENIZED));
//doc.Add(new Field("title", Title, true, true, true));
//doc.Add(new Field("body", Body, true, true, true));
writer.AddDocument(doc);
}
另外搜索条件:Query query = parser.Parse("瑞星"); 也搜索不到结果,
但是Query query = parser.Parse("瑞星卡卡");能搜索到
下边是用NLuke.exe查看的图:
解决方案 »
- c#中的菜单栏里面的文字怎么放在最左边,转换用了什么控件?
- 利用.NET自带打包工具打包时,如何自动注册.ocx文件?
- 是不是非要100分才行!
- 从vb.net转换为C#,但到C#中,ado代码枚举常量1还必须用ADODB.SearchDirectionEnum.adSearchForward替换,否则显示语法错误,有没有办法在C#中也保持用1
- tabStrip的使用问题,,急用。。。谢谢!!!!!!!!!!!!!!!!
- protected在C#继承关系中怎么都不起作用???
- C# 的逆向工程问题....
- C#实现Ftp功能,用的是FtpWebResponse,FtpWebRequest,MSDN上的例子咋就连不上 ?
- TcpClient NetworkStream 中的TCP报文疑惑,请不吝指教
- 关于继承的问题。
- c#中Timer控件与ListView结合使用的问题
- 怎样使用dataGrid里面的“删除”删除数据库里面的记录?
Query query = parser.Parse("瑞星安全助手");
是搜索的body阿
body:"瑞星 安全 助手"
需要这3个词连续在一起,顺序不能混乱才能够搜索到。