标签:
全文检索:
like查询是全表扫描(为性能杀手)
Lucene.Net搜索引擎,开源,而sql搜索引擎是收费的
Lucene.Net只是一个全文检索开发包(只是帮我们存数据取数据,并没有界面,可以看作一个数据库,只能对文本信息进行检索)
Lucene.Net原理:把文本切词保存,然后根据词汇表的页来找到文章
分词算法:
//一元分词算法(引用Lucene.Net.dll)
//一元分词算法(已过时) Analyzer analyzer = new StandardAnalyzer(); TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,HI欢饮你hello word")); Lucene.Net.Analysis.Token token = null; while ((token = tokenStream.Next()) != null) { Console.WriteLine(token.TermText()); } Console.ReadKey();
//二元分词算法(CJK:China Japan Korean 需要再引用CJKAnalyzer.cs/CJKTokenizer.cs)
//二元分词算法(CJK:China Japan Korean) Analyzer analyzer = new CJKAnalyzer(); // new StandardAnalyzer(); TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,HI欢饮你")); Lucene.Net.Analysis.Token token = null; while ((token = tokenStream.Next()) != null) { Console.WriteLine(token.TermText()); } Console.ReadKey();
//基于词库的分词算法(盘古分词算法)
打开PanGu4Luene\WebDemo\Bin,将Dictionaries添加到项目根路径(改名Dict),对于其下的文件,在其属性里,输出目录修改为如果较新则复制
添加PanGu.dll的引用(如果直接引用PanGu.dll则必须不带PanGu.xml)
添加PanGu4Luene\Release中PanGu.Luene.Analyzer.dll的引用
其中PanGu_Release_V2.3.1.0\Release\DictManage.exe可以查看Dict.dct二进制词库,既可以查看词汇也可以加入词汇
//基于词库的分词算法(盘古分词) Analyzer analyzer = new PanGuAnalyzer(); TokenStream tokenStream = analyzer.TokenStream("", new StringReader("北京,HI欢饮你hello word")); Lucene.Net.Analysis.Token token = null; while ((token = tokenStream.Next()) != null) { Console.WriteLine(token.TermText()); } Console.ReadKey();
Luene.Net写入类介绍
标签:
原文地址:http://www.cnblogs.com/adolphyang/p/4945769.html