
solr从入门到精通
文章平均质量分 77
当以乐
成长是打破枷锁的有效方式.
展开
-
Solr进阶之微信朋友圈搜索实现(关系搜索)
微信搜索中有朋友圈搜索,简单观察下,能搜索自己朋友圈中对自己可见的各个状态.这里搜索的实现涉及到两个要点:1.简单的模糊搜索2.自己的朋友圈关系链条这里最直观的实现方式肯定就是建立一个Collection,建索引时将该状态能看到的用户id都存储起来,然后直接使用查询用户的id来进行过滤.这里存在两点问题:1.用户的好友链可能会很长,如微信好友最多可到5000人,如果一个原创 2017-07-12 15:28:54 · 1345 阅读 · 1 评论 -
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 · 963 阅读 · 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 · 1964 阅读 · 0 评论 -
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 · 2966 阅读 · 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 · 2520 阅读 · 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 · 1622 阅读 · 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 · 2592 阅读 · 3 评论 -
solr入门之参考淘宝搜索提示功能优化拼音加汉字搜索功能
首先看一下从淘宝输入搜索关键字获取到的一些数据信息:第一张:使用拼音的全程来查询可以看到提示的是匹配的转换的拼音的方式,看最后一个提示项这里还有一个在指定分类目录下搜索的功能,难道后台还存储的类目的信息?还有一个标签的信息要存储第二使用首字母来匹配 这里看不出来 淘宝的东西太多了,首字母直接有了对应的全程第三使用切断字母的匹配 看的出来 走的还是完全匹配原创 2016-04-21 18:30:25 · 12125 阅读 · 3 评论 -
solr入门之安全认证和权限控制实践
原创 2016-05-05 19:44:44 · 2957 阅读 · 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 · 2536 阅读 · 0 评论 -
solr入门之自定义排序之构建自己的权重计算方法及相应的排序字段
需求:1、需求:调整排序算法改为综合得分排名2、规则:①搜索方式:先过滤,后排序②搜索字段:用户昵称③匹配方式:分词完全匹配④排序按照综合得分高低进行排序展示综合得分=达人得分(权重:单独计算)+粉丝数得分(权重:75%)+基础得分(权重:25%)a.达人得分在搜索结果中置顶展示,其中优先开通美店达人b.粉丝数得分粉丝数越多,权重越高原创 2016-04-19 18:53:34 · 6084 阅读 · 0 评论 -
Solr入门之官方文档6.0阅读笔记系列(六) 第三部分开始
第三部分 : Understanding Analyzers, Tokenizers, and Filterssolr 进行文本数据分词处理主要包含是三部分内容: 分析器,分词器和过滤器Field analyzers :在创建索引和查询索引时被使用.能检索文本字段和创建一个字符流.分析器可以是一个类,也可以是多个分词器和过滤器做成.Tokenizers:原创 2016-06-14 19:17:32 · 1482 阅读 · 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 · 2011 阅读 · 0 评论 -
solr入门之使用SolrJ进行安全认证和权限管理
2. 关于solr通用管理的尝试正常的通用使用中是没有关于管理的API的,一般简单的文档操作都是solrj进行二次封装后提供给我们使用的,CURD操作.超出这个范畴就需要,使用初次封装的方法来解决了.首先,solrj是和solr之间通过HTTP请求进行数据交互的.知道这点,我们就看看solr的request中提供给我们的类,进而选出符合要求的使用即可:这里只原创 2016-06-15 19:20:28 · 6132 阅读 · 0 评论 -
设计模式之外观模式(Facade)
意图:为子系统中的一组接口提供一个一致的界面,facade模式定义了一个高层接口,这个接口使得这一个系统更加容易使用.适用性:1.当你要为一个复杂子系统提供一个简单的接口时.2.客户程序与抽象类的实现部分之间存在着很大的依赖性.3.当你需要构建一个层次结构的子系统时,使用facade模式定义子系统中的每层的入口点.效果:1.它对客户屏蔽子系统组件原创 2017-03-06 16:36:43 · 419 阅读 · 0 评论 -
Solr入门之Lucene&Solr临近查询之SpanQuery
Lucene中用来控制临近查询使用如下: //要查询的词语列表 词语要在几个编辑距离内 是否要按照顺序 SpanNearQuery nearQuery = new SpanNearQuery(new SpanQuery[]{new SpanTermQuery(new Term("name", "户外")),new SpanTermQuery(new Term("nam原创 2017-02-18 16:37:25 · 2770 阅读 · 2 评论 -
Solr进阶之Solr综合文本相似度的多因素权重排序实现
现在有个需求是这样子的:需要计算搜索词的权重设置其为总排序权重的0.6,其他因素的权重为0.4其他因素中还有详细的划分.这里我们用Solr如何来实现?众所周知solr默认的排序方式为按照文本相似度来进行降序排列的,现在我们要将打分的Score作为排序的一个因子来利用.就需要单独的获取到Score.网上是有一些通过继承类来实现的方式的.这里我不再累述,而说一种通过Solr内置的函数来原创 2016-12-23 17:13:39 · 15159 阅读 · 3 评论 -
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 · 9471 阅读 · 0 评论 -
Solr进阶之拼写纠错功能的实现基础拼音
思路:1.当汉字个数小于等于三个汉字时,使用单个词库进行匹配(最大匹配法)将汉字转为同音字,查询单个词库中的数据,选出音一样的词语列表,加上最小距离算法(保证至少一个汉字一样),得出一个列表,按照一定的算法排序后,选出最好的那个词语.(词语库中词语定时更新,索引对应词语的查询结果)2.当汉字个数在4到6个数目时,使用最大匹配切词法进行切词处理,切分为单个最大词后,使用1中的排序法则原创 2016-09-21 12:45:17 · 2945 阅读 · 10 评论 -
Solr入门之官方文档6.0阅读笔记系列(十)
The Well-Configured Solr Instance告诉你如何调节solr实例到最佳性能Configuring solrconfig.xmlsolrconfig.xml的配置对solr工作的影响很大能完成以下内容:request handlers, which process the requests to Solr, such as原创 2016-09-06 17:03:28 · 5923 阅读 · 0 评论 -
solr入门之使用Solr完成拼写纠错的实现思路
1,1 大致的实现思路当收集到搜索词是,进行查询,查询数量低于一定的阀值时进行拼写纠错后查询出更多的结果分析:汉语纠错考虑多输入法问题,最大是同音字错误,多音字错误及输入有误考虑实现两个部分,一部分使用拼音进行同音字纠错 一部分使用最小编辑距离进行纠错同音字优先1.2 纠错步骤:1.2.1 使用同音字匹配原创 2016-08-05 18:13:20 · 3291 阅读 · 3 评论 -
Solr入门之官方文档6.0阅读笔记系列(九) 第四部分 数据索引操作
Indexing and Basic Data OperationsIntroduction to Solr Indexing: An overview of Solr's indexing process.Post Tool: Information about using post.jar to quickly upload some content t原创 2016-06-21 18:35:31 · 1913 阅读 · 0 评论 -
solr入门之Solr函数查询初使用之查询字段是否包含指定内容
2.关于点赞数目的思考及简单实现--基于Solr函数查询实现思路:将话题点赞的人的信息存在Solr中(如Id)当查询时给定查询者的信息(如Id)使用Solr内置的查询函数,在fl中,新增一个函数返回字段,设置名称为isLike使用查询函数来判断话题中是否包含了用户的信息(Id),是的话既为true,否则为false查询实例如图:http:原创 2016-07-06 18:46:16 · 6690 阅读 · 2 评论 -
Solr入门之官方文档6.0阅读笔记系列(八) 相关过滤器
第三部分 : Understanding Analyzers, Tokenizers, and FiltersFilter DescriptionsYou configure each filter with a element in schema.xml as a child of , following the okenizer> element. Filt原创 2016-06-16 17:21:21 · 1996 阅读 · 0 评论 -
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 · 7466 阅读 · 0 评论 -
solr入门之多线程默认查询solr库的返回结果不一致问题
今天遇到了个问题项目中的solr的索引建立需要去查询另外一个solr的库来得到数据源我是使用多线程默认的score排序来做的期间多次发现查询的结果顺序不一致刚刚开始以为是多线程操作变量导致后来加入线程锁,现象已经存在然后使用debug来调试,最后锁定查询solr库这个地方发现根本就是查询的结果就是这个样子.这里就不能使用默认的score来进行排序了.选取一个能够原创 2016-04-28 19:10:00 · 3002 阅读 · 0 评论 -
solr入门之权重排序方法初探之使用edismax改变权重
做搜索引擎避免不了排序问题,当排序没有要求时,solr有自己的排序打分机制及sorce字段1.无特殊排序要求时,根据查询相关度来进行排序(solr自身规则)2.当涉及到一个字段来进行相关度排序时,可以直接使用solr的sort功能来实现3.对多个字段进行维度的综合打分排序(这个应该才是重点,内容)使用Solr搭建搜索引擎很容易,但是如何制定合理的打分规则(boost)做排序原创 2016-04-15 19:29:14 · 42520 阅读 · 4 评论 -
solr入门之pinyin4j的源码改写初尝试
目标:pinyin4j中收录了很多的词,但是也有一些词语是未被收录的,目前想做到的效果是能将为收录的词语收录进去,而且还不需要重新启动服务===================================================源码观看//测试用调用的方法String[] strs = PinyinHelper.toHanyuPinyinStringArray(c原创 2016-04-06 19:09:17 · 2897 阅读 · 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 · 2336 阅读 · 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 · 5840 阅读 · 0 评论 -
solr入门之搜索建议的拼音转换工具
上篇博客中我们确定了搜索建议的具体方案,该方案中涉及到一个将汉字转换为拼音的问题.这里我们主要讲解这个问题.使用pinyin4j来完成.1 . jar获取方式: maven com.belerweb pinyin4j 2.5.1 或者 直接从我的原创 2016-03-22 19:28:40 · 4056 阅读 · 0 评论 -
solr入门之搜索建议的几种实现方式和最终选取实现思路
上篇博客中我简单的讲了下solr自身的suggest模块来实现搜索建议.但是今天研究了下在solr自身的suggest中添加进去拼音来智能推荐时不时很方便.在次从网上搜集和整理思考了下该问题的解决.http://www.cnblogs.com/huangfox/p/4146970.html问题背景搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误原创 2016-03-22 19:19:23 · 9483 阅读 · 0 评论 -
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 · 1516 阅读 · 2 评论 -
solr入门之搜索建议配置和代码Demo
检索建议 检索建议目前是各大搜索的标配应用,主要作用是避免用户输入错误的搜索词,同时将用户引导到相应的关键词搜索上。Solr内置了检索建议功能,它在 Solr里叫做Suggest模块.该模块可选择基于提示词文本做检索建议,还支持通过针对索引的某个字段建立索引词库做检索建议。在诸多文档中都推荐使 用基于索引来做检索建议,因此我们目前的实现也是采取该方案。 现在我们开始原创 2016-03-21 19:03:10 · 2873 阅读 · 0 评论 -
solr入门之拼写纠错深入研究及代码Demo
昨天粗略的研究了下solr自身的拼写纠错功能,效果不是很好,今天继续研究了其中的依靠文件来纠错和主索引纠错的方式===================文件加载方式配置-- solr.FileBasedSpellChecker file spellings.txt UTF-8 ./spellchecker原创 2016-04-01 18:45:19 · 4137 阅读 · 0 评论 -
solr入门之solr的拼写检查功能的应用级别尝试
今天主要是收集了些拼写检查方面的资料和 尝试使用一下拼写检查的功能--=遇到了不少问题拼写检查的四种配置目前我只算是成功了半个吧---------------------------------拼写检查功能,能在搜索时,提供一个较好用户体验,所以,主流的搜索引擎都有这个功能。在这之前,笔者先简单的说一下什么是拼写检查,其实很好理解,就是你输入的搜索词,可能是你输错了,也有可能在原创 2016-03-31 20:08:28 · 5174 阅读 · 1 评论 -
solr入门之拼音加汉字方式的搜索建议自动补全的不高效实现
今天思考实现了下字符加汉字的搜索建议的 实现--思想主要还是昨天的思想,不过这个方法使用的是匹配查询 ,查询速度可能不太理想 /** * * @描述:用于完成拼音加汉字 组合情况的搜索建议 ---尽量少用 * @param params * @return * @return ResultData>原创 2016-03-30 19:08:05 · 3751 阅读 · 1 评论 -
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 · 6691 阅读 · 2 评论 -
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 · 6502 阅读 · 0 评论 -
solr入门之数据源处理工具类去除字段中括号内内容,字母,数字及特殊符号
项目中solr获取到数据源后,需要对获取到的字段再进行加工处理.目标: 除去词语中的括号内的内容,词语中英文字符,数字,及特殊符号 仅仅保留汉字/** * 字符处理过滤工具类 * @author songqinghu * */public class StringFilterUtils { private static Logger logger = Logger原创 2016-04-12 19:06:15 · 1665 阅读 · 0 评论