SOLR - 技术教程文章

智能提示(一) Solr (suggest)【图】

电商搜索中要实现这么一块功能,当输入文字时候。下拉框提示。类似于百度搜索 在师出名门的基于lucene的solr搜索引擎中。提供了 拼写检查和智能提示这块功能。 拼写检查就是用来检查用户输入的检索内容是否存在,假设不存在则,给它提示出相近,或相似的内容。 而检索建议则是用户输入某个检索条件后。会立马友好的给出一系列提示内容,并推荐首个出现的相似的词,作为推荐词。 也就是说 拼写检查是能够作为一个单独功能使用,...

Solr In Action 中文版 第一章(一)

1.1我到底需要一个搜索引擎吗? 第一章 Solr 简介本章速览:·搜索引擎处理的数据特性·常见搜索引擎用例·Solr核心模块介绍·选择Solr的理由·功能概述 伴随着社交媒体、云计算、移动互联网和大数据等技术的高速发展,我们正迎来一个令人激动的计算时代。软件架构师们开始面对的主要挑战之一,便是如何处理全球巨大的用户基数所产生及使用的海量数据。此外,用户们开始期待在线软件应用永远都是稳定可用的,并且能够一直保...

Solr4.8.0源码分析(8)之Lucene的索引文件(1)【代码】【图】

Solr4.8.0源码分析(8)之Lucene的索引文件(1)题记:最近有幸看到觉先大神的Lucene的博客,感觉自己之前学习的以及工作的太为肤浅,所以决定先跟随觉先大神的博客学习下Lucene的原理。由于觉先大神主要介绍的是Lucene3.X系的,那我就根据源码以及结合觉先大神的来学习下4.X系的。内容可能会有些变化,且加入下我个人的理解。 http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html一. 基本类型Lucene索引文件中,用一...

solr学习文档之增量更新索引

之前已经介绍过如何使用solr和mysql建立索引,但索引一旦建立,之后新增的数据便不能插入了,除非每次新增数据都重新建立一遍索引,但这样太过耗时费力,故而,本章将介绍如何增量更新索引1、 找到之前data-config.xml文件,打开并在query后面加入deltaQuery="select TOPIC_ID,TOPIC_CONTENT from t_topicwhere TOPIC_ADD_DATE > ‘${dataimporter.last_index_time}‘"此段话的意思是如果有某条数据插入时间大于上次索引生成时间则...

Solr6.5.0配置中文分词器配置

准备工作:    solr6.5.0安装成功     1.去官网https://github.com/wks/ik-analyzer下载IK分词器     2.Solr集成IK       a)将ik-analyzer-solr6.x.jar复制到tomcat8\webapps\solr\WEB-INF\lib目录下。      b)将ik-analyzer-master\src\main\resources下的stopword.dic、IKAnalyzer.cfg.xml复制到tomcat8\webapps\solr\WEB-INF\classes      c)将mydict.dic文件拷贝IKAnalyzer.cfg.xml同级目录,存...

tomcat7设置访问solr地址限制的问题【代码】

环境: apache-tomcat-7.0.42solr5.0.0 参照文档与网上的介绍:在:$TOMCAT_HOME/conf/server.xml内的host标签内增加:<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.0.*,127.0.0.1" deny=""/>测试时,都不能访问,经过测试,需要写成如下格式: <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.0.*||127.0.0.1" deny=""/> 修改之后,只有内网能够看到solr界面,...

solr(四): centos中, 整合 tomcat【代码】【图】

前言  虽然windows下, tomcat和solr整合起来灰常的方便, 但是, 一般像这种东西, 都很少部署在windows中, 更多的是部署到linux中去. 其实, 步骤是一样的, 这里, 我在centos 中再部署一次. 下包  下载地址还是之前的那个: http://mirror.bit.edu.cn/apache/lucene/solr/  下载下来之后, 放到centos中的 /home/elvin/Downloads 文件下. elvin 是我的用户名.   为了与第一篇对应, 我按照第一篇的操作过程来吧.整合一. solrhome...

