Java solr 分词】的更多相关文章

代码如下: import java.io.IOException; import java.util.*; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerExcept…
背景 实现网站自带的搜索功能,如淘宝中的商品搜索 全文搜索 数据分类 结构化数据:固定格式或长度有限的数据,如数据库.元数据等 非结构化数据:不定长或无固定格式的数据,如邮件.word文档等 搜索分类 结构化数据搜索:关系型数据库 非结构化数据搜索:顺序扫描(低效)/全文搜索 索引 从非结构化数据中提取出的然后重新组织的信息 非结构化数据->有一定结构的数据 对组织后的数据进行搜索 倒排索引 存储在全文搜索下某个单词在一个或一组文档中的存储位置的映射 文档检索系统中最常用的数据结构 场景 搜索的…
solr 分词词库管理思路 大概有以下几种思路: 1. 自定义 SolrRequestHandler        由 SolrRequestHandler 来进行对分词器,进行A)词库加载B)动态添加词库 等操作        这样的话,还需要在内存中hold 住所有的词,或者需要引用到分词的jar 2. 在自定义分词器中实现从文件拉取        对词库文件设置FileWatcher,只要文件有变更,就重新加载一遍词库.        这个成本比较高. 3.  在自定义分词器中实现从db拉…
分词我理解的是,输入的一句话,按照它自己定义的规则分为常用词语. 首先,Solr有自己基本的类型,string.int.date.long等等.   对于string类型,比如在你的core/conf/manage-schema文件中,配置一个字段类型为string类型,如果查询符合“我是中国人”的数据,它就认为“我是中国人”是一个词语.   但是如果你将该字段设置成了分词,即配置成了text_ik类型,就可能匹配“我”.“中国人”.“中国”.“中”.“人”带有这些字的该字段数据都可能被查询到.…
刚接触Lucene2.x和Solr2.x的时候,谈到中文分词,会让我立即想到用庖丁中文分词,庖丁中文分词因巨大的中文词库以及支持不限制个数的用户自定义词库,而且是纯文本格式,一行一词,使用后台线程检测词库的更新,自动编译更新过的词库到二进制版本而出名. 几年过去了,Lucene和Solr都发展到了4.7.x版本,重拾中文分词,发现庖丁中文分词不再是首选,mmseg4j是更佳的选择. mmseg4j支持最多分词,是一款很优秀的中文分词器,是用Chih-Hao Tsai 的 MMSeg 算法( ht…
项目结构 该项目中,.jar和data文件夹和.properties需要从官网/github下载,data文件夹下载 项目配置 修改hanlp.properties: 1 #/Test/src/hanlp.properties: 2 #本配置文件中的路径的根目录 3 #root=E:/SourceCode/eclipsePlace/Test 4 root=./ 5 ...... 配置文件的作用是告诉HanLP数据包即data文件夹的位置,root的值为data文件夹的父目录,可以使用绝对路径或相…
需要包:IKAnalyzer2012_FF_hf1.jarlucene-core-5.5.4.jar需要文件: IKAnalyzer.cfg.xmlext.dicstopword.dic 整理好的下载地址:http://download.csdn.net/detail/talkwah/9770635 import java.io.IOException; import java.io.StringReader; import org.wltea.analyzer.cfg.Configuratio…
word: https://github.com/ysc/word word-1.3.1.jar 需要JDK8word-1.2.jar c语言给解析成了“语言”,自定义词库必须为UTF-8 程序一旦运行,停不下来!百度上百的主要是这个word分词,除了作者的微示例,没有别的例子,感觉全是作者自吹自擂出来的,不好用. import java.util.List; import org.apdplat.word.WordSegmenter; import org.apdplat.word.dicti…
Solr的schema.xml默认配置分词后条件取 OR 例如:大众1.6T  系统会自动分词为  [大众] [1.6T](ps:不同分词器分词效果不同)   会搜索出包含 [大众 OR  1.6T] 的结果. 想要让Solr搜索默认为    [大众 AND 1.6T] 则只需要修改solr\collection1\conf\schema.xml文件solrQueryParser节点 打开schema.xml文件,搜索<solrQueryParser defaultOperator="OR…
具体代码如下: import java.io.IOException; import java.util.*; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrRequest; import org.apache.solr.client.solrj.SolrServerExce…
关于solr7.4搭建与配置可以参考 solr7.4 安装配置篇  在这里我们探讨一下分词的配置 目录 关于分词 配置分词 验证成功 1.关于分词 1.分词是指将一个中文词语拆成若干个词,提供搜索引擎进行查找,比如说:北京大学 是一个词那么进行拆分可以得到:北京与大学,甚至北京大学整个词也是一个语义 2.市面上常见的分词工具有 IKAnalyzer MMSeg4j  Paoding等,这几个分词器各有优劣,大家可以自行研究 在这篇文章,我先演示IKAnalyzer分词器 下载:IKAnalyze…
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 变更日志 创作目的 想为 java 设计一款便捷易用的拼音工具. 如何为 java 设计一款高性能的拼音转换工具 pinyin4j 特性 性能是 pinyin4j 的两倍 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标注方式 支持中文分词 快速开始 准备 jdk 1.7+ maven 引入 <dependency> <groupId>com.github.houbb</groupId&…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.ES 中的 IK 分词器能分中文和英语的原因是什么? ik分词器为中文分词器,默认可对中文分词:通过 Setting API 构造analyzer(字符过滤),可以对IK中文分词器做一些修改,让它实现回溯词根,从而实现真正的英文分词. ES默认有8个 analyzer. 2.IK分词器的类型? Ik_smart分词器 和 ik_max_word 分词器 最粗粒度最细粒度 3.ES中怎么进行拼音的分…
这是我们做的一个小作业,不多说 直接附上我写的代码: public void Zheng() { try { BufferedReader bre = null; //String file = "d.txt"; String file = "Dict.txt"; bre = new BufferedReader(new FileReader(file)); String line; try { while ((line = bre.readLine()) != n…
http://docs.spring.io/spring-data/solr/ 首先介绍一下solr: Apache Solr (读音: SOLer) 是一个开源.高性能.采用Java开发.基于Lucene的全文搜索服务器,文档通过Http利用XML加到一个搜索集合中,查询该集合也是通过 http收到一个XML/JSON响应来实现.Solr 中存储的资源是以 Document 为对象进行存储的.每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性.Solr 中的每个 Doc…
1:Elasticsearch的开源中文分词器 IK Analysis(Star:2471) IK中文分词器在Elasticsearch上的使用.原生IK中文分词是从文件系统中读取词典,es-ik本身可扩展成从不同的源读取词典.目前提供从sqlite3数据库中读取.es-ik-plugin-sqlite3使用方法: 1. 在elasticsearch.yml中设置你的sqlite3词典的位置: ik_analysis_db_path: /opt/ik/dictionary.db 我提供了默认的词…
  IKAnalyzer  IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始,IKAnalyzer已经推出了3个大版本.最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件.新版本的IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现.   paoding  Paoding's Knives中文分词具有极高效率和高扩展性.引入…
1.为什么要配置? 1.我们知道要使用Solr进行搜索,肯定要对词语进行分词,但是由于Solr的analysis包并没有带支持中文的包或者对中文的分词效果不好,需要自己添加中文分词器:目前呼声较高的是IKAnalyzer中文分词器,其他的还没有对比过,等以后有空了再说. 2.如何配置 1).下载IK Analyzer 2012FF_hf1.zip压缩包.下载网址:http://code.google.com/p/ik-analyzer/downloads/list 2).解压压缩包,把IKAna…
多核心的概念 多核心说白了就是多索引库.也可以理解为多个"数据库表" 说一下使用multicore的真实场景,比若说,产品搜索和会员信息搜索,不使用多核也没问题,这样带来的问题是 indexs文件很多,而且产品的索引文件和会员信息的索引文件混在一起,备份也是个问题. 如果使用了多核,那就很轻松了,产品和会员就可使用不同的URL进行提交了,业务上也很清晰,生成的索引文件也不会混在一起,也容易备份. 每个索引库通过相对独立的url访问. 多核心的配置 还记得solr home吗,既然配置多…
Solr多核心及分词器(IK)配置   多核心的概念 多核心说白了就是多索引库.也可以理解为多个"数据库表" 说一下使用multicore的真实场景,比若说,产品搜索和会员信息搜索,不使用多核也没问题,这样带来的问题是 indexs文件很多,而且产品的索引文件和会员信息的索引文件混在一起,备份也是个问题. 如果使用了多核,那就很轻松了,产品和会员就可使用不同的URL进行提交了,业务上也很清晰,生成的索引文件也不会混在一起,也容易备份. 每个索引库通过相对独立的url访问. 多核心的配置…
solr分词过程: Solr Admin中,选择Analysis,在FieldType中,选择text_en 左边框输入 “冬天到了天气冷了小明不想上学去了”,点击右边的按钮,发现对每个字都进行分词.这不符合中国人的习惯. solr6.3.0自带中文分词包,在 \solr-6.3.0\contrib\analysis-extras\lucene-libs\lucene-analyzers-smartcn-6.3.0.jar,但是不能自定义词库 好在我们有IKAnalyzer(已无人更新,目前版本…
Segment Segment 是基于结巴分词词库实现的更加灵活,高性能的 java 分词实现. 变更日志 创作目的 分词是做 NLP 相关工作,非常基础的一项功能. jieba-analysis 作为一款非常受欢迎的分词实现,个人实现的 opencc4j 之前一直使用其作为分词. 但是随着对分词的了解,发现结巴分词对于一些配置上不够灵活. 有很多功能无法指定关闭,比如 HMM 对于繁简体转换是无用的,因为繁体词是固定的,不需要预测. 最新版本的词性等功能好像也被移除了,但是这些都是个人非常需要…
如果需要对带经纬度的数据进行检索,比如查找当前所在位置附近1000米的酒店,一种简单的方法就是:获取数据库中的所有酒店数据,按经纬度计算距离,返回距离小于1000米的数据. 这种方式在数据量小的时候比较有效,但是当数据量大的时候,检索的效率是很低的,本文介绍使用Solr的Spatial Query进行空间搜索. 空间搜索原理 空间搜索,又名Spatial Search(Spatial Query),基于空间搜索技术,可以做到: 1)对Point(经纬度)和其他的几何图形建索引 2)根据距离排序…
SOLR (全文检索) http://sinykk.iteye.com/ 1.   什么是SOLR 官方网站 http://wiki.apache.org/solr http://wiki.apache.org/solr/DataImportHandler 本文档以solr3.4   tomcat6.3  IKAnalyzer3.2.5Stable为例 1.1. 什么是SOLR Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更…
1.开篇语2.概述3.渊源4.初识Solr5.Solr的安装6.Solr分词顺序7.Solr中文应用的一个实例8.Solr的检索运算符 [开篇语]按照惯例应该写一篇技术文章了,这次结合Lucene/Solr来分享一下开发经验. Lucene是一个使用Java语言写的全文检索开发包(API),利用它可以实现强大的检索功能,它的详细介绍大家可以去Google上搜索一下,本文重点放在Solr相关的讨论上. [概述]目前国内研究Solr的人不多,而且大多是因为项目开发需要.Solr师承Lucene,为…
一. SOLR搭建企业搜索平台 运行环境: 运行容器:Tomcat6.0.20 Solr版本:apache-solr-1.4.0 分词器:mmseg4j-1.6.2  词库:sogou-dic 准备工作: 下载tomcat 6.0.20:http://tomcat.apache.org/download-60.cgi 下载solr:http://apache.etoak.com/lucene/solr/1.4.0/ 详情请见:http://wiki.apache.org/solr/Solr1.4…
2010-10 目 录 1 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5 1.5.1 1.5.2 1.6 2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.2.2 2.3 2.3.1 2.3.2 2.4 2.4.1 2.4.2 3 3.1 3.1.1 3.1.2 3.2 3.2.1 3.2.2 3.2.3 3.3 3.3.1 3.3.2…
一. SOLR搭建企业搜索平台  运行环境:  运行容器:Tomcat6.0.20  Solr版本:apache-solr-1.4.0  分词器:mmseg4j-1.6.2  词库:sogou-dic  准备工作:  下载tomcat 6.0.20:http://tomcat.apache.org/download-60.cgi  下载solr:http://apache.etoak.com/lucene/solr/1.4.0/  详情请见:http://wiki.apache.org/solr…
一.前言 之前做solr索引的时候就使用了ANSJ进行中文分词,用着挺好,然而当时没有写博客记录的习惯.最近又尝试了好几种JAVA下的中文分词库,个人感觉还是ANSJ好用,在这里简单总结之. 二.什么是中文分词 百度百科对其定义如下: 中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词.分词就是将连续的字序列按照一定的规范重新组合成词序列的过程.我们知道,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只是字.句和段能通过明显的分界…
Jcseg是什么? Jcseg是基于mmseg算法的一个轻量级中文分词器,同时集成了关键字提取,关键短语提取,关键句子提取和文章自动摘要等功能,并且提供了一个基于Jetty的web服务器,方便各大语言直接http调用,同时提供了最新版本的lucene, solr, elasticsearch的分词接口!Jcseg自带了一个 jcseg.properties文件用于快速配置而得到适合不同场合的分词应用,例如:最大匹配词长,是否开启中文人名识别,是否追加拼音,是否追加同义词等! Jcseg核心功能:…