拓薪教育-solr教程
SolrCloud安装手册基于solr
solrCloud集群安装手册—基于solrS. 2. 1
、SolrCloud 集群架构概览
1.1 SolrCloud 索引架构
SolKloud 的索引存储中,三台服务器都要存索引。
1.2 ZooKeeper 架构
ZooKeeper 集群,同时在三台服务器中配置ZooKeepero Shardl SolrCloud
shards
Shard2
其中每一个分片有两份数据,一个是leader^ 同机器上,可以保证在某一台服务器down 掉后, 另一个是备份。分别存储在不 仍可提供完整的数据服务。
c a har d2
5 hards —♦114.212-83.243
0114.212.86.102
O1I4.212.82.189 • 114,212.83.243 0114.212-82489
—•114.212.86402
/
3.1JDK配置
(1)
解压JDK的压缩包至/usr/local/ U录下tar -zxvf JDK 压缩包位置-C /usr/local/
(2)
修改配置文件
vi /etc/profile
在下面添加如下内容
export JAVA_HOME=/usr/local/jdkl.8.0_45
exp ort CLASSPATH二•:${JAVA_HOME}/lib:${JAVA_HOME}/lib/tools・jar
export PATH=S{JAVA_HOME}/bin:$PATH
然后在命令行中输入source /etc/profile
输入命令java -version査看是否安装正确
3.2Tomcat 配置
Solr的原理及使用
Solr的原理及使⽤
1.Solr的简介
Solr是⼀个独⽴的企业级搜索应⽤服务器,它对外提供类似于Web-service的API接⼝。⽤户可以通过http请求,向搜索引擎服务器提交⼀定格式的XML⽂件,⽣成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
2.⼯作原理
solr是基于Lucence开发的企业级搜索引擎技术,⽽lucence的原理是倒排索引。那么什么是倒排索引呢?接下来我们就介绍⼀下lucence倒排索引原理。
假设有两篇⽂章1和2:
⽂章1的内容为:⽼超在卡⼦门⼯作,我也是。
⽂章2的内容为:⼩超在⿎楼⼯作。
由于lucence是基于关键词索引查询的,那我们⾸先要取得这两篇⽂章的关键词。如果我们把⽂章看成⼀个字符串,我们需要取得字符串中的所有单词,即分词。分词时,忽略”在“、”的“之类的没有意义的介词,以及标点符号可以过滤。
我们使⽤Ik Analyzer实现中⽂分词,分词之后结果为:
⽂章1:
⽂章2:
接下来,有了关键词后,我们就可以建⽴倒排索引了。上⾯的对应关系是:“⽂章号”对“⽂章中所有关键词”。倒排索引把这个关系倒过来,变成: “关键词”对“拥有该关键词的所有⽂章号”。
通常仅知道关键词在哪些⽂章中出现还不够,我们还需要知道关键词在⽂章中出现次数和出现的位置,通常有两种位置:
a.字符位置,即记录该词是⽂章中第⼏个字符(优点是关键词亮显时定位快);
b.关键词位置,即记录该词是⽂章中第⼏个关键词(优点是节约索引空间、词组(phase)查询快),lucene中记录的就是这种位置。
Solr 功能使用
Solr 功能使用1. 准备阶段
创建一个user schema,对其进行各种业务操作。1.1. User元数据结构
1.2. Solr schema设计
●增加一个copyField text用于文本搜索
1.3. 数据导入
总共365051条记录,顺便感叹一下耗时,只花了5毫秒:
2. 功能使用
solr提供了多种语言的sdk,上面导入数据使用的是solrj,以下我就只用使用
2.1. 基本查询
http://172.16.5.2:8983/solr/user_shard2_replica1/select?q=*:*&wt=json&inden t=true&start=0&row=10&sort=followersCount+desc
解释:
●查询条件“*:*”,查询所有数据
●格式化返回格式json:wt=json&indent=true
●从0条开始,返回10条记录:start=0&row=10
●按照用户粉丝量倒叙返回:sort=followersCount+desc,“+”号可使用空格
代替
更多的常用参数:
●fq:对查询结果的二次筛选,且会把查询的结果缓存起来,下次同样的查询
将直接命中缓存
●fl:对返回的结果字段进行限制,例如我只想返回id
更丰富的使用规范说明:
https:///confluence/display/solr/Query+Syntax+and+Parsing 2.2. 权重查询DisMax
以上面的schema为例,假设我需要查询所有“九江”的用户。地区值是存放在location字段中的,也有可能用户只在location中只存放了“江西”,但是description中有可能存放了和九江相关的介绍,这样这个用户只能说有可能也是九江的,在查询是我希望确定是九江的用户排在前面。这个时候就可以用到权
solr中文
solr中文:使用 Apache Solr 实现更加灵巧的搜索 第 2 部分: 用于企业的 Solr
疯狂代码 / ĵ:http://DeveloperUtil/Article54041.html
本文举例源代码或素材下载
在本系列 第 1 部分我为您介绍了 Apache Solr种基于 HTTP 开源搜索服务器它可以很容易地和多种Web 应用集成我展示了 Solr 最基本功能包括索引、搜索和浏览介绍了 Solr 模式并解释了它在配置 Solr 功能方面作用在本部分中我将通过列举 Solr 作为大型生产环境中理想解决方案时所具备特性来完成对 Solr 介绍涵盖主题包括管理、缓存Cache、复制和可扩展性
请参阅 第 1 部分 来获得安装和设置 Solr 指导
配置和管理
本部分介绍了可用于监视和控制 Solr 功能性诸多选项首先来看看 Solr Administration Start Page该页可在 http://localhost:8080/solr/admin/ 找到旦找到了起始页在继续的前请务必花些时间熟悉下上面各种菜单选项在起始页中根据这些选项所提供信息区别对它们进行了分组:
Solr 给出了有关这种活动模式(请参见 第 1 部分)、配置以及当前部署统计数据详细信息
App server 给出了容器当前状态包括 threading 信息以及所有 Java 系统属性列表
Make a Query 提供了调试查询所需快捷界面以及到功能更加全面查询界面链接
Assistance 提供了到外部资源有用链接以便理解和解决使用 Solv 可能遇到些问题
solr完整快速搭建版(学习笔记)
Solr学习笔记
由于公司一个网站需要实现搜索功能的更新换代,在和编辑和领导沟通了一段时间之后,我们决定不再使用之前的通过JDBC发送sql语句进行搜索的方法。一番比较,我们决定选用Lucene来搭建我们全文搜索的框架。后来由于开发时间有限,Solr对lucene的集成非常好,我们决定使用Struts+Spring+Solr+IKAnalyzer的一个开发模式来快速搭建一个企业级搜索平台。自己之前没有接触过这方面的东西,从不断看网上的帮助文档,逛论坛,逛wiki,终于一点一点的开发出一个有自己风格并又适合公司搜索要求的这么一个全文搜索功能。网上对于lucene,solr的资料并不是那么多,而且大多是拷贝再拷贝,开发起来难度是有的,项目缺陷也是有的,但是毕竟自己积累了这么一个搭建小型搜索引擎的经验,很有收获,所以准备写个笔记记录下来,方便自己以后回忆,而且可以帮助一下其他学者快速搭建一个企业级搜索。
主要思想:
此企业级搜索分2块,一块是Solr项目:仅关于Solr一系列配置,索引,建立/更新索引配置。另一块是网站项目:Action中通过httpclient通信,类似webService一个交互实现,访问配置完善并运行中的Solr,发送查询请求,得到返回的结果hits(solrJ查询,下面详解),传递给jsp页面。
1.下载包
Lucene3.5
Solr3.5
IKAnalyzer3.2.8中文分词器(本文也仅在此分词器配置的基础上)
开发时段:2011.12中旬至1月中旬
(请自己下载…)
都是最新版,个人偏好新东西,稳定不稳定暂不做评论。
Solr搜索文档说明
Solr使用教程
目录
一、软件版本 (2)
二、安装教程 (2)
1、Solr安装教程 (2)
2、solr环境搭建 (4)
3、业务字段的实际配置 (7)
4、dataimport 导入数据库数据 (8)
5、solrj的使用 (10)
6、电商平台的应用 (14)
一、软件版本
Solr版本号:solr-5.5.5
jdk版本号:jdk1.8以上
Tomcat版本号:Tomcat8.0以上
二、安装教程
1、Solr安装教程
1.创建solrhome以及solrcore(mysolrhome、mycore 名字可以任意指定)
1.1在指定的目录下新建文件夹solrhome如:D:\mysolrhome
1.2将solr-5.5.4\server\solr\solr.xml拷贝至D:\mysolrhome
1.3在solrhome下新建文件夹solrcore如D:\mysolrhome\mycore
1.4将solr-5.5.4\server\solr\configsets\basic_configs\conf完整目录拷贝至
D:\mysolrhome\mycore\下
2.部署到Tomcat
2.1将solr-5.5.4\server\solr-webapp\webapp 完整目录复制到Apache Tomcat 8.0.27\webapps下并重命名为solr
2.2在Apache Tomcat 8.0.27\webapps\solr\WEB-INF下新建classes文件夹
2.3将solr-5.5.4/server/resource/log4j.properties 拷贝至上一步创建的classes
solr检索表达式
Solr是一个高性能的搜索和数据分析解决方案,提供了丰富的查询表达式和强大的查询功能,帮助用户更有效地检索数据。以下是关于Solr检索表达式的800字回答:
Solr检索表达式是一种用于指定搜索条件的语言,它允许用户使用各种运算符和函数来构建复杂的查询语句。通过使用检索表达式,用户可以精确地匹配文档中的文本、数字、日期等数据,并应用各种过滤和排序条件。
一、基本检索表达式
1. 字段名:这是最基本的检索表达式,用于指定要搜索的字段。例如,如果要搜索名为"title"的字段,可以使用"title:"来指定该字段。
2. 文本模式:可以使用通配符(*)和正则表达式(RegEx)来匹配文本模式。例如,"title:.*world.*"将匹配包含"world"文本模式的"title"字段。
3. 范围查询:可以使用大于(>)、小于(<)、大于等于(>=)和小于等于(<=)运算符来指定范围查询。例如,"price:100-200"将搜索价格在100到200之间的文档。
二、高级检索表达式
1. 多条件查询:可以使用逻辑运算符(AND、OR、NOT)来组合多个检索表达式。例如,"title:example AND author:smith"将搜索标题为"example"且作者为"smith"的文档。
2. 函数查询:Solr提供了多种函数查询,如LIKE_ICASE、LIKE_LOWER、LIKE_UPPER等,用于执行不区分大小写的匹配、将文本转换为小写或大写等操作。
3. 动态参数查询:Solr支持动态参数查询,可以根据用户输入的参数动态生成查询条件。例如,"q={query_param}"允许用户输入查询参数并生成相应的查询表达式。
Solr开发指南
Solr
全文检索技术
1.Solr介绍 15
2.Solr安装配置-SolrCore配置 15
3.Solr安装配置-Solr工程部署 10
4.Solr安装配置-Solr工程测试 15
5.Solr安装配置-多SorlCore配置 10
6.Solr入门--schema 20
7.Solr入门-安装中文分词器 15
8.Solr入门-自定义业务系统Field 20
9.Solr入门-SolrJ介绍10
10.Solr入门-SolrJ索引维护 20
11.Solr入门-数据导入处理器20
12.Solr入门-搜索语法 10
13.Solr入门-SolrJ-搜索 20
14.Solr案例-需求分析 10
15.Solr案例-架构设计 15
16.Solr案例-Service 20
17.Solr案例-Controller 20
18.Solr案例-主体调试 20
19.Solr案例-功能完善
1【Solr介绍】
1.1S olr是什么
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
solr语法
solr语法
Solr是一个基于Lucene的开源搜索平台,支持全文检索、分布式搜索、多语言支持等功能。Solr语法是指在Solr平台上执行搜索时所使用的查询语言,它可以帮助用户更加精确地定位到所需要的数据。
Solr语法主要包括以下几个方面:
1. 查询语句:
查询语句是Solr中最基本的语法,它用于指定要搜索的内容。查询语句可以是一个单词或一个短语,也可以是一个复杂的逻辑表达式。例如:
- 查询单词:q=keyword
- 查询短语:q="keyword1 keyword2"
- 复杂逻辑表达式:q=(keyword1 AND keyword2) OR keyword3
2. 过滤器:
过滤器用于对搜索结果进行过滤,可以根据指定条件过滤掉不符合条件的文档。常用的过滤器包括范围过滤器、布尔过滤器、集合过滤器
等。例如:
- 范围过滤器:fq=price:[10 TO 100]
- 布尔过滤器:fq=is_published:true
- 集合过滤器:fq=id:(1234 OR 5678)
3. 排序:
排序用于对搜索结果进行排序,可以根据指定字段对结果进行升序或降序排列。例如:
- 升序排序:sort=price asc
- 降序排序:sort=price desc
4. 分页:
分页用于控制搜索结果的输出数量,可以指定每页输出多少条数据和从哪条数据开始输出。例如:
- 每页输出10条数据:rows=10
- 从第20条数据开始输出:start=20
5. 字段选择:
字段选择用于指定返回结果中包含哪些字段,可以提高搜索效率和减少网络传输量。例如:
Solr查询参数及检索运算符
?[Solr的检索运算符 ]1. “:” 指定字段查指定值,如返回所有值*:*2. “?” 表示单个任意字符的通配3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)4. “~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。5. 邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~106. “^” 控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache7. 布尔操作符AND、||8. 布尔操作符OR、&&9. 布尔操作符NOT、!、- (排除操作符不能单独与项使用构成查询)10. “+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在11. ( ) 用于构成子查询12. [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]13. {} 不包含范围检索,如检索某时间段记录,不包含头尾date:{200707 TO 200710}14. \ 转义操作符,特殊字符包括+ - && || ! ( ) { } [ ] ^ ” ~ * ? : \solr 查询参数说明发表于:2009年3月25日 | 分类:Solr | 标签: query, solr | views(5,140)版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原文出处, 即下面的声明.==============================================[Solr查询参数说明备忘]常用--------------------------------------------?q - 查询字符串,必须的。?fl - 指定返回那些字段内容,用逗号或空格分隔多个。?start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。?rows - 指定返回结果最多有多少条记录,配合start来实现分页。?sort - 排序,格式:sort=+[,+]… 。示例:(inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,默认是相关性降序。?wt - (writer type)指定输出格式,可以有 xml, json, php, phps, 后面 solr 1.3增加的,要用通知我们,因为默认没有打开。?fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字mm,并且date_time是20081001到20091031之间的。官方文档:/solr/CommonQueryParameters#head-6522ef80f22d0e50d2f12ec487758577506d6002不常用----------------------------------------------?q.op - 覆盖schema.xml的defaultOperator(有空格时用"AND"还是用"OR"操作逻辑),一般默认指定?df - 默认的查询字段,一般默认指定?qt - (query type)指定那个类型来处理查询请求,一般不用指定,默认是standard。其
solr集群搭建
solrcloud集群搭建
1什么是SolrCloud
1.1什么是SolrCloud
SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud。当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。
1.2SolrCloud结构
SolrCloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard(分片)拆分,每个分片由多台的服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。
SolrCloud需要Solr基于Zookeeper部署,Zookeeper是一个集群管理软件,由于SolrCloud 需要由多台服务器组成,由zookeeper来进行协调管理。
下图是一个SolrCloud应用的例子:
对上图进行图解,如下:
1.2.1物理结构
三个Solr实例(每个实例包括两个Core),组成一个SolrCloud。
1.2.2逻辑结构
索引集合包括两个Shard(shard1和shard2),shard1和shard2分别由三个Core组成,其中一个Leader两个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard 上三个Core的索引数据一致,解决高可用问题。
用户发起索引请求分别从shard1和shard2上获取,解决高并发问题。
solr课程
使用solr start 命令启动,默认指定solr/目录,可 以用过-s <path> 指定配置文件目录
solr start -s solr
设置solr.solr.home的几种方式
http://myq526180048.iteye.com/blog/1664127
注意
如果使用java -jar start.jar启动solr,则默 认会找当前目录里面的solr目录和 webapps目录 如果使用solr start 启动sorl,默认找 example目录下面的solr目录和webapps目 录
hl高亮
hl.fl:用空格或逗号隔开的字段列表
hl.simple.pre:前缀 hl.simple.post:后缀
注意:要启用某个字段的高亮功能,需要保 证这个字段在schema中是store。
高亮需要注意的问题
对于multiValued=true的字段不要设计高 亮显示
因为solr对于这个字段里面的多个值只会返回 匹配高亮的那个值
如果一个field的名字没有匹配到,那么就会用动态field试图匹配定义的各种 模式。 "*"只能出现在模式的最前和最后 较长的模式会被先去做匹配 如果2个模式同时匹配上,最先定义的优先
Dynamic Fields
copyField
将多个field的数据放在一起同时搜索,提供速度 将一个field的数据拷贝到另一个,可以用2种不同的方式来建立 索引。
SOLR中文教程
SOLR中文帮助文档
2010-10
目录
1概述 (4)
1.1企业搜索引擎方案选型 (4)
1.2Solr的特性 (4)
1.2.1Solr使用Lucene并且进行了扩展 (4)
1.2.2Schema(模式) (5)
1.2.3查询 (5)
1.2.4核心 (5)
1.2.5缓存 (5)
1.2.6复制 (6)
1.2.7管理接口 (6)
1.3Solr服务原理 (6)
1.3.1索引 (6)
1.3.2搜索 (7)
1.4源码结构 (8)
1.4.1目录结构说明 (8)
1.4.2Solr home说明 (9)
1.4.3solr的各包的说明 (10)
1.5版本说明 (11)
1.5.1 1.3版本 (11)
1.5.2 1.4版本 (12)
1.6分布式和复制Solr 架构 (12)
2Solr的安装与配置 (13)
2.1在Tomcat下Solr安装 (13)
2.1.1安装准备 (13)
2.1.2安装过程 (13)
2.1.3验证安装 (14)
2.2中文分词配置 (15)
2.2.1mmseg4j (15)
2.2.2paoding (19)
2.3多核(MultiCore)配置 (22)
2.3.1MultiCore的配置方法 (22)
2.3.2为何使用多core ? (23)
2.4配置文件说明 (23)
2.4.1schema.xml (24)
2.4.2solrconfig.xml (25)
3Solr的应用 (29)
3.1SOLR应用概述 (29)
3.1.1Solr的应用模式 (29)
3.1.2SOLR的使用过程说明 (30)
solr使用方法
solr使用方法
Solr是一种开源的搜索平台,基于Apache Lucene构建而成。它提供了强大的全文检索功能和高性能的分布式搜索能力,广泛应用于各种大型网站和企业应用中。本文将介绍Solr的使用方法,包括安装配置、数据导入、搜索查询等方面。
一、安装配置
1. 下载Solr:访问官方网站,下载最新版本的Solr压缩包。
2. 解压缩:将下载的压缩包解压到指定目录。
3. 启动Solr:进入解压后的目录,执行启动命令,等待Solr启动成功。
4. 访问Solr管理界面:打开浏览器,输入Solr的地址和端口号,进入Solr的管理界面。
二、数据导入
1. 创建Core:在Solr管理界面中,创建一个Core,用于存储和管理数据。
2. 定义Schema:在Core中定义Schema,指定数据的字段类型、索引配置等。
3. 导入数据:将数据准备好,使用Solr提供的数据导入工具,将数据导入到Core中。
三、搜索查询
1. 构建查询请求:使用Solr提供的查询语法,构建查询请求。
2. 发送查询请求:将查询请求发送给Solr服务器,等待返回结果。
3. 解析查询结果:解析返回的结果,获取需要的信息。
四、高级功能
1. 分页查询:通过设置start和rows参数,实现分页查询功能。
2. 排序:通过设置sort参数,实现结果的排序。
3. 过滤查询:通过设置fq参数,实现对结果的过滤。
4. 高亮显示:通过设置hl参数,实现搜索关键词的高亮显示。
5. 聚合统计:通过设置facet参数,实现对搜索结果的聚合统计。
五、性能优化
Solr安装(单机版)
Solr安装(单机版)
本⽂记录的是solr在win下安装配置使⽤的过程,最后将solr部署到Linux上通过远程访问。下⼀篇⽂章会介绍的安装!
Solr是基于Lucene的全⽂检索服务器,性能进⾏了优化。运⾏在jetty、tomcat这些web容器中。⽽Lucene只是⼀个jar包,不能对外提供服务。在安装之前我们要先搞清楚下⾯两个问题。
⼀:Solr是如何实现全⽂检索的
索引流程
Solr客户端(浏览器、java程序)可以向solr服务器发送post请求,请求内容是包含Field等信息的⼀个xml⽂档, 通过该⽂档可以对索引进⾏维护。
搜索流程
Solr客户端(浏览器、java程序)可以向solr服务器发送get请求,solr服务器返回⼀个xml⽂档。
⼆:Solrhome和SoleCore
SolreHome是solr服务运⾏的主⽬录,⼀个solrhome⽬录⾥⾯包含多个SoleCore。⼀个SolrCore包含⼀个Solr实例运⾏时所需的配置⽂件和数据⽂件。Solrcore可以单独对外搜索和索引提供服务,彼此间没有半⽑钱的关系。Home和core的关系好⽐,数据库连接和数据库的关系,⾃⼰体会。
对solr有个⼤致的认识后我们就要开始安装了~~
准备⼯具: 1. solr 2. IK Analyzer中⽂分词器 3. ⼀个⼲净的tomcat
安装步骤: 1. 安装solr 2.配置中⽂分词
安装步骤:
1.1 解压安装⽂件
1.2 复制solr.war到tomcat的webapps下;然后解压为solr⽂件夹,并删除该solr.war⽂件。
SOLR查询,SOLR语法,SOLR更新
一.基本查询
q–查询字符串,必须的。
fl–指定返回那些字段内容,用逗号或空格分隔多个。
start–返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。
rows–指定返回结果最多有多少条记录,配合start来实现分页。
sort–排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]…。示例:(inStock desc,price asc)表示先“inStock”降序,再“price”升序,默认是相关性降序。
wt–(writer type)指定输出格式,可以有xml,json,php,phps,后面solr1.3增加的,要用通知我们,因为默认没有打开。
fq–(filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=mm&fq=date_time:[20081001TO20091031],找关键字mm,并且date_time是20081001到20091031之间的。
q.op–覆盖schema.xml的defaultOperator(有空格时用”AND”还是用”OR”操作逻辑),一般默认指定
df–默认的查询字段,一般默认指定
qt–(query type)指定那个类型来处理查询请求,一般不用指定,默认是standard。
-排除在要排除的词前加上“-”(不包含”号)号
其它
indent–返回的结果是否缩进,默认关闭,用indent=true|on开启,一般调试json,php,phps,ruby输出才有必要用这个参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全文检索技术Solr
讲师:任亮
1课程计划
1、站内搜索技术的选型
2、什么是Solr
3、Solr的安装及配置,solr整合tomcat。
4、Solr对索引库的维护,基于solr的后台管理界面
a)增加文档
b)删除文档
c)修改文档
5、Solr查询索引,基于solr的后台管理界面
6、Solr的客户端SolrJ
a)索引的维护
b)索引的查询
7、综合案例,电商网站的搜索功能
2站内搜索技术的选型
1、Lucene实现站内搜索。开发工作量大,还要对索引库的维护投入大量的工作,索引的优化查询的优化,大并发量的考虑。不推荐使用。
2、可以使用搜索搜索引擎提供站内搜索功能。索引库放在搜索引擎上,不能维护。优点就非常简单。
3、solr技术,solr是基于lucene开发的一个全文检索服务器,提供了全套的全文检索解决方案。推荐使用的技术。
3什么solr
3.1 Solr的概念
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用POST 方法向Solr 服务器发送一个描述Field 及其内容的XML 文档,Solr 根据xml文档添加、删除、更新索引。Solr 搜索只需要发送HTTP GET 请求,然后对Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
总之solr就是一个web工程,提供一个基于http的web服务。
3.2 Solr的下载地址
/dyn/closer.cgi/lucene/solr/5.1.0
本课程的Solr版本是:4.10.3
3.3 Solr的包结构
4Solr集成tomcat
4.1 第一步,安装tomcat
要求jdk:1.7以上版本1.7.0_72
要求tomcat7以上版本
apache-tomcat-7.0.53
4.2 第二步:安装Solr.war
1、把solr-4.10.3\dist\solr-4.10.3.war复制到tomcat的webapp目录下。
2、解压。可以启动tomcat解压也可以使用解压缩软件解压。
3、把解压后的solr-4.10.3文件夹改名为sorl,目的是为了访问url时方便。
4、把solr-4.10.3.war删掉。
4.3 第三步:把日志相关的jar包添加到solr工程中把\solr-4.10.3\example\lib\ext目录下的所有jar包复制到solr工程中。
4.4 第四步:配置Solrhome
4.4.1Solrhome:
就是solr服务器所有的配置文件存放的路径。
\solr-4.10.3\example\solr文件夹就是一个标准的solrhome,可以直接使用。
把\solr-4.10.3\example\solr文件夹复制到d:\temp\0122目录下,改名为solrhome,改名不是必须,是为了便于理解。
4.4.2solrcore
Solrhome下的collection1叫做solrcore,是一个solr的实例。
一个solrcore就相当于mysql的一个数据库,实际上就是一个独立的索引库。
3、每个solrcore中有一个conf文件夹,包含了此solrcore的全部配置。
Solrconfig.xml如果使用默认配置可以不用做任何配置。
4.4.3Solrconfig.xml
Lib:solrcore扩展时依赖的jar包。可以指定jar包所在的路径。默认路径是collection1\lib 文件夹。如果没有lib文件夹就创建一个。
dataDir:索引库存放的路径。默认路径是collection1\data目录。当服务启动后会自动创建。
requestHandler:处理请求的路径。
查询索引时使用的url路径:
维护索引时使用的url路径:
defaultQuery:默认的查询条件*:*
4.5 第五步:告诉solr服务器solrhome的位置
使用jdni的方式配置solrhome的位置。
修改solr工程的web.xml,指定solrhome的位置。
4.6 第六步:启动tomcat
访问:http://localhost:8080/solr
5Solr管理界面介绍5.1 Core Admin
可以在此查看solrcore的信息。
5.1.1添加solrcore
第一步:把solrhome下的collection1复制一份,改名为collection2 第二步:修改core.properties修改name=collection2
第三步:重启tomcat
5.2 Core selecter
选择要管理的solrcore
5.3 Analysis
查看域的分词效果,域是solr中定义的域。
5.4 Dataimport
导入数据功能,把数据库中的数据导入到索引库中。
5.5 Documents
维护索引的功能,包括增删改操作。