HBase协处理器同步二级索引到Solr(续)【代码】

一、 已知的问题和不足二、解决思路三、代码3.1 读取config文件内容3.2 封装SolrServer的获取方式3.3 编写提交数据到Solr的代码3.4 拦截HBase的Put和Delete操作信息四、 使用一、 已知的问题和不足 在上一个版本中,实现了使用HBase的协处理器将HBase的二级索引同步到Solr中,但是仍旧有几个缺陷:写入Solr的Collection是写死在代码里面,且是唯一的。如果我们有一张表的数据希望将不同的字段同步到Solr中该如何做呢?目前所有配...

Solr简单总结【代码】【图】

Solr运行Solr服务方式一:Jetty服务器启动Solr进入solr-4.10.2/example目录打开命令行,执行java –jar start.jar命令,即可启动Solr服务打开浏览器,通过http://localhost:8983/solr来访问Solr管理页面。方式二:Tomcat服务器启动Solr部署Web服务,将solr-4.10.2/example/webapps/solr.war复制到自己的tomcat/webapps目录中,并解压,然后删除solr.war文件在Tomcat中加入相关jar包:将“resource\solr在tomcat运行需要导入的jar包\l...

Solr学习总结(四)Solr查询参数【图】

今天还是不会涉及到.Net和数据库操作,主要还是总结Solr 的查询参数,还是那句话,只有先明白了solr的基础内容和查询语法,后续学习solr 的C#和数据库操作,都是水到渠成的事。这里先列出solr查询所需要的参数     一.基本查询  q 查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*,  fl 指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,fl= id,title,sort  start 返回结果的第几条记录开...

Solr查询详解

一、 查询参数说明 在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数! 1、常用 q - 查询字符串,这个是必须的。如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京)fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=Name:张三&fq=CreateDate:[20081001 TO 20091031],找关键字mm,并且CreateDate是20081001fl - 指定返回那些字段...

solr6.5.0版本(Windows安装图解)【图】

此教程为solr6.5.0安装,自己制作,希望可以帮到你们。 原文:http://www.cnblogs.com/gslblog/p/6701338.html

Solr 如何处理日期类型【代码】

Solr日期类型处理Solr 如何处理日期类型日期格式与实际时间晚8小时solr控制台查询出的日期格式与实际时间少8个小时,因为我们是东八区,推测是时区的原因。造成这个问题的根源是东八区的人不习惯零时区的时间。其实,solr索引存储的时间并没有少8小时,只是在时间格式化的时候,用的是UTC时间,因为我们是东八区,UTC是零时区时间,所以日期展示的时候,看起来是慢了8小时。误区一:修改写入时间为了解决这个问题,在solrJ写入时间时...

什么是Solr【图】

Lucene复习:1、什么是lucene:全文检索工具包2、Lucene的工作原理:索引数据的创建从原始文件中提取一些可以用来搜索的数据(封装成各种Field),把各field再封装成document,然后对document进行分析(对各字段分词),得到一些索引目录写入索引库,document本身也会被写入一个文档信息库;索引数据的查询根据关键词解析(queryParser)出查询条件query(Termquery),利用搜索工具(indexSearcher)去索引库获取文档id,然后再根据...

Win7下Solr4.10.1和TomCat8的安装【图】

1、系统为win7 64位系统,安装有wamp的环境,我的所有网站放在 d:\webserver下,域名指向该目录下的子目录;2、安装TomCat8到 D:\Tomcat 8.0;3、在 d:\webserver下创建solr目录,并且在solr目录下创建data目录(data文件夹为存储查询索引和数据的地方);4、解压solr-4.10.1文件至d:\solr-4.10.1目录,将 d:\solr-4.10.1\example\solr 下的所有文件的所有文件(不含solr文件夹本身)拷贝到d:\webserver\solr目录下5、创建solr web...

