lucene内存索引库、分词器】的更多相关文章

内存索引库 特点 在内存中开辟一块空间,专门为索引库存放.这样有以下几个特征: 1)    因为索引库在内存中,所以访问速度更快. 2)    在程序退出时,索引库中的文件也相应的消失了. 3)    如果索引库比较大,必须得保证足够多的内存空间. 编码 在cn.hqu.directory 下新建:DirectoryTest /** * 1.能不能设置很多个索引库 *    可以设置很多个索引库 * 2.索引库能不能合并起来 *    如果是内存索引库 *      Directory ramD…
目录 1 分词器概述 1.1 分词器简介 1.2 分词器的使用 1.3 中文分词器 1.3.1 中文分词器简介 1.3.2 Lucene提供的中文分词器 1.3.3 第三方中文分词器 2 IK分词器的使用 2.1 配置pom.xml文件, 加入IK分词器的依赖 2.2 修改索引流程的分词器 2.3 修改检索流程的分词器 2.4 重新创建索引 3 扩展中文词库 3.1 加入IK分词器的配置文件 3.2 增加扩展词演示(扩展: 人民邮电出版社) 3.3 增加停用词演示(增加: 的.和) 1 分词器概…
IndexWriter.addIndexes(ramDirectory); http://blog.csdn.net/qq_28042463/article/details/51538283 在lucene索引库的创建的时候,我们有两种不同的索引库创建方式 1.文件索引库 final Path docDir = Paths.get("index");Directory directory=FSDirectory.open(Paths.get("index")); 这…
注意:基于lucene5.5.x版本 一.简单介绍下IK Analyzer IK Analyzer是linliangyi2007的作品,再此表示感谢,他的博客地址:http://linliangyi2007.iteye.com/ IK Analyzer支持两种分词,一种是最细粒度分词(推荐使用,Ik默认采用最细粒度),还有一种的智能分词(测试了一下智能分词还没有lucene自带的分词准确,呵呵了). 二.IK Analyzer兼容性问题解决办法 IKanalyzer目前最新版本只支持到lucen…
2.查询索引库 插入测试数据 xx.xx. index. ArticleIndex @Test public void testCreateIndexBatch() throws Exception{ IndexWriter indexWriter = new IndexWriter(LuceneUtils.directory, LuceneUtils.analyzer,MaxFieldLength.LIMITED); for(inti=0;i<25;i++){ Article article…
Lucene.net Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,是一个高性能.可伸缩的文本搜索引擎库.它的功能就是负责将文本数据按照某种分词算法进行切词,分词后的结果存储在索引库中,从索引库检索数据的速度非常快.Lucene.net需要有索引库,并且只能进行站内搜索.(来自百度百科) 效果图 盘古分词 如何使用 将PanGu.dIl与PanGu.Lucenet.…
目录 1 添加索引 2 删除索引 2.1 根据Term删除索引 2.2 删除全部索引(慎用) 3 更新索引 数据保存在关系型数据库中, 需要实现增.删.改.查操作; 索引保存在索引库中, 也需要实现增.删.改.查操作. 1 添加索引 参考 Lucene 02 - Lucene的入门程序(Java API的简单使用) 中的内容: 2 删除索引 2.1 根据Term删除索引 根据Term删除索引的步骤为: (1) 创建分析器对象(Analyzer), 用于分词; (2) 创建索引配置对象(Index…
问题描写叙述:将一句话拆分成单个字符.而且去掉空格. package com.mylucene; import java.io.IOException; import java.io.Reader; import org.apache.lucene.analysis.Tokenizer; import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.analysis.to…
索引添加 Field域属性分类 添加文档的时候,我们文档当中包含多个域,那么域的类型是我们自定义的,上个案例使用的TextField域,那么这个域他会自动分词,然后存储 我们要根据数据类型和数据的用途合理的选择合适的域 Field类: StringField(fieldName,fieldValue,Stroe.YES/NO) 存储的数据类型为字符串,包含索引,是否存储根据Stroe定义,不会经过分析器 StroeField(fieldName,fieldValue) 支持多种数据类型,不分析,…
相关的类调用关系 DocumentsWriterPerThread ——>DocFieldProcessor   DocumentsWriterPerThread里的consumer对象(类型是DocFieldProcessor)负责field的内数据的存储   1 consumer.processDocument(fieldInfos);    在存储field内容这方面只是简单的把docid,field和fieldinfo放入子成员storedConsumer里   2  consumer.…
对Lucene代码优化 我们再次看回我们上一篇快速入门写过的代码,我来截取一些有代表性的: 以下代码在把数据填充到索引库,和从索引库查询数据的时候,都出现了.是重复代码! Directory directory = FSDirectory.open(new File("E:/createIndexDB")); //使用标准的分词算法对原始记录表进行拆分 Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30); 以下的代码其…
1. 学习计划 第一天:Lucene的基础知识 1.案例分析:什么是全文检索,如何实现全文检索 2.Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3.配置开发环境 4.创建索引库 5.查询索引库 6.分析器的分析过程 a) 测试分析器的分词效果 b) 第三方中文分析器 7.索引库的维护 a) 添加文档 b) 删除文档 c) 修改文档 8.Lucene的高级查询Lucene的查询 a) 使用Query的子类查询 MatchAllDocsQuery TermQuery Numeri…
介绍 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎.Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供.Lucene提供了…
一.快速入门1. 查看集群的健康状况http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状态值说明 Green - everything is good (cluster is fully functional),即最佳状态Yellow - all data is available but some replicas are not yet allocated (cluster is…
一.分词器 lucene针对不同的语言和虚伪提供了许多分词器,我们可以针对应用的不同的需求使用不同的分词器进行分词.我们需要注意的是在创建索引时使用的分词器与搜索时使用的分词器要保持一致.否则搜索的结果就不是我们期望的结果.lucene提供的常规分词器如下: •StandardAnalyzer 标准分词器 •IKAnalyzer 基于Lucene的第三方中文分词技术 •WhitespaceAnalyzer 空格分词器 •SimpleAnalyzer 简单分词器 •CJKAnalyzer 二分法分…
一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在pom.xml里面引入如下依赖 <!-- lucene 核心模块 --> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId&…
Lucene 6.0使用IK分词器需要修改修改IKAnalyzer和IKTokenizer. 使用时先新建一个MyIKTokenizer类,一个MyIkAnalyzer类: MyIKTokenizer.java import java.io.IOException; import java.io.Reader; import org.apache.lucene.analysis.Tokenizer; import org.apache.lucene.analysis.tokenattribute…
一.分词器 1. 认识分词器  1.1 Analyzer   分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如处理文本中的html标签字符.处理完后再交给tokenizer进行分词.一个analyzer中可包含0个或多个字符过滤器,多个按配置顺序依次进行处理. tokenizer:分词器,对文本进行分词.一个analyzer必需且只可包含一个tokenizer. token filter:词项过滤器,对to…
lucene.net中每个分词器都是一个类,同时有一个辅助类,这个辅助类完成分词的大部分逻辑.分词类以Analyzer结尾,辅助类通常以Tokenizer结尾.分类词全部继承自Analyzer类,辅助类通常也会继承某个类. 首先在Analysis文件夹下建立两个类,EasyAnalyzer和EasyTokenizer. using Lucene.Net.Analysis; using System.IO; namespace LuceneNetTest { public class EasyTo…
转载请注明出处! IK分词器如果配置成 <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query…
1.创建索引流程 原始文档:互联网上的网页(爬虫或蜘蛛).数据库中的数据.磁盘上的文件 创建文档对象(非结构化数据) 文档对象中的属性不叫属性现在成为域. 每个 Document 可以有多个 Field ,不同的 Document 可以有不同的 Field,同一个 Document 可以有相同的 Field(域名和域值都相同). 每个文档都有一个唯一的编号,就是文档id 分析文档     将原始内容包含域的文档,需要再对域中的内容进行分析,分析的过程是经过对原始文档提取单词.将字母转为小写.去除…
原理: 修改的原理是先删除,后增加一个,这也是常用的一种修改的方式. 删除的文档的id不会被新增加的文档占用,类似于mysql的自增,当删除一个id=2时,以后id=2就是空着的,不会上来一个把2给占用.再添加是往后面增加. 代码: 删除fileName 为 javaweb的索引,然后新增加一个索引,索引的term是fileN与fileC,值分别是"测试文件名"与"测试文件内容". 原来的索引结构:…
增加在入门程序创建索引中,增删改用IndexWriter. 1.获取IndexWriter的代码 // public IndexWriter getIndexWriter() throws Exception{ // 第一步:创建一个java工程,并导入jar包. // 第二步:创建一个indexwriter对象. Directory directory = FSDirectory.open(new File("E:\\lucene&solr\\index")); // Dir…
删除索引(文档) 需求 某些图书不再出版销售了,我们需要从索引库中移除该图书. 1 @Test 2 public void deleteIndex() throws Exception { 3 // 1.指定索引库目录 4 Directory directory = FSDirectory.open(new File("F:\\lucene\\0719")); 5 // 2.创建IndexWriterConfig 6 IndexWriterConfig cfg = new IndexW…
前言: lucene全文搜索之一中讲解了lucene开发搜索服务的基本结构,本章将会讲解如何创建索引器.管理索引目录和中文分词器的使用. 包括标准分词器,IKAnalyzer分词器以及两种索引目录的创建 luncene5.5.3集合jar包下载地址:http://download.csdn.net/detail/eguid_1/9677589 一.创建索引器 创建lucene的索引器需要两个要素:一个是分词器,一个是索引目录. 那么就让我们创建这两个实例 1.创建分词器 (1)创建lucene内…
前言: 前面几章已经很详细的讲解了如何创建索引器对索引进行增删查(没有更新操作).如何管理索引目录以及如何使用分词器,上一章讲解了如何生成索引字段和创建索引文档,并把创建的索引文档保存到索引目录,到这里我们已经知道如何建立索引,那么本章将会详解如何搜索索引目录中的索引文档索以及如何创建索引搜索器和六种文档搜索器(搜索器)的实现. luncene5.5.3集合jar包下载地址:http://download.csdn.net/detail/eguid_1/9677589 一.创建索引搜索器 索引搜…
目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://github.com/kencery/Lucene_Compass(项目内部有很详细的注释) 1.分词器的作用 a. 在创建索引的时候需要用到分词器,在使用字符串搜索的时候也会用到分词器,并且这两个地方要使用同一个分词器,否则可能会搜索不出来结果. b. 分词器(Analyzer)的作用是把一段文本中的词按…
 1  Lucene卡发包结构分析 包名 功能 org.apache.lucene.analysis Analysis提供自带的各种Analyzer org.apache.lucene.collation 包含collationKeyFilter和collationKeyAnalyzer两个相同功能的类,将所有token转为CollationKey,与IndexableBinaryStringTools一起存为term org.apache.lucene.document Document包…
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断. 11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 /**  * 获取文本的所有分词结果, 对比不同分…
一.WhitespaceAnalyzer 以空格作为切词标准,不对语汇单元进行其他规范化处理.很明显这个实用英文,单词之间用空格. 二.SimpleAnalyzer 以非字母符来分割文本信息,并将语汇单元统一为小写形式,并去掉数字类型的字符.很明显不适用于中文环境. 三.StopAnalyzer 停顿词分析器会去除一些常有a,the,an等等,也可以自定义禁用词,不适用于中文环境 四.StandardAnalyzer 标准分析器是Lucene内置的分析器,会将语汇单元转成小写形式,并去除停用词及…