说明:Lucene.Net 只是一个全文检索开发包 .查询数据的时候从Lucene.Net查询数据.可以看做是一个提供了全文检索功能的数据库.
注意:只能搜索文本字符串.
重要概念:分词,基于词库的分词算法.(庖丁解牛,盘古分词)
1.1 添加一个窗体应用程序
1.2 添加引用-https://pan.baidu.com/s/1dFnB3NV中的15目录下
1.3 添加字典文件夹-https://pan.baidu.com/s/1dFnB3NV中的15目录下,并修改属性=复制到输出目录
具体编写代码
using Lucene.Net.Analysis;
using Lucene.Net.Analysis.PanGu;
using Lucene.Net.Analysis.Standard;
using NSharp.SearchEngine.Lucene.Analysis.Cjk;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace BFFJ.LuceneNetDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//一元分词
private void button1_Click(object sender, EventArgs e)
{
Analyzer analyzer = new StandardAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("",new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
Console.WriteLine(token.TermText());
}
}
//二元分词
private void button2_Click(object sender, EventArgs e)
{
Analyzer analyzer = new CJKAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
Console.WriteLine(token.TermText());
}
} private void button3_Click(object sender, EventArgs e)
{
Analyzer analyzer = new PanGuAnalyzer();
TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,Hi欢迎你们大家"));
Lucene.Net.Analysis.Token token = null;
while ((token = tokenStream.Next()) != null)
{
Console.WriteLine(token.TermText());
}
}
}
}
运行效果