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完成对实体的添加、删除、修改、查找这些操作,
compass和paoding分词器的基本使用的更多相关文章
- Solr添加paoding分词器
1.Solr3.6.2 并可运行 paoding-analysis3.0.jar 下载 2.1 解压{$Solr-Path}/example/webapp 下的solr.war文件,解压到当前文件夹 ...
- 11大Java开源中文分词器的使用方法和分词效果对比
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...
- 11大Java开源中文分词器的使用方法和分词效果对比,当前几个主要的Lucene中文分词器的比较
本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那 ...
- Apache Lucene(全文检索引擎)—分词器
目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...
- 【Lucene3.6.2入门系列】第04节_中文分词器
package com.jadyer.lucene; import java.io.IOException; import java.io.StringReader; import org.apach ...
- Lucene 03 - 什么是分词器 + 使用IK中文分词器
目录 1 分词器概述 1.1 分词器简介 1.2 分词器的使用 1.3 中文分词器 1.3.1 中文分词器简介 1.3.2 Lucene提供的中文分词器 1.3.3 第三方中文分词器 2 IK分词器的 ...
- 13.solr学习速成之IK分词器
IKAnalyzer简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包. IKAnalyzer特性 a. 算法采用“正向迭代最细粒度切分算法”,支持细粒度和最大词长两 ...
- (五)Lucene——中文分词器
1. 什么是中文分词器 对于英文,是安装空格.标点符号进行分词 对于中文,应该安装具体的词来分,中文分词就是将词,切分成一个个有意义的词. 比如:“我的中国人”,分词:我.的.中国.中国人.国人. 2 ...
- Lucene的分词_中文分词器介绍
Paoding:庖丁解牛分词器.已经没有更新了. MMSeg:搜狗的词库. MMSeg分词器的一些截图: 步骤: 1.导入包 2.创建的时候使用MMSegAnalyzer分词器
随机推荐
- 《区块链DAPP开发入门、代码实现、场景应用》笔记4——Ethereum Wallet中部署合约
账号创建完成之后,账号余额是0,但是部署合约是需要消耗GAS的,因此需要获取一定的以太币才能够继续本次实现.在测试网中获取以太币可以通过挖矿的方式,在开发菜单中可以选择打开挖矿模式,但是这需要将Syn ...
- mysql模糊查询1,11,111用逗号(其他符号)拼接的相似字符串
mysql进行模糊查询时,基本都是LIKE "%sss%",有时候这种查询时准确的,但是有种情况这种查询会出现很大问题. 看一下下面这张表 如果想查询字段test包含1的数据,一般 ...
- 捡回reset的未提交修改
使用 Reflog 如果一開始沒有記下來 Commit 的 SHA-1 值也沒關係,Git 裡有個 reflog 指令有保留一些紀錄.再次借用上個章節的例子,但這次我改用 --hard 模式來進行 r ...
- 使用python模拟实现KNN算法
一.KNN简介 1.KNN算法也称为K邻近算法,是数据挖掘分类技术之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表. 2.KNN算法的核心思想是如果一个样本 ...
- 图记 2016.1.7 获取本地图片、Bitmap转image
这几天完成的内容有: 1.“添加图片”按钮 2.添加图片功能 遇到的问题: 我想要将添加图片按钮放在右下角,所以采用了相对布局,但是问题随之二来,因为将导航栏设置成了半透明,所以图片放到右下角之后,半 ...
- nodejs 删除空文件
var fs = require("fs") var path = require("path") var listRealPath = path.resolv ...
- 02-CSS常用样式
本篇主要介绍css的常用样式,以及网页布局相关知识.绝对定位和相对定位,盒子模型.css权重.以及css选择器: 绪论:CSS基本介绍 为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开, ...
- 五、Linux_ping命令
ping命令用法为:“ping 参数 目标主机”.其中参数为零到多个,目标主机可以是IP或者域名. 1.每隔0.6秒ping一次,一共ping 5次: [root@aiezu.com ~]# ping ...
- 自已编译openweb docker image笔记
1.基于https://github.com/jketterl/openwebrx git clone https://github.com/jketterl/openwebrx.git 2.首先创建 ...
- 下载恶意pcap包的网站
说几个我经常用的,免费的:1. Malware Traffic Analysis: http://www.malware-traffic-analysis.net/2018/index.htm ...