① 谁有lucene.net搜索引擎下载地址,发送到[email protected]
lucene.net的一些基本使用方法和概念
http://searcher.org.cn/html/lucene/20071010/285.html
利用Lucene.net搜索引擎进行多条件搜索的做法
http://hi..com/aibosoft/blog/item/23339bd36b422e35970a16e8.html
② net开源项目整理
整理一些平时收藏和应用的开源代码,方便自己学习和查阅
1.应用
nopcommerce ,开源电商网站,开发环境asp.net mvc(未支持.net core),使用技术(autofac,ef,页面插件等)
https://github.com/nopSolutions/nopCommerce
OrchardCMS ,内容管理网站
https://github.com/OrchardCMS/Orchard(.net版本)
https://github.com/OrchardCMS/Orchard2(.net core版本)
ABP(aspnetboilerplate) ,提供一系列工具用于web应用创建,支持 ASP.NET Core, ASP.NET MVC & Web API,也提供了web应用的模板
https://github.com/aspnetboilerplate/aspnetboilerplate(.net core 版本,tag分支有支持.net版本的)
IdentityServer ,用户授权网站(支持openid和OAuth 2.0),可用于单点登录和第三方授权等
https://github.com/IdentityServer/IdentityServer3(.net版本)
https://github.com/IdentityServer/IdentityServer4(.net core版本)
eShopOnContainers 微软提供的微服务实例
https://github.com/dotnet-architecture/eShopOnContainers
PetShop 三层架构经典例子,用于新手学习,不过aspx有点过时了
https://github.com/songhhwd01/PetShop
BlogEngine.NET 博客网站,也是aspx
https://github.com/rxtur/BlogEngine.NET
2.组件
Lucene.Net 全文检索开发组件
https://github.com/apache/lucenenet
ServiceStack 半开源,用于创建web服务
https://github.com/ServiceStack/ServiceStack
MassTransit 可用于创建基于消息的服务和应用,依赖于RabbitMQ
https://github.com/MassTransit/MassTransit
stateless 简单的工作流开发组件,不支持在线定制工作流
https://github.com/dotnet-state-machine/stateless
Hangfire 任务调度开发利器
https://github.com/HangfireIO/Hangfire
Jwt.Net 用于生成JWT (JSON Web Token) 和JWT校验
https://github.com/jwt-dotnet/jwt
npoi 支持office文件的读写
https://github.com/tonyqus/npoi
StackExchange.Redis Redis的.net客户端
https://github.com/StackExchange/StackExchange.Redis
CacheManager 用于缓存的管理,支持Redis.Memcached,couchbase等
https://github.com/MichaCo/CacheManager
Autofac Ioc组件,用于依赖注入
https://github.com/autofac/Autofac
LightGBM 用于机器学习
https://github.com/Microsoft/LightGBM
3.框架
asp.net mvc
https://github.com/aspnet/Mvc
Nancy 类似asp.net mvc,web开发框架
https://github.com/NancyFx/Nancy
4.其他
dotnet core 主页 ,提供dotnet core相关知识的索引和例子,方便快速入门
https://github.com/dotnet/core
.net源码
https://github.com/Microsoft/referencesource
③ lucene怎么用
Lucene是一个全文检索系统框架,开源的。
用起来比较方便,去Lucene的官网上下一个包并导入到你的工程中就可以调用包里面的类了。
一般的书里面介绍的版本都是1.4.3或者稍微高级一点的,不过现在lucene3.0正式发布,一些函数调用方法已经改变了,你可以下载一个版本低一点的Lucene比较适合学习~
当然你直接从3.0入手的话网上资料也是非常丰富的~
④ 怎么使用dotlucene或lucene.net
真的?
⑤ lucene.net对word文档建立索引
使用lucene的标准分析器对中文是按照单字索引的,也是能搜中文的,只是准确度不高而已。你指的不能搜中文这个问题最好是检查下编码方面有没问题。如果想提高中文准确度必须使用分词组件扩展lucene的标准分析器。分词是个难题,没有最好,只有更好。谢谢
⑥ lucene按匹配度排序是怎么做到的
Lucene的搜索结果默认按相关度排序,这个相关度排序是基于内部的Score和DocID,Score又基于关键词的内部评分和做索引时的boost。默认Score高的排前面,如果Score一样,再按索引顺序,先索引的排前面。那么有人问了,如果我要先索引的排后面怎么办呢?隐士研究了源码后发现这是相当简单的事情。以下代码基于Lucene 2.0。
看Sort的默认构造函数,相关度就是SortField.FIELD_SCORE和SortField.FIELD_DOC的组合。
java 代码
/**
* Sorts by computed relevance. This is the same sort criteria as calling
* {@link Searcher#search(Query) Searcher#search()}without a sort criteria,
* only with slightly more overhead.
*/
public Sort() {
this(new SortField[] { SortField.FIELD_SCORE, SortField.FIELD_DOC });
}
那么该如何构造我们需要的SortField呢?请看SortField的一个构造函数,有一个参数reverse可供我们调整结果集的顺序。
java 代码
/** Creates a sort, possibly in reverse, by terms in the given field with the
* type of term values explicitly given.
* @param field Name of field to sort by. Can be <code>null</code> if
* <code>type</code> is SCORE or DOC.
* @param type Type of values in the terms.
* @param reverse True if natural order should be reversed.
*/
public SortField (String field, int type, boolean reverse) {
this.field = (field != null) ? field.intern() : field;
this.type = type;
this.reverse = reverse;
}
由此可见,只要构造一个SortField[]就可以实现我们要的功能,请看:
java 代码
// 评分降序,评分一样时后索引的排前面
new SortField[] { SortField.FIELD_SCORE, new SortField(null, SortField.DOC, true) }
// 评分升序,评分一样时后索引的排前面,呵呵,此为最不相关的排前面,挺有趣的
new SortField[] { new SortField(null, SortField.SCORE, true), new SortField(null, SortField.DOC, true) }
呵呵,只要将此SortField[]作为参数传入Sort的构造函数得到Sort的一个instance,将此instance传入searcher.search(query, sort)即可得到了期望的结果。
⑦ c#如何引入lucene.net
如果你用lucene.net的话,只能下到2.0版本的,因为2.0以后转入商业化了,开源版本定格在了2.0。下载的网址同楼上。
至于引用,没什么好说的吧,直接引用那几个dll就行了,不过分析器也就是Analyzer可能要自己写,或者下一些现成的,比如ChineseAnalyzer,如果用它默认的那个标准分析器,对于中文的分词会有些问题,也就是常说的CJK问题
⑧ Lucene.Net IndexSearcher index = new IndexSearcher(path);
一般中文都是用google的paoding分词。。你可以去google免费下载使用
如果是lucene可以自定义Field啊?
晕。。要例子。。贴一个给你:paoding的标准文档例子:
String IDNEX_PATH = "E:/paoding_test_index";
//获取Paoding中文分词器
Analyzer analyzer = new PaodingAnalyzer();
//建立索引
IndexWriter writer = new IndexWriter(IDNEX_PATH, analyzer, true);
Document doc = new Document();
Field field = new Field("content", "你好,世界!", Field.Store.YES,
Field.Index.TOKENIZED, Field.TermVector.WITH_POSITIONS_OFFSETS);
doc.add(field);
writer.addDocument(doc);
writer.close();
System.out.println("Indexed success!");
//检索
IndexReader reader = IndexReader.open(IDNEX_PATH);
QueryParser parser = new QueryParser("content", analyzer);
Query query = parser.parse("你好");
Searcher searcher = new IndexSearcher(reader);
Hits hits = searcher.search(query);
if (hits.length() == 0) {
System.out.println("hits.length=0");
}
Document doc2 = hits.doc(0);
//高亮处理
String text = doc2.get("content");
TermPositionVector tpv = (TermPositionVector) reader.getTermFreqVector(
0, "content");
TokenStream ts = TokenSources.getTokenStream(tpv);
Formatter formatter = new Formatter() {
public String highlightTerm(String srcText, TokenGroup g) {
if (g.getTotalScore() <= 0) {
return srcText;
}
return "<b>" + srcText + "</b>";
}
};
Highlighter highlighter = new Highlighter(formatter, new QueryScorer(
query));
String result = highlighter.getBestFragments(ts, text, 5, "…");
System.out.println("result:\n\t" + result);
⑨ 请问lucene3.6.1 + IKanalyzer2012应该如何配置,网上查资料总是提到一个src/目录,可是我的没有这个目录。
源码下载-src.tgz的文件,使用的话要下载.tgz或则.zip的文件压缩包。我一般下载的是.zip包。
⑩ 如何在eclipse中导入lucene源码
1.启动eclipse,使用svn插件从https //svn apache org/repos/asf/lucene把trunk代码checkout出来。 2.如果你没有安装ant,那么先安装ant(ant.apache.org)。
3.进入cmd,切入到源代码目录(在lucene和solr目录的上一级)。
4.然后使用ant eclipse(如果你没有安装ivy的话,ant会提示你安装,按照提示安装)
5.在eclipse中创建java project,勾掉Use default location,选择luence,然后下一步直到完成导入lucene,同样的导入solr。
6.因为solr引用lucene,所以在solr的buildpath中加入对lucene项目引用。