solr、Lucene、IKAnalyzer这三者关系是怎样的?
lucene 是开源搜索引擎
solr 是基于 lucene开发的搜索引擎
IK 是中文分词。
lucene 不是一个搜索引擎,只是一个基础的文件索引工具包,或者叫“搜索引擎开发包”。不能单独作为程序运行,但是可以使用它来开发搜索引擎。你可 以认为它就是一个普通开发包。必须用它开发自己的应用后才能 运行。lucene定义了并处理索引数据的数据结构,在disk上的分布等。提供创建和读取 索引文件的接口。
索引文件是lucene用于存放索引数据的真正位置。
而solr就是一个基于lucene开发包开发的搜索引擎。下载solr包,安装就可以运行,不用再开发。如果你有需要也可以在solr上再开发。
solr安装后根据需要配置一下,就可以索引自己的数据进去,并进行搜索。除solr外还有elastic search 等基于lucene开发的其它
开源搜索引擎。
IKAnalyzer 和solr没有直接关系。 IK 是用来分词的一个工具包,有支持lucene的接口。所谓分词就是把一句话分成一些词语, 英文
可以简单的用空格分割:“this is a cat”.分词后就变为4个词“this” "is" "a" "cat“ 。对于中文句子”这是只猫
“ 就不能简单分割来。怎么分割才有意义呢?有不同的算法来处理中文分词,IK就是其中的一种,用来进行中文分词。
lucene在索引文件前也需要对一些句子分词。所以对于中文 ,要分词可以用IK工具包。 同样做中文分词的还有 庖丁 mmj(后演变为
smartcn, 目前支持最新的solr版本 solr4.3)等中文分词工具。 所以你可以认为 用IK 可以完成lucene索引流程中的分词步
骤。完整的数据索引除了分词还有其它步骤要做。所以可认为IK是一个lucene的 分词插件。用于分中文。lucene还有很多其它语言的分词插件。
上述内容摘自CSDN论坛:http://bbs.csdn.net/topics/390436346?page=1
当运行分词程序或者包含分词的程序,例如我最近使用到的TF-IDF算法,就会使用到lucene和IKAnalyzer两个jar包。此处参考自:TF-IDF理解及其Java实现
当程序只添加IKAnalyzer时候,程序中的报错为:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at tf_idf.ReadExtract.cutWords(ReadExtract.java:69)
at tf_idf.ReadExtract.tfAllFiles(ReadExtract.java:130)
at tf_idf.ReadExtract.main(ReadExtract.java:205)
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.analysis.Analyzer
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 15 more
此时导入Lucene包即可:
其中IKAnalyzer和Lucene包的版本采用上述博客提供的版本,具体如下:
solr、Lucene、IKAnalyzer这三者关系是怎样的?的更多相关文章
- solr 启动报错Cannot load analyzer: org.wltea.analyzer.lucene.IKAnalyzer
schema.xml 配置文件信息: <field name="title" type="text_ik" indexed="true" ...
- solr配置IKAnalyzer抛出ClassNotFoundException
这个问题搞了很久,在QQ群上问了很久,关键很气人的是我居然被群主给开了.我也是醉了.我不知道我哪里得罪了那个solr群的群主. 废话不多说.抛出的异常如下: 刚开始一直认为是没有找到类,也就相当于没找 ...
- 【solr】Solr与JDK对应版本关系,Tomcat与JDK
Solr与JDK对应版本关系,Tomcat与JDK版本对应关系 最新在部署solrCloud集群,由于自己机器上用的JDK都是JDK1.7的,然后我就从网上下载了最新下载了最先的solr6.6.0和最 ...
- lucene+IKAnalyzer实现中文纯文本检索系统
首先IntelliJ IDEA中搭建Maven项目(web):spring+SpringMVC+Lucene+IKAnalyzer spring+SpringMVC搭建项目可以参考我的博客 整合Luc ...
- linux下bus,device,driver三者关系
linux下bus,device,driver三者关系 1.bus: 总线作为主机和外设的连接通道,有些总线是比较规范的,形成了很多协议.如 PCI,USB,1394,IIC等.任何设备都可以选择合适 ...
- 【转】Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自[张鸿洋的博客] 很多人面试肯定都被问到过,请问Andr ...
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
转自:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自[张鸿洋的博客] 很多人面试肯定都被问到过,请问Android中的 ...
- VUE中 $on, $emit, v-on三者关系
VUE中 $on, $emit, v-on三者关系 每个vue实例都实现了事件借口 使用$on(eventName)监听事件 使用$emit(eventName)触发事件 若把vue看成家庭(相当于一 ...
- Feign Ribbon Hystrix 三者关系 | 史上最全, 深度解析
史上最全: Feign Ribbon Hystrix 三者关系 | 深度解析 疯狂创客圈 Java 分布式聊天室[ 亿级流量]实战系列之 -25[ 博客园 总入口 ] 前言 疯狂创客圈(笔者尼恩创建的 ...
随机推荐
- HUAWEI HiAI常见FAQ小贴士
8月7日,HUAWEI HiAI系统架构师在CSDN平台为广大开发者进行了以“APP进阶实战:最快10分钟接入HUAWEI HiAI”主题的直播,迎来600多名开发者在线上观看. 直播中,讲师详细 ...
- 搭建RocketMQ踩的坑-内存不足
环境是vmvare+ubuntu 1.http://rocketmq.apache.org/docs/quick-start/ 按照官网来启动mqnamesrv和mqbroker报错 错误如下 The ...
- python urllib 和 urllib2
urllib 和 urllib2 都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: urllib 仅可以接受URL,不能创建 设置了headers 的Request 类实例: ...
- ios 集成阿里百川的坑-【SDK初始化-iOS】读取身份图片AppKey失败
最简易方法调用淘宝app: 引用文件 #import <AlibcTradeSDK/AlibcTradeSDK.h> AlibcWebViewController* view = [[Al ...
- java微信开发API解析(四)-自己定义菜单以及个性化菜单实现
全局说明 * 具体说明请參考前两篇文章. 本文说明 *本文分为五部分: * 工具类AccessTokenUtils的封装 * 自己定义菜单和个性化菜单文档的阅读解析 * 菜单JSON的分析以及构建相应 ...
- tomcat添加crt证书
使用keytool生成证书苹果手机添加后提示未验证,可以使用Apache的openssl生成证书导入到tomcat中. 使用Apache 生成证书:openssl genrsa 4096 > s ...
- ionic + cordova 环境搭建
1.安装nodejs:官网下载安装包,双击安装即可.成功后在控制台输入node -v 显示版本号即成功. 2.安装Java,配置环境变量,下载安卓sdk ,配置环境变量 ANDROID_HOME 为s ...
- 如何停止和扭转UIView的动画
本文转载至 http://codego.net/576089/ 我有它收缩时碰到切换按钮UIView的动画跳和它扩展恢复到原来的大小当再次接触到按钮.密封式前大灯一切都工作得很好.问题是,动画师注意 ...
- 【BZOJ3444】最后的晚餐 乱搞
[BZOJ3444]最后的晚餐 Description [问题背景] 高三的学长们就要离开学校,各奔东西了.某班n人在举行最后的离别晚餐时,饭店老板觉得十分纠结.因为有m名学生偷偷找他,要求和自己暗恋 ...
- Grafana----Table Panel
新的表面板非常灵活,既支持时间序列的多模式,也支持表.注释和原始JSON数据.它还提供日期格式化和值格式化和着色选项.要查看表板动作和测试不同的配置数据,查看台面板展示在grafana操场. Opti ...