文章分类 -  Lucene.Net

摘要:汇总:http://www.cnblogs.com/WessonStar/tag/elasticsearch/ Elasticsearch - Scroll 念无伤 2018-01-26 17:38 阅读:45 评论:0 Elasticsearch - Scroll 念无伤 2018-01-26 1 阅读全文
posted @ 2018-03-09 09:59 冰封的心 阅读(166) 评论(0) 推荐(0) 编辑
摘要:文章来源:http://www.cnblogs.com/crazybottle/p/3911291.html本章阅读概要1、Lucenne.Net简介2、介绍盘古分词器3、Lucene.Net实例分析4、结束语(Demo下载)Lucene.Net简介 Lucene.net是Lucene的.net移... 阅读全文
posted @ 2014-08-16 20:57 冰封的心 阅读(626) 评论(0) 推荐(2) 编辑
摘要:来源:http://www.cnblogs.com/FuzhePan/p/3874963.htmlLucene做站内搜索的时候经常会遇到实时搜索的应用场景,比如用户搜索的功能。实现实时搜索,最普通的做法是,添加新的document之后,调用 IndexWriter 的 Commit 方法把内存中的索... 阅读全文
posted @ 2014-08-14 20:26 冰封的心 阅读(711) 评论(0) 推荐(0) 编辑
摘要:目录一Lucene.Net概述二 分词三 索引四 搜索五 实践中的问题一Lucene.Net概述 Lucene.Net是一个C#开发的开源全文索引库,其源码包括“核心”与“外围”两部分。外围部分实现辅助功能,而核心部分包括:Lucene.Net.Index 提供索引管理,词组排序。Lucene.Net.Search 提供查询相关功能。Lucene.Net.Store 支持数据存储管理,主要包括I/O操作。Lucene.Net.Util 公共类。Lucene.Net.Documents 负责描述索引存储时的文件结构管理。Lucene.Net.QueryParsers 提供查询语法。Lucene. 阅读全文
posted @ 2013-03-22 10:25 冰封的心 阅读(737) 评论(1) 推荐(5) 编辑
摘要:计算两个字符串的差异距离函数 /// <summary> /// 计算两个字符串的差异距离 /// </summary> /// <param name="source">来源字符串</param> /// <param name="target">目标字符串</param> /// <returns>字符串差距</returns> public int CalcDistance(string source, string target) { ... 阅读全文
posted @ 2011-09-07 14:19 冰封的心 阅读(307) 评论(0) 推荐(0) 编辑
摘要:引用地址:http://www.cnblogs.com/Aimeast/archive/2011/09/05/2167844.html来源:.Net.NewLife。 需求:假设在某系统存储了许多地址,例如:“北京市海淀区中关村大街1号海龙大厦”。用户输入“北京 海龙大厦”即可查询到这条结果。另外还需要有容错设计,例如输入“广西 京岛风景区”能够搜索到"广西壮族自治区京岛风景名胜区"。最终的需求是:可以根据用户输入,匹配若干条近似结果共用户选择。 目的:避免用户输入类似地址导致数据出现重复项。例如,已经存在“北京市中关村”,就不应该再允许存在“北京中关村”。 举例: 此类技 阅读全文
posted @ 2011-09-07 11:46 冰封的心 阅读(285) 评论(0) 推荐(0) 编辑
摘要:在Lucene.net实现自定义排序,需要实现两个Lucene.Net.Search的两个接口:public interface SortComparatorSource{ ScoreDocComparator NewComparator(IndexReader reader , System.String fieldname) ;}public interface ScoreDocComparator{ int Compare(ScoreDoc i , ScoreDoc j) ; System.IComparable SortValue(ScoreDoc i) ; int SortType( 阅读全文
posted @ 2011-01-02 10:44 冰封的心 阅读(379) 评论(1) 推荐(0) 编辑
摘要:我们知道利用Lucene.Net的不同的Query(常见如BooleanQuery,RangeQuery等等),可以有针对性地进行各种不同类型的搜索。利用QueryParser(或MultiFieldQueryParser),配合构造好的搜索关键字(搜索表达式),也可以实现不同类型的搜索。本文重点就是简单介绍一下搜索表达式和不同类型的Query之间的简单对比。本文最后的demo,QueryApp工程下有文章里贴出的大部分示例代码,代码自己会说话,有时候它可能更好地表达了文章作者的思路。您可以下载对照着本文进行阅读。一、与或非1、与举例:搜索contents既包含“jeffreyzhao”,又有 阅读全文
posted @ 2011-01-02 10:31 冰封的心 阅读(268) 评论(0) 推荐(0) 编辑
摘要:用Lucene.Net的锁,可以理解为只读操作。它的Search方法是我们最常用的,该方法返回我们需要的结果。2、QueryParserQueryParser是Query的构造器,它的Parse方法会根据Analyzer构造一个合理的Query对象来应对搜索。 3、QueryQuery类作为查询表达式的载体同样至关重要,它有丰富的子类,让我们可以应对多种变化的搜索需求,简单来说,我们想到的常用搜索Lucene.Net几乎已经都给我们实现了,你只要分辨应该使用那个类来搜索比较合理。4、TopDocs(或者Hits)这个类我们可以简单把它理解成它就是我们要的搜索结果集,通过它我们可以知道记录集合中 阅读全文
posted @ 2011-01-02 10:30 冰封的心 阅读(345) 评论(1) 推荐(1) 编辑
摘要:项目中可能需要再次用到Lucene.Net,利用空闲时间写了个demo,主要涉及到索引的创建、删除、更新和一个简单查询。在本文示例中,Lucene.Net的版本是2.4.0,某些类和方法与最新版本或者较旧的版本有较多不同,希望您阅读顺利。一、简单认识索引Lucene.Net的应用相对比较简单。一段时间以来,我最多只是在项目中写点代码,利用一下它的类库而已,对很多名词术语不是很清晰,甚至理解可能还有偏差。从我过去的博客你也可以看出,语言表达一直不是个人所长,就算”表达“了也有大面积抄书的嫌疑,所以很多概念性的介绍能省则省(除非特别有别要说明),希望有心的初学者注意,理清概念和辨别技术名词非常重要 阅读全文
posted @ 2011-01-02 10:28 冰封的心 阅读(237) 评论(0) 推荐(0) 编辑
摘要:同义词检索应该很多时候会用得上的,举个简单的例子,我们搜索关键字 good 的时候,与 well 和 fine 等的词条也可能是你想要的结果。这里我们不自己建立同义词库,直接使用 WordNet 的同义词库,本篇介绍 C# 版的实现步骤,还会有续篇--Java 版。由于 Lucene 是发源于 Java,所以 C# 的应用者就没有 Java 的那么幸福了,Java 版已经有 3.0.2 可下载,C... 阅读全文
posted @ 2010-07-15 09:14 冰封的心 阅读(933) 评论(0) 推荐(1) 编辑
摘要:代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingLucene.Net.Index;usingLucene.Net.S... 阅读全文
posted @ 2010-07-06 17:21 冰封的心 阅读(889) 评论(0) 推荐(0) 编辑
摘要:1. 有时对于一个Document来说,有一些Field会被频繁地操作,而另一些Field则不会。这时可以将频繁操作的Field和其他Field分开存 放,而在搜索时同时检索这两部分Field而提取出一个完整的Document。 这要求两个索引包含的Document的数量必须相同。在创建索引的时候,可以同时创建多个IndexWriter,将一个Document根据需要拆分成多个包含部分Field的... 阅读全文
posted @ 2010-07-06 16:11 冰封的心 阅读(186) 评论(0) 推荐(0) 编辑
摘要:1. 基本应用using System;using System.Collections.Generic;using System.Text;using Lucene.Net;using Lucene.Net.Analysis;using Lucene.Net.Analysis.Standard;using Lucene.Net.Documents;using Lucene.Net.Index;u... 阅读全文
posted @ 2010-07-06 16:07 冰封的心 阅读(264) 评论(1) 推荐(0) 编辑
摘要:1. 基本应用using System;using System.Collections.Generic;using System.Text;using Lucene.Net;using Lucene.Net.Analysis;using Lucene.Net.Analysis.Standard;using Lucene.Net.Documents;using Lucene.Net.Index;u... 阅读全文
posted @ 2010-07-06 16:04 冰封的心 阅读(232) 评论(0) 推荐(0) 编辑
摘要:【++yong的博客地址:http://blog.csdn.net/qjyong】开源全文搜索工具包Lucene2.9.1的使用。1. 搭建Lucene的开发环境:在classpath中添加lucene-core-2.9.1.jar包 2. 全文搜索的两个工作: 建立索引文件,搜索索引. 3. Lucene的索引文件逻辑结构 1) 索引(Index)由若干块(片段)(Segment)组成 a... 阅读全文
posted @ 2010-07-05 23:43 冰封的心 阅读(291) 评论(0) 推荐(0) 编辑
摘要:1. 搭建Lucene的开发环境: 1) 在classpath中添加lucene-core-x.x.x.jar包 2. 全文搜索的两个工作 1) 建立索引文件: 2) 搜索索引: 3. Lucene的索引文件逻辑结构: 1) 索引(Index)由若干块(片段)(Segment)组成 ★2) 块由若干文档(Document)组成: 一个文件映射成一个文档。数据库表中的一条记录映射成一个文... 阅读全文
posted @ 2010-07-05 23:43 冰封的心 阅读(339) 评论(0) 推荐(0) 编辑
摘要:对于并发,Lucene.Net 遵循以下规则:1. 允许任意多的读操作并发,即任意数量用户可同时对同一索引做检索操作。2. 即便正在进行索引修改操作(索引优化、添加文档、删除文档),依然允许任意多的检索操作并发执行。3. 不允许并发修改操作,也就是说同一时间只允许一个索引修改操作。Lucene.Net 内部已经对多线程安全进行了处理,打开 IndexWrite.cs / IndexReade.cs... 阅读全文
posted @ 2010-06-17 10:22 冰封的心 阅读(259) 评论(0) 推荐(0) 编辑
摘要:实验一下面的代码中,我们使用两个线程来模拟并发的读写操作。运行该代码,我们会发现 IndexReader 并不能获得 Directory 的变更数据。private void Test1(){Directory directory = new RAMDirectory();Analyzer analyzer = new StandardAnalyzer();new Thread(delegate(... 阅读全文
posted @ 2010-06-17 10:22 冰封的心 阅读(166) 评论(0) 推荐(0) 编辑
摘要:#region 建立索引public void CreateIndex() { DataSet ds = 取得数据库信息; //取得索引输出 IndexWriter writer = new IndexWriter(这个地方写保存路径, true); writer.SetMergeFactor(20); // 调整segment合并的频率和大小 //建立索引字段 if (ds.Tables[0]... 阅读全文
posted @ 2010-06-16 00:08 冰封的心 阅读(148) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示