Lucene.net 基本示例 《第一篇》
2024-10-16 02:28:40
Lucene.net是java平台搜索插件Lucene的移植版。它的主要用于开发搜索引擎,站内搜索等。
开篇之前,写个最简单的DEMO,让自己先体验下Lucene.net的魅力,顺便搭建环境。
static void Main(string[] args)
{
//写入数据到索引
Analyzer analyzer = new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
Directory directory = new RAMDirectory();
IndexWriter.MaxFieldLength maxFieldLength = new IndexWriter.MaxFieldLength(); using (IndexWriter writer = new IndexWriter(directory, analyzer, maxFieldLength))
{
Document document1 = new Document();
document1.Add(new Field("Sentence", "刘备", Field.Store.YES, Field.Index.ANALYZED));
writer.AddDocument(document1); Document document2 = new Document();
document2.Add(new Field("Sentence", "张飞", Field.Store.YES, Field.Index.ANALYZED));
writer.AddDocument(document2); Document document3 = new Document();
document3.Add(new Field("Sentence", "关羽", Field.Store.YES, Field.Index.ANALYZED));
writer.AddDocument(document3); writer.Optimize();
} //查找
using (IndexSearcher searcher = new IndexSearcher(directory))
{
Term t = new Term("Sentence", "飞");
Query query = new TermQuery(t);
TopDocs docs = searcher.Search(query, null, );
Console.WriteLine(docs.TotalHits);
Console.WriteLine(docs.ScoreDocs[].Doc);
Document doc = searcher.Doc(docs.ScoreDocs[].Doc);
Console.WriteLine(doc.Get("Sentence"));
}
Console.ReadKey();
}
以上示例输出如下:
最新文章
- left join 多个表关联时,将表值置换
- 菜单导航/URHere/面包屑,通过CSS中的content简洁表达代码
- IE6下input标签border问题
- cmd登录系统用户
- 带你领略Linux系统发展及版本更迭
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——安装配置OPEN-SSH,设置主机节点之间免密互访
- guxh的python笔记一:数据类型
- python爬虫---BeautifulSoup的用法
- root/base/stem概念
- 个推数据统计产品(个数)iOS集成实践
- CentOS 7 安装、配置、使用 PostgreSQL 10 安装及基础配置
- 51nod 1021 石子归并
- 计算机网络【2】—— CSMA/CD协议
- Django基础学习五_引入静态文件
- FFmpeg从入门到精通——进阶篇,SEI那些事儿
- vue中如何引入全局样式或方法
- jQuery mouseove和mouseout事件不断触发
- JS中,children和childNodes的不同之处
- 03-树3 Tree Traversals Again (25 分)
- Android AppWidget偶尔无响应原因及解决办法