solr8.0 springboot整合solr(四)【代码】

引言:  solr搭建起后,就该应用到java后台开发里了,接下来就用springboot整合应用solr 一:引入jar包<!--solr--><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-solr</artifactId><version>4.0.6.RELEASE</version></dependency><!--操作solr的工具--><dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>8.0.0</version></dependency> 二:对appl...

Solr学习笔记——查询【图】

1.进入Solr管理界面http://localhost:8983/solr/可以看到Query中有若干的参数,其意义如下(参考:http://www.jianshu.com/p/3c4cae5dee8d)Solr的查询语法:Solr默认有三种查询解析器(Query Parser):Standard Query ParserDisMax Query ParserExtended DisMax Query Parser (eDisMax)第一种是标准的Parser,最后一种是最强大的,也是Sunspot默认使用的Parser。支持的参数:defType: 选择查询解析器类型,例如dismax, edismaxq:...

在Windows的Tomcat环境下部署Solr 4.7.0【代码】【图】

主要步骤如下:1、下载solr-4.7.0.tgz;2、解压缩solr-4.7.0.tgz,解压后目录结构如下:3、将example/webapps目录下的solr.war复制到tomcat的webapps目录中;4、启动tomcat服务器,这时候会报错,暂时不用管,只是为了解压war包,启动完成后关闭Tomcat;5、新建一个tomcat-solr文件夹(名称与位置随意),我建在了D盘下。6、继续到solr-4.7.0目录,将example/solr目录下的所有文件和目录拷贝到新建的solr-tomcat目录下:(注意solr.x...

Solr学习笔记(1)—— Solr入门【图】

一:概念  Solr是可扩展的、开箱即用的企业级搜索引擎,用来搜索大规模文本数据并根据相关度排序返回结果。    1:可扩展——Solr通过集群中多台服务器的分布式运行实现扩展。    2:开箱即用——Solr是开源的,易于安装和配置,并提供预先配置好的示例服务器,方便上手。    3:为搜索优化——Solr速度很快,以亚秒级速度执行复杂查询,往往只需花费几十毫秒。    4:大规模文档——Solr可以用以处理包含百万级...

1.6.3 Uploading Data with Solr Cell using Apache Tika【代码】

1. Uploading Data with Solr Cell using Apache Tika  solr使用Apache Tika工程的代码提供了一个框架,用于合并所有不同格式的文件解析器为solr自己的解析器,如Apache PDFBox,Apache POI.通过这个框架,solr使用ExtractingRequestHandler来上传二进制文件.  如果想要solr使用你自己的ContentHandler,你需要继承ExtractingRequestHandler,重写createFactory()方法.这个方法主要用于构建SolrContentHandler和Tika互动.并允许字面值...

HBase协处理器同步二级索引到Solr【代码】【图】

一、 背景二、 什么是HBase的协处理器三、 HBase协处理器同步数据到Solr四、 添加协处理器五、 测试六、 协处理器动态加载一、 背景在实际生产中,HBase往往不能满足多维度分析,我们能想到的办法就是通过创建HBase数据的二级索引来快速获取rowkey,从而得到想要的数据。目前比较流行的二级索引解决方案有Lily HBase Indexer,Phoenix自带的二级索引,华为Indexer,以及360的二级索引方案。上面的目前使用比较广泛的应该是Lily HBa...

Solr6.6.0添加IK中文分词器【代码】【图】

IK分词器就是一款中国人开发的,扩展性很好的中文分词器,它支持扩展词库,可以自己定制分词项,这对中文分词无疑是友好的。 jar包下载链接:http://pan.baidu.com/s/1o85I15o 密码:p82g下载好之后,将IK对应的jar复制到项目的D:\tomcat\webapps\solr\WEB-INF\lib下面,然后在WEB-INF下面创建一个classes的目录,将其余三个文件(IKAnalyzer.cfg.xml , ext.dic和stopword.dic)复制到这个classes目录下。 打开D:\solrhome\core_d...

Solr的精确匹配搜索【图】

情景:利用Solr做一批词的逆文档频率。Solr中存储的每条数据为一篇文章,此时需要查出某词在多少篇文章中出现过,然后用公式:某词逆文档频率 = 总文章数 / (出现过某词的文章数+1) 来计算。以下两幅图为两种搜索方式的搜索结果对比: 结果:对某词进行搜索时,将某词用英文双引号括起来就是精确搜索。直接调用API也是类似的:http://IP:8983/solr/IDFcollection/select?q=quanwen:"机械制造"&wt=json&indent=true(精确匹配)  ...

Solr学习总结(三)Solr web 管理后台【图】

前面讲到了Solr的安装,按道理,这次应该讲讲.net与数据库的内容,C#如何操作Solr索引等。不过我还是想先讲一些基础的内容,比如solr查询参数使用说明和solr 自带的web 管理系统的使用等。只有先明白了solr的基本内容,后续学习solr 的C#和数据库操作,才不会费劲。本人刚开始也是配置完solr 之后,直接找solr客户端,写相应的测试代码,但是由于不知道一个Update请求具体都需要哪些参数,各个参数都是什么意思,以至于碰到各种solr...

HttpSolrServer 实例管理参考,来自org.eclipse.smila.solr

http://dev.eclipse.org/svnroot/rt/org.eclipse.smila/trunk/core/org.eclipse.smila.solr/code/为什么要对实例管理?看看wiki文档说明就知道了。 /* HttpSolrServer is thread-safe and if you are using the following constructor, you *MUST* re-use the same instance for all requests. If instances are created on the fly, it can cause a connection leak. The recommended practice is to keep a ...

solr故障引起的应用不能显示【图】

测试人员提醒我说内网应用862.com.cs显示不出来,我远程到服务器--进入项目查看日志:650) this.width=650;" src="/upload/getfiles/default/2022/11/9/20221109065506716.jpg" title="P{{1)SEM@ZZ$CCAHG}L0@38.png" />很明显的提示,应用向solr查询时报错,进入solr应用,查看进程没有启动,程序可能是自动挂了,直接重启,看到显示启动完成,打开应用能正常启动。但好景不长,不到5分钟,测试人员又说显示不出来,看看了下solr日...

