compass和paoding分词器的基本使用

1.实现搜索的技术:

数据库查询:like查询;lucene全文检索技术;

1)在数据量比较大,查询字段比较多的情况下,如果采用数据库like sql查询,性能比较差;采用lucene来查询,性能相对于数据库like sql查询要好些;

2)如果采用lucene进行搜索,搜索到的结果相关度比较高,而且会把匹配度高的记录排在最前面,而数据库的like语句查询只会查询回来含有关键字的记录,其内容相关度不高,并且不能实现把匹配度高的记录排在前面;

使用baidu/google搜索引擎搜索某个关键字,搜索结果比较靠前的是匹配度比较高的数据;

3)采用lucene进行搜索,能够进行高显示,而数据库like sql语句查询达不到这一点(可用js页面实现)

2.建立索引,根据分词器对这个内容,分完词,放在索引中

查询索引,输入的关键字进行分词,分完词就查询索引;

分词原理:一元分词(一个字一个字分)/二元词(两个字两个字分)/字典分词匹配度是最好的,但必须要建立字典,目前关于中午这个分词,叫paoding解牛分词,(使用字典分词):用它解析分词比较好;

不准备用lucene的API来进行开发,使用对lucene进行面向对象封装的一个框架compass API来完成商品搜索功能;相当于不使用JDBC API操作数据库,而使用Hibernate API操作数据库原理是一样的;

做软件一直强调的是面向对象,所以用Hibernate api(ORM),所以使用面向对象方式操作搜索引擎索引,所以就使用compass api(object search engine/mapping osem),但底层还是使用的lucene;

学习compass API,只要会hibernate,掌握compass api只需半个小时

1)设计实体,并完成实体的映射元数据(hbm.xml/@Entity注解)

hibernate:3.0之后可以用注解方式,hibernate解压包里的doc文档可以查看用注解方式进行映射

在实体类上加上:@Searchable作用:把该类定义为搜索实体,该搜索实体与搜索的document进行映射

@SearchableId作用:定义该属性为搜索实体的标识属性;默认映射到document的id字段

@SearchProperty(name="跟document中的哪个字段相映射",index=Index.NOT_ANALYZED(不分词,但建立索引)/ANALYZED(分词并建立索引),store=Store.YES(默认是属性值保存到索引文件中))

2)利用hibernate的api完成对实体的添加、删除、修改、查找这些操作,

时间: 2025-01-14 07:50:02

compass和paoding分词器的基本使用的相关文章

11大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断. 11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /** * 获取文本的所有分词结果, 对比不同分词器结果 * @author 杨尚川 */ public interface WordSegmenter {

9大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1.学会使用9大Java开源中文分词器 2.对比分析9大Java开源中文分词器的分词效果 9大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /**  * 获取文本的所有分词结果, 对比不同分词器结果  * @author 杨尚川  */ public interface WordSegmenter {     /**      * 获取文本的所有分词结果      * @param text 文本      * @retur

中文分词器性能比较

摘要:本篇是本人在Solr的基础上,配置了中文分词器,并对其进行的性能测试总结,具体包括 使用mmseg4j.IKAnalyzer.Ansj,分别从创建索引效果.创建索引性能.数据搜索效率等方面进行衡量. 具体的Solr使用方法假设读者已有了基础,关于Solr的性能指标见前期的Solr博文. 前提:       Solr提供了一整套的数据检索方案,一台四核CPU.16G内存的机器,千兆网络.需求:       1.对Solr创建索引的效率有一定的要求. 2.中文分词速度要快,搜索速度也要快. 3

当前几个主要的Lucene中文分词器的比较

1. 基本介绍: paoding:Lucene中文分词"庖丁解牛" Paoding Analysis imdict :imdict智能词典所采用的智能中文分词程序 mmseg4j: 用 Chih-Hao Tsai 的 MMSeg 算法 实现的中文分词器 ik :采用了特有的"正向迭代最细粒度切分算法",多子处理器分析模式 2. 开发者及开发活跃度: paoding :qieqie.wang, google code 上最后一次代码提交:2008-06-12,svn

Lucene实现自定义中文同义词分词器

---------------------------------------------------------- lucene的分词_中文分词介绍 ---------------------------------------------------------- Paoding:庖丁解牛分词器.已经没有更新了 mmseg:使用搜狗的词库 1.导入包(有两个包:1.带dic的,2.不带dic的) 如果使用不带dic的,得自己指定词库位置 2.创建MMSegAnalyzer(指明词库所在的位置

第三方中文分词器整理

paoding: 庖丁解牛最新版在 https://code.google.com/p/paoding/ 中最多支持Lucene 3.0,且最新提交的代码在 2008-06-03,在svn中最新也是2010年提交,已经过时,不予考虑. mmseg4j:最新版已从 https://code.google.com/p/mmseg4j/ 移至 https://github.com/chenlb/mmseg4j-solr,支持Lucene 4.10,且在github中最新提交代码是2014年6月,从09

13.solr学习速成之IK分词器

IKAnalyzer简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包. IKAnalyzer特性 a. 算法采用"正向迭代最细粒度切分算法",支持细粒度和最大词长两种分词方式,速度最大支持80W字/秒(1600KB/秒). b. 支持多子处理器分析模式:中文.数字.字母,并兼容日文.韩文. c. 较小的内存占用,优化词库占有空间,用户可自定义扩展词库. d. 扩展lucene的扩展实现,采用歧义分析算法优化查询关键字的搜索排列组合,提高lucene检

ElasticSearch最全分词器比较及使用方法

介绍:ElasticSearch 是一个基于 Lucene 的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口.Elasticsearch 是用 Java 开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. Elasticsearch中,内置了很多分词器(analyzers).下面来进行比较下系统默认分词器和常用的中文分词器之间的区别. 系统默认分词器:1.

lucene分词器中的Analyzer,TokenStream, Tokenizer, TokenFilter

分词器的核心类: Analyzer:分词器 TokenStream: 分词器做好处理之后得到的一个流.这个流中存储了分词的各种信息,可以通过TokenStream有效的获取到分词单元. 以下是把文件流转换成分词流(TokenStream)的过程 首先,通过Tokenizer来进行分词,不同分词器有着不同的Tokenzier,Tokenzier分完词后,通过TokenFilter对已经分好词的数据进行过滤,比如停止词.过滤完之后,把所有的数据组合成一个TokenStream:以下这图就是把一个re