Solr从入门到精通
文章平均质量分 77
我的Solr学习记录之路,从入门到基本业务支撑,面对的问题,未来的发展
当以乐
成长是打破枷锁的有效方式.
展开
-
Jetty加载solr-5.1.0 并且添加mmseg4j分词器
1.下载solr-5.1.0后进入到solr-5.1.0\server目录下新建一个start.bat文件用来启动jetty内容如下 echo "begin start the jetty......"java -jar %cd%/start.jar这里我下载的放在了百度云中 链接:http://pan.baidu.com/s/1c1sxDbM 密码:z7z2原创 2016-03-21 18:36:43 · 1499 阅读 · 2 评论 -
solr入门之搜索建议配置和代码Demo
检索建议 检索建议目前是各大搜索的标配应用,主要作用是避免用户输入错误的搜索词,同时将用户引导到相应的关键词搜索上。Solr内置了检索建议功能,它在 Solr里叫做Suggest模块.该模块可选择基于提示词文本做检索建议,还支持通过针对索引的某个字段建立索引词库做检索建议。在诸多文档中都推荐使 用基于索引来做检索建议,因此我们目前的实现也是采取该方案。 现在我们开始原创 2016-03-21 19:03:10 · 2847 阅读 · 0 评论 -
solr入门之搜索建议的几种实现方式和最终选取实现思路
上篇博客中我简单的讲了下solr自身的suggest模块来实现搜索建议.但是今天研究了下在solr自身的suggest中添加进去拼音来智能推荐时不时很方便.在次从网上搜集和整理思考了下该问题的解决.http://www.cnblogs.com/huangfox/p/4146970.html问题背景搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误原创 2016-03-22 19:19:23 · 9445 阅读 · 0 评论 -
solr入门之搜索建议的拼音转换工具
上篇博客中我们确定了搜索建议的具体方案,该方案中涉及到一个将汉字转换为拼音的问题.这里我们主要讲解这个问题.使用pinyin4j来完成.1 . jar获取方式: maven com.belerweb pinyin4j 2.5.1 或者 直接从我的原创 2016-03-22 19:28:40 · 4029 阅读 · 0 评论 -
solr入门之suggest系统架构搭建
1.系统使用 SSM 来搭建 使用maven和svn用来管理jar和版本控制2.架构搭建--1.maven的配置文件导入jar包依赖和文件资源管理2.配置web.xml加载spring相关的配置文件3.配置spring相关的配置 springmvc 数据连接 及 事务处理(solr用不到)4.配置相关工具类 AOP切面日志工具类原创 2016-03-23 19:25:29 · 2310 阅读 · 0 评论 -
solr入门之创建solrcloud的collection索引集合
1.上传配置文件到liunx系统中(我们用了堡垒机)上传方式 rz -e2.切换到root用户 sudo su -将你上传的配置文件解压到当前目录后新建一个脚本文件 xxxx.sh内容如下java -classpath ./:/usr/local/solr/server/solr-webapp/webapp/WEB-INF/lib/* org.apache.solr.clou原创 2016-03-24 19:51:06 · 6657 阅读 · 2 评论 -
solr入门之字符串生成唯一标识--MD5加密
今天项目中涉及到一个id的问题,从数据源中取出数据后需要设置一个文档id,为能保证相同词的id是相同的,我采用的是md5的方法来建立idimport java.security.MessageDigest;/** * MD5加密工具类 * * * @author songqinghu * @version [版本号, 2016年3月25日] * @see [原创 2016-03-25 19:20:38 · 1627 阅读 · 2 评论 -
solr入门之多线程操作solr中索引字段的解决
涉及的问题:建索引时有一个字段是该词语出现的次数,这个字段是放在solr里的 而我用的是多线程来进行全量导入的,这里就涉及到了多线程问题多个线程操作同一个变量时如何处理?我是这样子做的 :首先将变量本地话--分布式就放到大容器中,我这里仅仅使用了一个map来存词和次数的关系映射变量本地化后就是多线程的解决了--锁的设置-我仅仅是在操作时加了一个锁来解决这原创 2016-03-28 18:55:29 · 4641 阅读 · 4 评论 -
solr入门之搜索建议的具体查询及拼音加汉字搜索建议的思考
今天项目主要是完善已经完成的代码优化----昨天写的多线程处理solr字段的问题可能会存在内存溢出的问题,还需要优化 下 ....下面是拼音,汉字完成自动补全的 代码/** * 索引建议查询类 * @author songqinghu * */@Controller@RequestMapping("/suggest/query")public class Quer原创 2016-03-29 18:38:39 · 1850 阅读 · 0 评论 -
solr入门之拼音加汉字方式的搜索建议自动补全的不高效实现
今天思考实现了下字符加汉字的搜索建议的 实现--思想主要还是昨天的思想,不过这个方法使用的是匹配查询 ,查询速度可能不太理想 /** * * @描述:用于完成拼音加汉字 组合情况的搜索建议 ---尽量少用 * @param params * @return * @return ResultData>原创 2016-03-30 19:08:05 · 3728 阅读 · 1 评论 -
solr入门之solr的拼写检查功能的应用级别尝试
今天主要是收集了些拼写检查方面的资料和 尝试使用一下拼写检查的功能--=遇到了不少问题拼写检查的四种配置目前我只算是成功了半个吧---------------------------------拼写检查功能,能在搜索时,提供一个较好用户体验,所以,主流的搜索引擎都有这个功能。在这之前,笔者先简单的说一下什么是拼写检查,其实很好理解,就是你输入的搜索词,可能是你输错了,也有可能在原创 2016-03-31 20:08:28 · 5120 阅读 · 1 评论 -
solr入门之拼写纠错深入研究及代码Demo
昨天粗略的研究了下solr自身的拼写纠错功能,效果不是很好,今天继续研究了其中的依靠文件来纠错和主索引纠错的方式===================文件加载方式配置-- solr.FileBasedSpellChecker file spellings.txt UTF-8 ./spellchecker原创 2016-04-01 18:45:19 · 4106 阅读 · 0 评论 -
solr入门之索引中词频的统计方法
上次说的多线程统计solr中词语出现的次数问题,存在内存溢出的问题.这次研究了下solr自身来实现词语的统计1.使用 /terms 来统计http://localhost:8983/solr/meixin_suggest/terms?wt=json&indent=true&terms.fl=suggest&terms.limit=100&terms.prefix=cl说原创 2016-04-05 19:33:07 · 5794 阅读 · 0 评论 -
solr入门之pinyin4j的源码改写初尝试
目标:pinyin4j中收录了很多的词,但是也有一些词语是未被收录的,目前想做到的效果是能将为收录的词语收录进去,而且还不需要重新启动服务===================================================源码观看//测试用调用的方法String[] strs = PinyinHelper.toHanyuPinyinStringArray(c原创 2016-04-06 19:09:17 · 2876 阅读 · 0 评论 -
solr入门之pinyin4j源码改写动态添加扩展词及整合进war项目中
1.初始化时加载用户定义的字典package net.sourceforge.pinyin4j;import net.sourceforge.pinyin4j.multipinyin.Trie;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import原创 2016-04-07 19:11:15 · 6474 阅读 · 0 评论 -
solr入门之solr5x源码在eclipse中运行及添加mmseg分词器
1.下载ant,解压后设置环境变量链接:http://pan.baidu.com/s/1eRZJIuQ 密码:9452 Ant环境变量配置: ANT_HOME: E:\Program Files\apache-ant-1.9.0 Path: %ANT_HOME%\bin设置完成后 打开命令行 输入 ant -version 显原创 2016-04-11 15:38:38 · 1444 阅读 · 5 评论 -
solr入门之数据源处理工具类去除字段中括号内内容,字母,数字及特殊符号
项目中solr获取到数据源后,需要对获取到的字段再进行加工处理.目标: 除去词语中的括号内的内容,词语中英文字符,数字,及特殊符号 仅仅保留汉字/** * 字符处理过滤工具类 * @author songqinghu * */public class StringFilterUtils { private static Logger logger = Logger原创 2016-04-12 19:06:15 · 1645 阅读 · 0 评论 -
solr入门之设计自己的Java本地缓存工具类
上次设计的那个缓存仅仅是个粗糙的模板,存在内存溢出的风险,今天又学习些东西重新构建了一个本地缓存类(可以设置大小)本次缓存类使用了LUR算法+LinkedHashMap来实现的.LRU是Least Recently Used 近期最少使用算法。内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载原创 2016-04-12 19:16:17 · 1144 阅读 · 0 评论 -
solr入门之请求调度模块的简单书写
今天改写了一个功能主要是搜索建议时可能会有汉字+拼音搜索的情况,这种情况我单独在主接口外写了一个接口.本次就是将两个接口整合在一起.目的:当时拼音加汉字时调用辅助接口,否则使用主接口.考虑到后面可能还有拼写检查的加入,特意加了一个调度模块.1.注入调度类 @Resource private RequestDispatchProcess requestDispa原创 2016-04-13 18:55:26 · 810 阅读 · 0 评论 -
solr入门之lucene创建索引和查询索引及查询的源码读取类确定
lucene创建和查询索引Demopackage com.git.lucene;import java.io.File;import java.io.IOException;import java.util.ArrayList;import org.apache.commons.io.FileUtils;import org.apache.lucene.analysis.Anal原创 2016-04-13 19:02:43 · 6026 阅读 · 0 评论 -
solr入门之lucene的索引操作之增加,删除,修改,查询及查询解析代码模板
package com.git.lucene;import java.io.File;import java.io.IOException;import java.util.ArrayList;import org.apache.commons.io.FileUtils;import org.apache.lucene.analysis.Analyzer;import org.ap原创 2016-04-14 15:08:05 · 1393 阅读 · 0 评论 -
solr入门之权重排序方法初探之使用edismax改变权重
做搜索引擎避免不了排序问题,当排序没有要求时,solr有自己的排序打分机制及sorce字段1.无特殊排序要求时,根据查询相关度来进行排序(solr自身规则)2.当涉及到一个字段来进行相关度排序时,可以直接使用solr的sort功能来实现3.对多个字段进行维度的综合打分排序(这个应该才是重点,内容)使用Solr搭建搜索引擎很容易,但是如何制定合理的打分规则(boost)做排序原创 2016-04-15 19:29:14 · 42438 阅读 · 4 评论 -
solr入门之edismax权重排序使用之Java代码实现自定义权重
实现代码:package com.git.edismax;import java.io.IOException;import org.apache.solr.client.solrj.SolrClient;import org.apache.solr.client.solrj.SolrQuery;import org.apache.solr.client.solrj.SolrSe原创 2016-04-18 18:48:27 · 7435 阅读 · 0 评论 -
solr入门之自定义排序之构建自己的权重计算方法及相应的排序字段
需求:1、需求:调整排序算法改为综合得分排名2、规则:①搜索方式:先过滤,后排序②搜索字段:用户昵称③匹配方式:分词完全匹配④排序按照综合得分高低进行排序展示综合得分=达人得分(权重:单独计算)+粉丝数得分(权重:75%)+基础得分(权重:25%)a.达人得分在搜索结果中置顶展示,其中优先开通美店达人b.粉丝数得分粉丝数越多,权重越高原创 2016-04-19 18:53:34 · 6031 阅读 · 0 评论 -
solr入门之参考淘宝搜索提示功能优化拼音加汉字搜索功能
首先看一下从淘宝输入搜索关键字获取到的一些数据信息:第一张:使用拼音的全程来查询可以看到提示的是匹配的转换的拼音的方式,看最后一个提示项这里还有一个在指定分类目录下搜索的功能,难道后台还存储的类目的信息?还有一个标签的信息要存储第二使用首字母来匹配 这里看不出来 淘宝的东西太多了,首字母直接有了对应的全程第三使用切断字母的匹配 看的出来 走的还是完全匹配原创 2016-04-21 18:30:25 · 12095 阅读 · 3 评论 -
solr入门之solr安全控制的研究和实践(一)
本研究基于solr官方文档:链接:http://pan.baidu.com/s/1geAadZ9 密码:02x0solr从5.3.0开始提供了安全验证的机制,具体有以下几种方式:Kerberos Authentication PluginBasic Authentication PluginRule-Based Authorization PluginCusto原创 2016-04-25 19:00:10 · 5153 阅读 · 2 评论 -
solr入门之solr安全控制的研究和实践(二)
Permission Attributes(权限属性)每个用户又一个或者几个权限组成,每个权限由几个定义过可以做哪些事的属性组成.下面有一些不能被修改的预定义权限:Pre-defined Permissions有一些预定义的权限。这些固定的默认值,不能修改,无法添加新属性。要使用这些属性,只需定义一个角色,包括这个权限, 然后给一个用户分配角色。se原创 2016-04-26 20:40:06 · 9739 阅读 · 0 评论 -
solr入门之solr安全控制的研究和实践(三) zookeeper访问控制
ZooKeeper Access Control(zookeeper 访问控制)--530-535这部分描述的是使用zookeeper的访问控制列表(ACLs)对于solr.有关zookeeper ACLs的信息 ,可以看zookeeper的文档:http://zookeeper.apache.org/doc/r3.4.6/zookeeperProgrammers.html#s原创 2016-04-27 19:03:11 · 2647 阅读 · 1 评论 -
solr入门之多线程默认查询solr库的返回结果不一致问题
今天遇到了个问题项目中的solr的索引建立需要去查询另外一个solr的库来得到数据源我是使用多线程默认的score排序来做的期间多次发现查询的结果顺序不一致刚刚开始以为是多线程操作变量导致后来加入线程锁,现象已经存在然后使用debug来调试,最后锁定查询solr库这个地方发现根本就是查询的结果就是这个样子.这里就不能使用默认的score来进行排序了.选取一个能够原创 2016-04-28 19:10:00 · 2979 阅读 · 0 评论 -
solr入门之使用jetty加载solrcloud
1.jetty介绍Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。liunx创建一个软连接htt原创 2016-05-05 19:16:55 · 2512 阅读 · 0 评论 -
solr入门之安全认证和权限控制实践
原创 2016-05-05 19:44:44 · 2945 阅读 · 0 评论 -
solr入门之搭建具有安全控制和权限管理功能的SolrCloud集群
结合上次搭建项目和配置安全控制的经验,工程的搭建过程应该如下:1.搭建zookeeper集群2.配置solr的jetty启动配置3.在solr启动配置中增加zk的acl配置信息4.使用solr配置,启动solrcloud集群将 集群交给zookeeper管理5.上传相关的配置文件,创建集合6.上传安全配置文件7.登录admin界面,查看集群状态及能否访问到zookeep原创 2016-05-13 17:12:08 · 9431 阅读 · 0 评论 -
solr入门之solr5.5.0源码导入eclipse运行tomcat启动项目报404的解决
如果你已经将solr的源码下载下来,并且编译了导入到eclipse中,而且转为web项目启动的各个jia包也都配置好了,项目也能用tomcat正常启动,但是我们原来访问 ip:host/projectname时就能后访问到solr的管理界面这次取报错404?这种问题应该如何去解决??第一种:使用jetty的eclipse插件来解决在eclipse中安装jetty插件原创 2016-05-17 11:41:14 · 2577 阅读 · 3 评论 -
Solr入门之官方文档6.0阅读笔记系列(一)
搜索引擎开始学习--官方文档地址:链接:http://pan.baidu.com/s/1mhA7PZq 密码:7f1e直接上6.0版本的 算是研究最前沿吧需要下载 solr6.0系列和更改java环境为1.8链接:http://pan.baidu.com/s/1pLkt7F9 密码:os2msolr5.5起需要使用tomcat8以上版本才能使原创 2016-06-06 19:11:27 · 2950 阅读 · 0 评论 -
Solr入门之官方文档6.0阅读笔记系列(二)
solr官方文档学习Dataimport Screen这部分能配置简单的数据全量导入,但是需要进行DIH的配置(数据导入梳理器)具体需要看这部分:Uploading Structured Data Store Data with the Data Import Handler.Documents Screen主要是两个处理器和集中文件原创 2016-06-07 19:02:49 · 1601 阅读 · 0 评论 -
Solr入门之官方文档6.0阅读笔记系列(三)
第二部分 Documents, Fields, and Schema Design这部分包含以下内容:Solr Field Types: solr中字段类型的详细信息.包含字段类型在solr默认的约束中.Defining Fields: 描述如何在solr中定义字段.Copying Fields: 描述如何将一个字段中数据复制到另外一原创 2016-06-08 17:18:53 · 2505 阅读 · 0 评论 -
Solr入门之官方文档6.0阅读笔记系列(四)
第二部分 Documents, Fields, and Schema DesignDefining Fields定义字段是简单的事情Example默认值的定义,其余未定义的使用继承类型的属性Field Propertiesname,type,defualtOptional Field Type Override Properties在字段原创 2016-06-12 19:13:35 · 1943 阅读 · 0 评论 -
Solr入门之官方文档6.0阅读笔记系列(五) 第二部分结束
第二部分 Documents, Fields, and Schema DesignPutting the Pieces Together将上面讲到的部分拼接到一起就是一个良好的schema.xml了Choosing Appropriate Numeric Types如果频繁的查询数字类型,可以使用precisionStep="8" 或者默原创 2016-06-13 14:57:05 · 949 阅读 · 0 评论 -
Solr入门之官方文档6.0阅读笔记系列(六) 第三部分开始
第三部分 : Understanding Analyzers, Tokenizers, and Filterssolr 进行文本数据分词处理主要包含是三部分内容: 分析器,分词器和过滤器Field analyzers :在创建索引和查询索引时被使用.能检索文本字段和创建一个字符流.分析器可以是一个类,也可以是多个分词器和过滤器做成.Tokenizers:原创 2016-06-14 19:17:32 · 1466 阅读 · 0 评论 -
Solr入门之官方文档6.0阅读笔记系列(七)
第三部分 : Understanding Analyzers, Tokenizers, and FiltersTokenizers 相关包: org.apache.lucene lucene-analyzers-common 5.5.0 org.apache.luce原创 2016-06-15 19:17:58 · 1992 阅读 · 0 评论