主要参考: http://www.cnblogs.com/dennisit/p/3258664.html
原文写得非常好,非常详细。但是版本有一些老了,以其中的displayToken()中跟displayAllTokenInfo()已经需要修改。否则无法在最新的4.10上工作。
在最新的版本之中,需要:
(1)在stream的incrementToken之前增加一个reset的动作:
(2)(我使用JapaneseAnalyzer测试的结果) 这样显示的结果,会出现重复:
比如:
写道
原文:日本経済新聞でモバゲーの記事を読んだ
======日文=======StandardAnalyzer======分词=======
["日本","日本経済新聞","経済","新聞","モバゲ","記事","読む"]
======日文=======StandardAnalyzer======分词=======
["日本","日本経済新聞","経済","新聞","モバゲ","記事","読む"]
我对改方法进行了修改,通过offset进行判定是否略过。
修改之后的displayAllTokenInfo():
public static void displayAllTokenInfo(String str,Analyzer a){ try { TokenStream stream = a.tokenStream("content",new StringReader(str)); //位置增量的属性,存储语汇单元之间的距离 PositionIncrementAttribute pis=stream.addAttribute(PositionIncrementAttribute.class); //每个语汇单元的位置偏移量 OffsetAttribute oa=stream.addAttribute(OffsetAttribute.class); //存储每一个语汇单元的信息(分词单元信息) CharTermAttribute cta=stream.addAttribute(CharTermAttribute.class); //使用的分词器的类型信息 TypeAttribute ta=stream.addAttribute(TypeAttribute.class); stream.reset(); int lastOffset = -1; while(stream.incrementToken()) { if(oa.startOffset() < lastOffset) continue; lastOffset = oa.endOffset(); // System.out.print("增量:"+pis.getPositionIncrement()+":"); // System.out.print("分词:"+cta+"位置:["+oa.startOffset()+"~"+oa.endOffset()+"]->类型:"+ta.type()+"\n"); System.out.print("["+cta+"]"); } System.out.println(); stream.end(); } catch (IOException e) { e.printStackTrace(); } }
相关推荐
《深入剖析Lucene 4.10:IKAnalyzer_all_jar的应用与理解》 Lucene 4.10是Apache Lucene项目的一个重要版本,它是一个高性能、全文本搜索引擎库,广泛应用于各种信息检索系统中。这个版本在索引效率、查询性能以及...
在这个场景中,我们讨论的是如何在`Lucene 4.10`版本中,结合`IKAnalyzer 5.0`这个中文分词器来提取敏感词。 `Lucene`的核心功能之一是能够对输入的文档进行索引,以便快速地进行全文搜索。然而,在某些应用中,...
`lucene-highlighter-4.10.3.CHM`涉及高亮显示,即在搜索结果中突出显示匹配的查询词。它提供了多种高亮策略和样式,能增强用户体验,使用户更容易发现搜索关键词。 综上所述,这个Lucene 4.10.3 API CHM合集为...
Lucene 是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎...
3. 搜索:`src/core/org/apache/lucene/search`目录下的代码实现了搜索算法,包括评分、排序和结果集的处理。其中,`IndexSearcher`是主要的搜索接口,它与`Weight`和`Scorer`协同工作,执行实际的搜索任务。 4. ...
而IK分词器是为Solr和Lucene设计的一款强大的中文分词工具,可以有效提高中文文本的检索效率和准确性。 首先,部署Solr 4.10.2到Tomcat服务器是将Solr作为Web应用程序运行的常见方式。Tomcat是一个流行的开源Java ...
同时,它还包含分词器(Analyzer)用于将文本分割成可搜索的词元,以及查询解析器(QueryParser)将用户输入转化为搜索查询。 `lucene-analyzers-common-4.10.2.jar`是Lucene的通用分析器包。分析器是处理文本的...
最后,junit-4.10.jar是JUnit测试框架的一个版本,用于编写和运行可重复的单元测试。在开发和维护像Lucene这样的复杂系统时,测试是不可或缺的一环。JUnit提供了断言、测试套件、参数化测试等功能,帮助开发者确保...
- **分词和索引**:它使用Lucene库进行文本分析和索引,能进行词语拆分、同义词扩展和停用词过滤等操作。 - **字段存储和检索**:Solr允许用户为不同字段设置不同的检索策略,如精确匹配、范围查询等。 - **排序...
- **4.1.1 Lucene切分原理**:介绍了Lucene分词机制的基本原理。 - **4.1.2 Lucene中的Analyzer**:讲解了Analyzer组件的作用及其实现方法。 - **4.1.3 自己写Analyzer**:探讨了如何自定义Analyzer以满足特定...
4.10. MultiFieldQueryParser类--多域搜索 13 4.11. MultiSearcher类--多个索引搜索 13 4.12. ParalellMultiSearcher类---多线程搜索 14 5. 排序 14 5.1. Sort类 14 5.2. SortField类 14 5.3. 指定排序的法则 15 ...
随着版本的迭代,Lucene不断优化性能和功能,4.10版本引入了更多改进,例如增强的分词器、更高效的索引结构和查询执行策略。这些更新使得在处理大量数据时,Lucene能保持更快的速度和更高的稳定性。 二、建立索引 ...
- Solr使用Lucene库作为其基础搜索引擎,提供了更高级的索引和查询功能。 2. **安装与配置** - 安装Solr涉及下载、解压、配置服务器环境,以及启动Solr服务器。 - 配置主要包括定义核心(collection)、设置数据...
在Eclipse中使用Lucene时,需要正确引入相关的jar包,包括Lucene-core-4.10.jar等核心库以及IKAnalyzer2012FF.jar这样的分词器。 首先,为了在Eclipse项目中使用Lucene,你需要下载必要的jar包并将其放入lib文件夹...
- 在Solr管理界面上测试中文分词效果:在Analysis模块中,选择刚刚配置的`text_ik`字段类型,输入一段中文文本,点击“Analyse Values”按钮查看分词结果。 通过以上步骤,不仅完成了Solr的基本安装配置,还成功地...
- `new StandardAnalyzer()`:创建了一个标准分析器,用于分词。 - 第三个参数`true`和`false`分别表示是否删除已存在的索引。 ##### 2. 向RAMDirectory添加文档 ```java ramWriter.addDocument(...); ramWriter....
`junit-dep-4.10.jar`是JUnit测试框架的旧版本,用于编写和运行单元测试,确保代码的正确性。 `htmlparser.jar`是一个HTML解析库,可以解析HTML文档并提供DOM树状结构,方便对HTML内容进行处理和分析。 综上所述,...