`
吴英贵
  • 浏览: 7413 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
highlighter介绍 这几天一直加班,博客有三天没有更新了,望见谅;我们在做查询的时候,希望对我们自己的搜索结果与搜索内容相近的地方进行着重显示,就如下面的效果 这里我们搜索的内容是“一步一步跟我学习lucene”,搜索引擎展示的结果中对用户的输入信息进行了配色方面的处理,这种区分正常文本和输入内容的效果即是高亮显示; 这样做的好处: 视觉上让人便于查找有搜索对应的文本块; 界面展示更友好; lucene提供了highlighter插件来体现类似的效果; highlighter对查询关键字高亮处理; highlighter包包含了用于处理结果页查询内容高亮显示的功能,其中H ...
昨天了解了suggest包中的spell相关的内容,主要是拼写检查和相似度查询提示; 今天准备了解下关于联想词的内容,lucene的联想词是在org.apache.lucene.search.suggest包下边,提供了自动补全或者联想提示功能的支持; InputIterator说明 InputIterator是一个支持枚举term,weight,payload三元组的供suggester使用的接口,目前仅支持AnalyzingSuggester,FuzzySuggester andAnalyzingInfixSuggester 三种suggester支持payloads; Inpu ...
suggest应用场景 用户的输入行为是不确定的,而我们在写程序的时候总是想让用户按照指定的内容或指定格式的内容进行搜索,这里就要进行人工干预用户输入的搜索条件了;我们在用百度谷歌等搜索引擎的时候经常会看到按键放下的时候直接会提示用户是否想搜索某些相关的内容,恰好lucene在开发的时候想到了这一点,lucene提供的suggest包正是用来解决上述问题的。 suggest包联想词相关介绍 suggest包提供了lucene的自动补全或者拼写检查的支持; 拼写检查相关的类在org.apache.lucene.search.spell包下; 联想相关的在org.apache.lucene ...
昨天我们了解了lucene搜索之IndexSearcher构建过程(http://blog.csdn.net/wuyinggui10000/article/details/45698667),对lucene的IndexSearcher有一个大体的了解,知道了怎么创建IndexSearcher,就要开始学会使用IndexSearcher进行索引的搜索,本节我们学习索引的查询原理和根据其相关原理写索引查询的工具类的编写; IndexSearcher常用方法 IndexSearcher提供了几个常用的方法: IndexSearcher.doc(int docID) 获取索引文件中的第n个索引存 ...
最近一直在写一步一步跟我学习lucene系列(http://blog.csdn.net/wuyinggui10000/article/category/3173543),个人的博客也收到了很多的访问量,谢谢大家的关注,这也是对我个人的一个激励,O(∩_∩)O哈哈~,个人感觉在博客的编写过程中自己收获了很多,我会一直继续下去,在工作的过程中自己也会写出更多类似系列的博客,也算是对自己只是的一种积累; IndexSearcher 搜索引擎的构建分为索引内容和查询索引两个大方面,这里要介绍的是lucene索引查询器即IndexSearcher的构建过程; 首先了解下IndexSearcher: ...
这两天工作有点忙,博客更新不及时,请大家见谅; 前面了解到lucene在索引创建的时候一个IndexWriter获取到一个读写锁,这样势在lucene创建大数据量的索引的时候,执行效率低下的问题; 查看前面文档一步一步跟我学习lucene(5)---lucene的索引构建原理可以看出,lucene索引的建立,跟以下几点关联很大; 磁盘空间大小,这个直接影响索引的建立,甚至会造成索引写入提示完成,但是没有同步的问题; 索引合并策略的选择,这个类似于sql里边的批量操作,批量操作的数量过多直接影响执行效率,对于lucene来讲,索引合并前是将document放在内存中,因此选择合适的合并策略 ...
lucene创建索引的原理 IndexWriter的addDocument方法详解 今天看了IndexWriter类的addDocument方法,IndexWriter对此方法的说明如下: Adds a document to this index. Note that if an Exception is hit (for example disk full) then the index will be consistent, but this document may not have been added. Furthermore, it's possible the in ...
为什么要使用lucene中文分词器 在lucene的开发过程中,我们常会遇到分词时中文识别的问题,lucene提供了  lucene-analyzers-common-5.0.0.jar包来支持分词,但多的是对英国,法国,意大利等过语言的支持, 因此我们需要引入中文分词的概念。 各种中文分词器及其对比 jcseg中文分词器 jcseg是使用Java开发的一款开源的中文分词器, 使用mmseg算法. 分词准确率高达 98.4%, 支持中文人名识别, 同义词匹配, 停止词过滤... jcseg支持三种切分模式: (1).简易模式:FMM算法,适合速度要求场合。 (2).复杂 ...
analysis说明 lucene ananlysis应用场景 lucene提供了analysis用来将文本转换到索引文件或提供给IndexSearcher查询索引; 对于lucene而言,不管是索引还是检索,都是针对于纯文本输入来讲的; 通过lucene的强大类库我们可以访问各种格式的文档,如HTML、XML、PDF、Word、TXT等, 我们需要传递给lucene的只是文件中的纯文本内容; lucene的词语切分 lucene的索引和检索前提是其对文本内容的分析和词组的切分;比如,文档中有一句话叫“Hello World,Welcome to China” 我们想找到包含这段 ...
Lucene的Field说明 Lucene存储对象是以document为存储单元,对象中相关的属性值则存放到Field中; lucene中所有Field都是IndexableField接口的实现 org.apache.lucene.index.IndexableField Represents a single field for indexing. IndexWriter consumes Iterable<IndexableField> as a document. IndexableField接口提供了一些方法,主要是对field相关属性的获取,包括 ...
应工作的需要(数据量大造成原有系统查询效率低),最近做了搜索引擎相关的内容,之前培训的时候对lucene即有接触,当时做的是3.x版本的,本人比较激进,毫不犹豫的选择了lucene5版本(15年刚发布的,O(∩_∩)O哈哈~)。 lucene是一个开放源代码的全文搜索引擎开发工具包,提供了简单强大的搜索引擎接口,其优点如下: 数据以索引文件的形式存储,索引文件可以跨平台,只要保证索引完整,复制到任何机器或者磁盘空间均可以查询索引内容; 在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文件建立小文件索引,提升索引速度。然后通过与原有索引的合并,达到优化的目的; ...
关于Lock的说明,我看大家看JDK就可以了。 Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。 要注意的是锁定和取消锁定出现在不同作用范围中时,必须谨慎地确保保持锁定时所执行的所有代码用 try-final ...
对一批数据进行排序,然后找出其中的最大最小值。 1)求数组中的最大值 方法1:遍历数组,比对数据。 public static int getMax(int[] array){ int max = 0 ; for (int i : array) { max = max > i ? max : i; } return max; } 方法2:先对数组排序,然后寻找最后一个元素 public static int getMaxBySort(int[] array){ int max = 0 ; Arrays.sort(array); ...
Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。 在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便 抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处 理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。一般情况下是用 try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型 来捕捉(catch)它,或最后(finally)由缺省处理器来处理。 用try来指定一块 ...
抽象类与接口的区别和联系?  在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有 ...
Global site tag (gtag.js) - Google Analytics