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完成对实体的添加、删除、修改、查找这些操作,

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

  1. Solr添加paoding分词器

    1.Solr3.6.2 并可运行 paoding-analysis3.0.jar  下载 2.1 解压{$Solr-Path}/example/webapp 下的solr.war文件,解压到当前文件夹 ...

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

    本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...

  3. 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较

    本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...

  4. Apache Lucene(全文检索引擎)—分词器

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...

  5. 【Lucene3.6.2入门系列】第04节_中文分词器

    package com.jadyer.lucene; import java.io.IOException; import java.io.StringReader; import org.apach ...

  6. Lucene 03 - 什么是分词器 + 使用IK中文分词器

    目录 1 分词器概述 1.1 分词器简介 1.2 分词器的使用 1.3 中文分词器 1.3.1 中文分词器简介 1.3.2 Lucene提供的中文分词器 1.3.3 第三方中文分词器 2 IK分词器的 ...

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

    IKAnalyzer简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包. IKAnalyzer特性 a. 算法采用“正向迭代最细粒度切分算法”,支持细粒度和最大词长两 ...

  8. (五)Lucene——中文分词器

    1. 什么是中文分词器 对于英文,是安装空格.标点符号进行分词 对于中文,应该安装具体的词来分,中文分词就是将词,切分成一个个有意义的词. 比如:“我的中国人”,分词:我.的.中国.中国人.国人. 2 ...

  9. Lucene的分词_中文分词器介绍

    Paoding:庖丁解牛分词器.已经没有更新了. MMSeg:搜狗的词库. MMSeg分词器的一些截图: 步骤: 1.导入包 2.创建的时候使用MMSegAnalyzer分词器

随机推荐

  1. html 随机验证码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 英语DIAMAUND钻石指坚硬不可侵犯的物质

    首先谈谈钻石和金刚石的名称.金刚石是一种天然矿物,是钻石的原石.习惯上人们常将加工过的金刚石称为钻石,而未加工过的称为金刚石(当然,有的金刚石不用加工便可应用).钻石是那些达到宝石级别的金刚石晶体切磨 ...

  3. 网络编程之 tcp服务器(一)

    1.创建套接字 2.bind绑定ip和port 作为服务方,ip port 应该是固定的,所以要绑定;客户端一般不绑定 3.listen使套接字变成监听套接字,即变为被动链接 4.accept等待客户 ...

  4. Caffeine用法

    Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将取代Guava.如果出现Caffeine,CaffeineCacheManager将会自动配置.使用sp ...

  5. 【OEM】OEM安装维护

    [OEM]OEM安装维护 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道 ...

  6. 【故障解决】OGG-00446 错误解决

    [故障解决]OGG-00446 Could not find archived log for sequence 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和 ...

  7. Linux--基本目录

    特点 系统版本:CentOS 6.5 Linux目录:一切从根开始 Linux下面的设备(磁盘)不挂载的话没有办法使用,使用设备必须有一个入口,挂载点实质就是一个目录. 目录结构及含义 目录 说明 b ...

  8. 基于glew,freeglut的imshow

    OpenGL显示图片,这篇博客使用glew + freeglut + gdal来实现imshow. 主要修改: 使用BGR而不是RGB,保持和opencv行为一致 纯C,去掉C++相关的 去掉GDAL ...

  9. 面试中的nginx高可用高并发!

    本文转自:91博客:原文地址:http://www.9191boke.com/439923471.html 面试题: nginx高可用?nginx 是如何实现并发的?为什么nginx不使用多线程?ng ...

  10. Ceph添加、删除osd及故障硬盘更换

    添加或删除osd均在ceph部署节点的cent用户下的ceph目录进行. 1. 添加osd 当前ceph集群中有如下osd,现在准备新添加osd: (1)选择一个osd节点,添加好新的硬盘: (2)显 ...