solr删除数据(全删除)【图】

背景:数据索引错了,不想要了。也不想一条条删!方法:1、在solr客户端,访问你的索引库(我认为最方便的方法)1)documents type 选择 XML 2)documents 输入下面语句<delete><query>*:*</query></delete><commit/> 原文:http://www.cnblogs.com/java-synchronized/p/7546110.html

Solr安装【代码】

下载 http://www.apache.org/dyn/closer.lua/lucene/solr/4.10.4/将${solr}/dist下的solr-4.10.4.war重命名solr.war将solr.war复制到tomcat下的webapps目录在F盘创建solr文件夹作为solr数据目录在tomcat目录下的conf\Catalina\localhost创建solr.xml<?xml version="1.0" encoding="UTF-8"?> <Context path="/solr" docBase="C:\apache-tomcat-8.0.28\webapps\solr.war" debug="0" crossContext="true"> <Environment name="solr/...

solr 对于 关键字的特殊处理

public static String transformMetachar(String input){ StringBuffer sb = new StringBuffer(); try{ String regex = "[+\\-&|!(){}\\[\\]^\"~*?:(\\)\\s]"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input); while(matcher.find()){ matcher.appendReplacement(sb, "\\\\"+matcher.group()); } matcher.appendTail(sb); ...

solr

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。Solr优点: (1)Solr 可以对几乎任何对象进行索引,该对象甚至可以不是ActiveRecord.而Sphinx和RDBMS...