拓薪教育-solr教程
Solr安装使用教程
Solr安装使⽤教程⼀、安装1.1 安装jdksolr是基于lucene⽽lucene是java写的,所以solr需要jdk----当前安装的solr-7.5需要jdk-1.8及以上版本,下载安装jdk并设置JAVA_HOME即可。
jdk下载地址:1.2 安装solr下载solr,然后解压即可,windows和linux都可以下.tgz(.tgz本质是.tar.gz)和.zip解压出来都⼀样的。
solr下载地址:要注意图中的链接是下载页⾯的链接并不是solr⽂件的链接,直接wget链接就报gzip: solr-7.5.0.tgz: not in gzip format或End-of-central-directory signature not found.了。
1.3 设置系统资源限制设置最⼤进程数t和打开⽂件数为65000(可能其他⼀些资源也要修改但我安装时没见有其他问题,⽂档也没看到专门说明)ulimit -u 65000ulimit -n 65000⼆、solr基本⽤法对于没⽤过的新⼿⽽⾔,⾸先最关⼼的是怎么运⾏起来看这东西长什么样其他什么⾼级⽤法后⽽再说,这⾥我们就来做这件事。
2.1 启停进⼊解压后⽂件的bin⽬录,执⾏:# 启动./solr start# 停⽌./solr stopsolr默认拒绝以root⾝份启动,root加-force选项可以启动,但后续进⾏操作(如创建核⼼等)还是会有问题,推荐使⽤普通⽤户动。
启动完成后默认监听8983端⼝,访问可见界⾯如下2.2 solr核⼼(core)创建与删除在上⾯启动起来的页⾯可以看到solr就是就是这么⼀个界⾯简陋的东西----页⾯简单(没⼏个页⾯)加布局丑陋。
solr中⼀个核⼼(core)相当于⼀个搜索引擎,然后上传⽂件时也是上传到指定核⼼;solr可以建⽴多个solr。
solr默认没有core,我们先来创建⼀个core。
通过命令创建和删除core:# 创建core,-c指定创建的core名./solr create -c test_core1# 删除core,-c指定删除的core名./solr delete -c test_core1完成后回刷新solr界⾯,点击下拉“Core Selector”即可看到刚才建⽴的core,选择core即可进⼊core的管理界⾯,如下图。
solr教程
Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)Apache Solr 介绍Solr 是什么?Solr 是一个开源的企业级搜索服务器,底层使用易于扩展和修改的Java 来实现。
服务器通信使用标准的HTTP 和XML,所以如果使用Solr 了解Java 技术会有用却不是必须的要求。
Solr 主要特性有:强大的全文检索功能,高亮显示检索结果,动态集群,数据库接口和电子文档(Word ,PDF 等)的处理。
而且Solr 具有高度的可扩展,支持分布搜索和索引的复制。
Lucene 是什么?Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。
Lucene 目前是 Apache Jakarta 家族中的一个开源项目。
也是目前最为流行的基于 Java 开源全文检索工具包。
目前已经有很多应用程序的搜索功能是基于 Lucene ,比如 Eclipse 帮助系统的搜索功能。
Lucene 能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索。
Solr VS LuceneSolr 与Lucene 并不是竞争对立关系,恰恰相反Solr 依存于Lucene ,因为Solr 底层的核心技术是使用Apache Lucene 来实现的,简单的说Solr 是Lucene 的服务器化。
需要注意的是Solr 并不是简单的对Lucene 进行封装,它所提供的大部分功能都区别于Lucene 。
安装搭建Solr安装Java 虚拟机Solr 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可,但如果需要扩展功能或编译源码则需要下载JDK 来完成。
可以通过下面的地址下载所需JDK 或JRE :∙OpenJDK (/j2se/downloads.html)∙Sun (/j2se/downloads.html)∙IBM (/developerworks/java/jdk/)∙Oracle (/technology/products/jrockit/index.html)安装步骤请参考相应的帮助文档。
solr使用流程
solr使用流程Solr使用流程一、概述Solr是一个开源的企业级搜索平台,基于Apache Lucene构建。
它提供了强大的全文搜索、分布式搜索、面向文档的搜索和高级搜索功能。
Solr的使用流程可以分为以下几个步骤:准备环境、创建索引、搜索数据。
二、准备环境在开始使用Solr之前,首先需要准备好运行环境。
Solr可以运行在各种操作系统上,包括Windows、Linux和Mac OS。
在安装Solr 之前,确保已经安装了Java Development Kit(JDK),并配置好了JAVA_HOME环境变量。
然后,从Solr官网下载最新版本的Solr,并解压到本地目录中。
三、创建索引1. 定义Schema在开始创建索引之前,需要定义Schema。
Schema是Solr中的模式文件,用于定义索引字段的类型、分析器和其他属性。
可以使用任何文本编辑器打开schema.xml文件,并根据需求进行修改。
常见的字段类型包括文本类型、日期类型、布尔类型等。
2. 导入数据在定义好Schema之后,需要将数据导入到Solr中。
Solr支持多种数据导入方式,包括手动导入和自动导入。
手动导入可通过提交XML或JSON格式的数据来实现,而自动导入则可以通过配置数据源和定时任务来实现。
3. 创建索引数据导入完成后,即可创建索引。
在Solr中,索引是由一系列的文档组成,每个文档都包含多个字段。
可以使用Solr提供的API来创建索引,也可以使用Solr的客户端工具来操作。
创建索引的过程包括向Solr提交文档、更新索引和删除索引等操作。
四、搜索数据创建索引完成后,即可开始搜索数据。
Solr提供了丰富的搜索功能,可以通过关键字、范围、过滤条件等进行高级搜索。
可以使用Solr 提供的查询语法来构建查询语句,并通过HTTP请求将查询发送给Solr服务器。
Solr会返回与查询条件匹配的文档列表。
1. 构建查询语句在构建查询语句时,需要考虑搜索的字段、搜索的关键字和搜索的条件。
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中记录的就是这种位置。
加上出现频率和出现位置信息后,我们的索引结构变为:实现时,lucene将上⾯三列分别作为词典⽂件(Term Dictionary)、频率⽂件(frequencies)、位置⽂件 (positions)保存。
其中词典⽂件不仅保存有每个关键词,还保留了指向频率⽂件和位置⽂件的指针,通过指针可以找到该关键字的频率信息和位置信息。
solr使用手册
Solr全文检索服务一、企业站内搜索技术选型⏹在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快、搜索结果按相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。
1.使用Lucene实现?什么是Lucene ?⏹Lucene是一个基于Java的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。
Lucene目前是Apache Jakarta(雅加达) 家族中的一个开源项目。
也是目前最为流行的基于Java开源全文检索工具包。
目前已经有很多应用程序的搜索功能是基于Lucene ,比如Eclipse 帮助系统的搜索功能。
Lucene能够为文本类型的数据建立索引,所以你只要把你要索引的数据格式转化的文本格式,Lucene 就能对你的文档进行索引和搜索●单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引性能优化、搜索性能优化等,因此不建议采用。
2.使用Google或Baidu接口?●通过第三方搜索引擎提供的接口实现站内搜索,这样和第三方引擎系统依赖紧密,不方便扩展,不建议采用。
3.使用Solr实现? 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使用手册
Solr部署及开发一、部署1 环境要求JDK 1.6及以上版本,Tomcat 6及以上,Solr发布版本4.X。
如果使用较低版本,请查看Solr版本支持的JDK版本。
2安装步骤首先安装JDK 1.7和Tomcat 7,配置好环境变量,并下载最新版Solr,目前版本为4.6.0。
如有必要可手动修改Tomcat端口号。
为了支持中文,需要修改tomcat中conf目录下的server.xml文件,在connector 节点中添加字符编码属性URIEncoding,如下:<Connector port="8086" protocol="HTTP/1.1"connectionTimeout="20000" URIEncoding="UTF-8"redirectPort="8443" />◆运行在jetty服务器Solr可以运行在自带的jetty服务器,可按如下步骤运行起来:1、解压solr-4.6.0.zip到你想到存放的路径,比如:d:/solr2、cmd打开命令行窗口,进入d:/solr/example目录3、执行命令:java -jar start.jar4、通过第三步以后,系统会启动solr自带的jetty服务器,通过http://localhost:8983/solr/便可访问solr。
此时,solr已成功启动。
◆运行在Tomcat服务器1、solr.4.6.0.zip解压到指定的目录中,如d:/solr-4.6.0。
2、将d:/solr-4.6.0/example/webapps下的solr.war拷贝到tomcat–>weapps中。
3、新建文件夹d:/sorl_home,将d:/solr-4.6.0/example/solr目录拷贝至d:/sorl_home中,如果要配置为多核应用,可以将solr-4.6.0\example下的multicore拷贝到d:/sorl_home中,这样就会有就会有core0和core1两个应用。
solr_使用安装
solr_使用安装介绍Solr说明Solr 是一种可供企业使用的、基于Lucene 的搜索服务器,它支持层面搜索、命中醒目显示和多种输出格式。
在这篇分两部分的文章中,Lucene Java™ 的提交人Grant Ingersoll 将介绍Solr 并向您展示如何轻松地将其表现优异的全文本搜索功能加入到Web 应用程序中。
安装1、先下载Apache Solra)/solr/,下载solr-3.6.1。
解压到d盘根目录。
2、下载Apache Tomcata)每个人手里都有,不多加叙述了。
3、solr 安装到tomcat。
a)修改E:\apache-tomcat-6.0.18\conf\server.xml,加个URIEncoding="UTF-8",把8080 的那一块改为:<Connector port="8983" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="utf-8" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata"compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/>b)修改虚拟目录:<Context path="/solr" docBase="D:\apache-solr-3.6.1\dist\apache-solr-3.6.1.war" reloadable="true"><Environment name="solr/home" type="ng.String"value="D:\apache-solr-3.6.1\example\solr" override="true"></Environment></Context>4、现在安装好,启动tomcat,并打开http://localhost:8080/solr/admin/看看界面。
solr环境搭建基本使用
stored=”true” 是否存储索引 type=”textCpmplex” 设置该字段
修改
三、Solr使用 1、添加索引 1.1、solrServer初始化
1.2、添加单条索引
1.3 添加集合中数据到solr索引
1.4、将javabean中的数据添加到solr索引
8.3、将中文分词添加到FieldType中
二、Solr使用配置步骤 1、配置solr schema.xml文件 1、1配置应用中用到的自定义field域(因场景而定) 例子如下:
属性说明: multiValued="true" 设置多值域 indexed=”true” 是否设置索引 支持中文分词 name=”你设置的 字段名称”
5、在tomcat server.xml 设置相应的context
6、为context设置相应的环境变量,说明solr的主目录的地址
7、在solrconfig.xml文件中取消VelocityResponseWriter这种输出格式
8、加入中文分词 8.1、下载中文分词器 8.2、将中文分词的包拷贝到server的lib中
找到solr data 索引目录 即可看到分词结果
工程诗博主写的确实没有问题只是他先lr服务与tomcat整合 2. solr使用配置步骤 3. solr使用 4. 推荐分词工具
相关的文章
solr环 境 搭 建 基 本 使 用
一.Solr服务与tomcat整合 2、将solr中的example中的solr拷贝到要作为服务器的位置 3、将相应的solr的web程序也拷贝出来 4、修改solr-->home文件夹中的solrconfig.xml设置data的路径
solr语法
solr语法Solr是一个基于Lucene的开源搜索平台,支持全文检索、分布式搜索、多语言支持等功能。
Solr语法是指在Solr平台上执行搜索时所使用的查询语言,它可以帮助用户更加精确地定位到所需要的数据。
Solr语法主要包括以下几个方面:1. 查询语句:查询语句是Solr中最基本的语法,它用于指定要搜索的内容。
查询语句可以是一个单词或一个短语,也可以是一个复杂的逻辑表达式。
例如:- 查询单词:q=keyword- 查询短语:q="keyword1 keyword2"- 复杂逻辑表达式:q=(keyword1 AND keyword2) OR keyword32. 过滤器:过滤器用于对搜索结果进行过滤,可以根据指定条件过滤掉不符合条件的文档。
常用的过滤器包括范围过滤器、布尔过滤器、集合过滤器等。
例如:- 范围过滤器:fq=price:[10 TO 100]- 布尔过滤器:fq=is_published:true- 集合过滤器:fq=id:(1234 OR 5678)3. 排序:排序用于对搜索结果进行排序,可以根据指定字段对结果进行升序或降序排列。
例如:- 升序排序:sort=price asc- 降序排序:sort=price desc4. 分页:分页用于控制搜索结果的输出数量,可以指定每页输出多少条数据和从哪条数据开始输出。
例如:- 每页输出10条数据:rows=10- 从第20条数据开始输出:start=205. 字段选择:字段选择用于指定返回结果中包含哪些字段,可以提高搜索效率和减少网络传输量。
例如:- 返回title和content字段:fl=title,content- 排除id和score字段:fl=-id,-score以上就是Solr语法的主要内容,通过合理使用这些语法可以帮助用户更加准确地搜索到所需要的数据。
Solr课件
solr入门课程计划:1、solr服务介绍2、solr服务的安装3、solr home的目录结构4、自定义索引库5、将数据库数据导入索引库6、solrj对索引库的维护7、solr案例1solr服务介绍1.1什么是solrSolr is the popular, blazing-fast, open source enterprise search platform built on Apache Lucene™.Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene 的全文搜索服务。
Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
1.2solr与Lucene区别Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索应用。
Lucene仅提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索应用。
Solr的目标是打造一款企业级的搜索引擎系统,它是基于Lucene一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。
2solr服务安装与运行2.1下载地址:/solr/2.2安装解压solr-4.10.3后的目录结构:2.3运行执行example目录下的start.jar即可。
2.4访问http://localhost:8983/solr/2.5solr运行在tomcat中2.5.1copy solr.war将solr解压后的/example/webapps目录下的solr.war copy到tomcat 的webapps目录下中。
2.5.2启动tomcat2.5.2.1错误一通过查看日志,需要导入jar包。
solr课程
Elasticsearch
solr的特点
通过HTTP协议处理搜索和查询请求。 增加了缓存功能,让响应速度更快。 提供了一个基于web的管理界面 查询结果分类(facet) 支持分布式,支持大规模的部署 (solrcloud)(Solr4.0版本开始)
hl高亮
hl.fl:用空格或逗号隔开的字段列表
hl.simple.pre:前缀 hl.simple.post:后缀
注意:要启用某个字段的高亮功能,需要保 证这个字段在schema中是store。
高亮需要注意的问题
对于multiValued=true的字段不要设计高 亮显示
因为solr对于这个字段里面的多个值只会返回 匹配高亮的那个值
Config Analysis
Schema
Caching
Solr Core
Concurrency
Update Handler
Lucene
Replicatio
8
solr的应用
Solr下载
solr官方网站
/solr/
solr文档:
/dist/lucene/solr/ref-guide/ /solr/4_10_0/tutorial.html
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
solr.TextField 允许用户通过分析器来定制索引和查询,分析器 包括 一个分词器(tokenizer)和多个过滤器(filter) positionIncrementGap:可选属性,定义在同一个文档中此 类型数据的空白间隔,避免短语匹配错误。
solr引擎中文处理流程
solr引擎中文处理流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!Solr 中文处理流程。
Solr 中文处理流程主要分为以下几个步骤:1. 文本分词。
Solr单机版搭建
1.搜索工程搭建表现层服务层持久层要实现搜索功能,需要搭建solr服务、搜索服务工程、搜索系统1.1.S olr服务搭建1.1.1.Solr的环境Solr是java开发。
需要安装jdk。
安装环境Linux。
需要安装Tomcat。
1.1.2.搭建步骤第一步:把solr 的压缩包上传到Linux系统第二步:解压solr。
第三步:安装Tomcat,解压缩即可。
第四步:把solr部署到Tomcat下。
第五步:解压缩war包。
启动Tomcat解压。
第六步:把/root/solr-4.10.3/example/lib/ext目录下的所有的jar包,添加到solr工程中。
[root@localhost ext]# pwd/root/solr-4.10.3/example/lib/ext[root@localhost ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/第七步:创建一个solrhome。
/example/solr目录就是一个solrhome。
复制此目录到/usr/local/solr/solrhome[root@localhost example]# pwd/root/solr-4.10.3/example[root@localhost example]# cp -r solr /usr/local/solr/solrhome[root@localhost example]#第八步:关联solr及solrhome。
需要修改solr工程的web.xml文件。
第九步:启动Tomcathttp://192.168.25.154:8080/solr/和windows下的配置完全一样。
1.1.3.Solr的使用添加文档必须有id域,其他域必须在solr的schema.xml中定义。
1.2.配置业务域schema.xml中定义1、商品Id2、商品标题3、商品卖点4、商品价格5、商品图片6、分类名称7、商品描述创建对应的业务域。
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)3.2一个简单的例子 (30)3.2.1Solr Schema 设计 (30)3.2.2构建索引 (30)3.2.3搜索测试 (31)3.3搜索引擎的规划设计 (32)3.3.1定义业务模型 (32)3.3.2定制索引服务 (34)3.3.3定制搜索服务 (34)3.4搜索引擎配置 (34)3.4.1Solr Schema 设计(如何定制索引的结构?) (34)3.5如何进行索引操作? (36)3.5.1基本索引操作 (36)3.5.2批量索引操作 (37)3.6如何进行搜索 (39)3.6.1搜索语法 (39)3.6.2排序 (42)3.6.3字段增加权重 (42)3.6.4Solr分词器、过滤器、分析器 (42)3.6.5Solr高亮使用 (46)4SolrJ的用法 (46)4.1搜索接口的调用实例 (46)4.2Solrj的使用说明 (47)4.2.1Adding Data to Solr (47)4.2.2Directly adding POJOs to Solr (49)4.2.3Reading Data from Solr (51)4.3创建查询 (51)4.4使用SolrJ 创建索引 (52)4.5Solrj包的结构说明 (53)4.5.1CommonsHttpSolrServer (53)4.5.2Setting XMLResponseParser (53)4.5.3Changing other Connection Settings (53)4.5.4EmbeddedSolrServer (54)5Solr的实际应用测试报告 (54)5.1线下压力测试报告 (54)5.2线上环境运行报告 (54)6solr性能调优 (55)6.1Schema Design Considerations (55)6.1.1indexed fields (55)6.1.2stored fields (55)6.2Configuration Considerations (55)6.2.1mergeFactor (55)6.2.2mergeFactor Tradeoffs (56)6.3Cache autoWarm Count Considerations (56)6.4Cache hit rate(缓存命中率) (56)6.5Explicit Warming of Sort Fields (56)6.6Optimization Considerations (56)6.7Updates and Commit Frequency Tradeoffs (56)6.8Query Response Compression (57)6.9Embedded vs HTTP Post (57)6.10RAM Usage Considerations(内存方面的考虑) (57)6.10.1OutOfMemoryErrors (57)6.10.2Memory allocated to the Java VM (57)7FAQ (58)7.1出现乱码或者查不到结果的排查方法: (58)概述企业搜索引擎方案选型由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择:基于Lucene自己进行封装实现站内搜索。
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参数,实现对搜索结果的聚合统计。
五、性能优化1. 索引优化:通过优化索引结构、字段配置等,提升索引的性能。
2. 查询优化:通过合理使用缓存、调整查询参数等,提升查询的性能。
3. 集群部署:将Solr部署到多台服务器上,实现分布式搜索,提升系统的吞吐量和可用性。
六、常见问题解决1. 乱码问题:通过设置字符集、使用适当的分词器等,解决乱码问题。
2. 性能问题:通过调整配置参数、优化查询语句等,解决性能问题。
Solr使用入门指南
Solr使用入门指南Solr使用入门指南1.引言1.1 Solr简介1.2 Solr的主要特性1.3 Solr的应用场景2.安装和配置2.1 系统要求2.2 Solr2.3 安装Solr2.4 配置Solr3.索引和查询数据3.1 创建索引3.2 添加和更新文档3.3 查询和过滤数据3.4 排序和分页3.5 删除文档和索引3.6 事务和并发控制4.Schema和字段类型4.1 Schema.xml文件4.2 字段类型4.3 动态字段4.4 字段属性5.过滤器和分析器5.1 Tokenizer和TokenFilter 5.2 内置的过滤器和分析器5.3 自定义过滤器和分析器6.查询解析器6.1 自然语言查询解析器6.2 布尔查询解析器6.3 Phrase查询解析器6.4 范围查询解析器6.5 多关键词查询解析器7.高级搜索功能7.1 Faceted Search7.2 Spatial Search7.3 拼写检查7.4 查询建议8.分布式Solr8.1 分片和副本8.2 集群配置8.3 分布式索引和查询9.性能调优9.1 索引性能优化9.2 查询性能优化9.3 缓存调优9.4 硬件优化10.监控和管理10.1 Solr的监控工具 10.2 日志管理10.3 Solr的安全机制10.4 Solr的备份和恢复11.示例应用11.1 e-commerce应用11.2 新闻搜索应用11.3 电子图书馆应用12.附件本文档涉及附件。
法律名词及注释:- Solr:一种开源搜索平台,基于Apache Lucene构建,提供强大的全文搜索、分布式搜索和大数据处理能力。
- Schema:Solr中定义索引结构的配置文件,用于指定字段类型、字段属性等。
- Tokenizer:将输入文本拆分为单词或单个词组的组件。
- TokenFilter:对输入单词进行处理的组件,例如大小写转换、词根化等。
- Faceted Search:分层搜索,允许用户根据多个分类维度进行搜索。
Solr入门实战(4)--Java操作Solr
Solr⼊门实战(4)--Java操作Solr本⽂主要介绍使⽤ Java 来操作 Solr,⽂中所使⽤到的软件版本:Java 1.8.0_191、Solr 8.9.0。
1、定义 Schema 信息假设⼀个描述诗⼈信息的⽂档包含如下字段:字段描述id唯⼀主键age年龄name姓名poems诗歌about简介success成就定义的 schema 信息如下:<field name="about" type="text_ik" uninvertible="true" indexed="true" stored="true"/><field name="age" type="pint" uninvertible="true" indexed="true" stored="true"/><field name="content" type="text_ik" uninvertible="true" indexed="true" stored="true" multiValued="true"/><field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/><field name="name" type="text_ik" uninvertible="true" indexed="true" stored="true"/><field name="poems" type="text_ik" uninvertible="true" indexed="true" stored="true"/><field name="success" type="text_ik" uninvertible="true" indexed="true" stored="true"/>2、Java 操作 Solr2.1、引⼊依赖<dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>8.9.0</version></dependency><dependency><groupId>org.apache.solr</groupId><artifactId>solr-core</artifactId><version>8.9.0</version></dependency>2.2、编写 demo2.2.1、增加/更新⽂档@Testpublic void update() throws IOException, SolrServerException {SolrInputDocument document = new SolrInputDocument();document.addField("id", "123456");document.addField("age", 30);document.addField("name", "李⽩2");document.addField("poems", "望庐⼭瀑布");document.addField("about", "字太⽩");document.addField("success", "创造了古代浪漫主义⽂学⾼峰、歌⾏体和七绝达到后⼈难及的⾼度");SolrInputDocument document2 = new SolrInputDocument();document2.addField("id", "123457");document2.addField("age", 31);document2.addField("name", "杜甫");document2.addField("poems", "望岳");document2.addField("about", "字⼦美");document2.addField("success", "唐代伟⼤的现实主义⽂学作家,唐诗思想艺术的集⼤成者");solrClient.add(coreName, document);solrClient.add(coreName, document2);mit(coreName, true,true);}还可以通过实体类来增加/更新⽂档:@Testpublic void update2() throws IOException, SolrServerException {PoetInfo info = new PoetInfo("123456", 40, "李⽩", "望庐⼭瀑布", "字太⽩", "创造了古代浪漫主义⽂学⾼峰、歌⾏体和七绝达到后⼈难及的⾼度"); solrClient.addBean(coreName, info);mit(coreName, true,true);}2.2.2、查询⽂档/*** 通过 MapSolrParams 查询*/@Testpublic void query() throws IOException, SolrServerException {Map<String, String> map = new HashMap<>();//查询条件map.put("q", "*:*");//要显⽰的内容map.put("fl", "id,age,name,poems");//排序⽅式map.put("sort", "id asc");MapSolrParams solrParams = new MapSolrParams(map);QueryResponse queryResponse = solrClient.query(coreName, solrParams); SolrDocumentList documents = queryResponse.getResults();("查询到{}个⽂档!", documents.getNumFound());for (SolrDocument document : documents) {String id = (String)document.getFieldValue("id");Integer age = (Integer)document.getFieldValue("age");String name = (String)document.getFieldValue("name");String poems = (String)document.getFieldValue("poems");("id={},age={},name={},poems={}", id, age, name, poems);}}/*** 通过 solrQuery 查询*/@Testpublic void query2() throws IOException, SolrServerException {SolrQuery solrQuery = new SolrQuery("*:*");solrQuery.addField("id");solrQuery.addField("age");solrQuery.addField("name");solrQuery.addField("poems");solrQuery.addSort("id", SolrQuery.ORDER.asc);//设置返回的⾏数solrQuery.setRows(10);QueryResponse queryResponse = solrClient.query(coreName, solrQuery); SolrDocumentList documents = queryResponse.getResults();("查询到{}个⽂档!", documents.getNumFound());for (SolrDocument document : documents) {String id = (String)document.getFieldValue("id");Integer age = (Integer)document.getFieldValue("age");String name = (String)document.getFieldValue("name");String poems = (String)document.getFieldValue("poems");("id={},age={},name={},poems={}", id, age, name, poems);}}/*** 查询返回实例类对象*/@Testpublic void query3() throws IOException, SolrServerException {SolrQuery solrQuery = new SolrQuery("*:*");solrQuery.addField("id");solrQuery.addField("age");solrQuery.addField("name");solrQuery.addField("poems");solrQuery.addField("about");solrQuery.addField("success");solrQuery.addSort("id", SolrQuery.ORDER.asc);//设置返回的⾏数solrQuery.setRows(10);QueryResponse queryResponse = solrClient.query(coreName, solrQuery); List<PoetInfo> list = queryResponse.getBeans(PoetInfo.class);("查询到{}个⽂档!", list.size());for (PoetInfo info : list) {(info.toString());}}2.2.3、删除⽂档/*** 根据id删除⽂档*/@Testpublic void delete() throws IOException, SolrServerException {solrClient.deleteById(coreName, "123456");mit(coreName, true,true);}/*** 根据查询删除⽂档*/@Testpublic void delete2() throws IOException, SolrServerException {solrClient.deleteByQuery(coreName, "name:杜甫");mit(coreName, true,true);}2.2.4、完整代码package com.abc.demo.general.solr;import org.apache.solr.client.solrj.beans.Field;public class PoetInfo {@Fieldprivate String id;@Fieldprivate Integer age;@Fieldprivate String name;@Fieldprivate String poems;@Fieldprivate String about;@Fieldprivate String success;public PoetInfo() {}public PoetInfo(String id, Integer age, String name, String poems, String about, String success) { this.id = id;this.age = age; = name;this.poems = poems;this.about = about;this.success = success;}@Overridepublic String toString() {return "Info{" +"id='" + id + '\'' +", age=" + age +", name='" + name + '\'' +", poems='" + poems + '\'' +", about='" + about + '\'' +", success='" + success + '\'' +'}';}public String getId() {return id;}public void setId(String id) {this.id = id;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public String getAbout() {return about;}public void setAbout(String about) {this.about = about;}public String getSuccess() {return success;}public void setSuccess(String success) {this.success = success;}}PoetInfopackage com.abc.demo.general.solr;import org.apache.solr.client.solrj.SolrQuery;import org.apache.solr.client.solrj.SolrServerException;import org.apache.solr.client.solrj.impl.HttpSolrClient;import org.apache.solr.client.solrj.response.QueryResponse;import mon.SolrDocument;import mon.SolrDocumentList;import mon.SolrInputDocument;import mon.params.MapSolrParams;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.IOException;import java.util.HashMap;import java.util.List;import java.util.Map;public class SolrCase {private static Logger logger = LoggerFactory.getLogger(SolrCase.class);private HttpSolrClient solrClient;private String coreName = "new_core";@Beforepublic void before() {solrClient = new HttpSolrClient.Builder("http://10.40.100.69:8983/solr").withConnectionTimeout(10000).withSocketTimeout(60000).build();}@Afterpublic void after() throws IOException {solrClient.close();}@Testpublic void update() throws IOException, SolrServerException {SolrInputDocument document = new SolrInputDocument();document.addField("id", "123456");document.addField("age", 30);document.addField("name", "李⽩2");document.addField("poems", "望庐⼭瀑布");document.addField("about", "字太⽩");document.addField("success", "创造了古代浪漫主义⽂学⾼峰、歌⾏体和七绝达到后⼈难及的⾼度"); SolrInputDocument document2 = new SolrInputDocument();document2.addField("id", "123457");document2.addField("age", 31);document2.addField("name", "杜甫");document2.addField("poems", "望岳");document2.addField("about", "字⼦美");document2.addField("success", "唐代伟⼤的现实主义⽂学作家,唐诗思想艺术的集⼤成者");solrClient.add(coreName, document);solrClient.add(coreName, document2);mit(coreName, true,true);}@Testpublic void update2() throws IOException, SolrServerException {PoetInfo info = new PoetInfo("123456", 40, "李⽩", "望庐⼭瀑布", "字太⽩", "创造了古代浪漫主义⽂学⾼峰、歌⾏体和七绝达到后⼈难及的⾼度"); solrClient.addBean(coreName, info);mit(coreName, true,true);}/*** 通过 MapSolrParams 查询*/@Testpublic void query() throws IOException, SolrServerException {Map<String, String> map = new HashMap<>();//查询条件map.put("q", "*:*");//要显⽰的内容map.put("fl", "id,age,name,poems");//排序⽅式map.put("sort", "id asc");MapSolrParams solrParams = new MapSolrParams(map);QueryResponse queryResponse = solrClient.query(coreName, solrParams);SolrDocumentList documents = queryResponse.getResults();("查询到{}个⽂档!", documents.getNumFound());for (SolrDocument document : documents) {String id = (String)document.getFieldValue("id");Integer age = (Integer)document.getFieldValue("age");String name = (String)document.getFieldValue("name");String poems = (String)document.getFieldValue("poems");("id={},age={},name={},poems={}", id, age, name, poems);}}/*** 通过 solrQuery 查询*/@Testpublic void query2() throws IOException, SolrServerException {SolrQuery solrQuery = new SolrQuery("*:*");solrQuery.addField("id");solrQuery.addField("age");solrQuery.addField("name");solrQuery.addField("poems");solrQuery.addSort("id", SolrQuery.ORDER.asc);//设置返回的⾏数solrQuery.setRows(10);QueryResponse queryResponse = solrClient.query(coreName, solrQuery);SolrDocumentList documents = queryResponse.getResults();("查询到{}个⽂档!", documents.getNumFound());for (SolrDocument document : documents) {String id = (String)document.getFieldValue("id");Integer age = (Integer)document.getFieldValue("age");String name = (String)document.getFieldValue("name");String poems = (String)document.getFieldValue("poems");("id={},age={},name={},poems={}", id, age, name, poems);}}/*** 查询返回实例类对象*/@Testpublic void query3() throws IOException, SolrServerException {SolrQuery solrQuery = new SolrQuery("*:*");solrQuery.addField("id");solrQuery.addField("age");solrQuery.addField("name");solrQuery.addField("poems");solrQuery.addField("about");solrQuery.addField("success");solrQuery.addSort("id", SolrQuery.ORDER.asc);//设置返回的⾏数solrQuery.setRows(10);QueryResponse queryResponse = solrClient.query(coreName, solrQuery);List<PoetInfo> list = queryResponse.getBeans(PoetInfo.class);("查询到{}个⽂档!", list.size());for (PoetInfo info : list) {(info.toString());}}/*** 根据id删除⽂档*/@Testpublic void delete() throws IOException, SolrServerException {solrClient.deleteById(coreName, "123456");mit(coreName, true,true);}/*** 根据查询删除⽂档*/@Testpublic void delete2() throws IOException, SolrServerException {solrClient.deleteByQuery(coreName, "name:杜甫");mit(coreName, true,true);}}SolrCase3、Java 操作 SolrCloudJava 操作 SolrCloud 与 Java 操作 Solr 很类似,主要区别有:1、连接使⽤的类不同,连接 Solr 使⽤的是 HttpSolrClient,连接 SolrColud 使⽤的是 CloudHttp2SolrClient。
solr介绍、安装配置和在项目中的应用
solr介绍、安装配置和在项目中的应用1 Solr概念Solr是一个基于Lucene java库的企业级搜索服务器,运行在Servlet容器中。
●模式(schema.xml):一个Document包含一个或多个Field。
一个Field由名称、内容和给出了内容的处理方法的元数据组成。
分析内容可以使其被搜索到。
而分析则是通过将一个T okenizer与零个或零个以上的T okenFilter链接到一起来完成的,Tokenizer 能够将输入流拆分为单词(标记),TokenFilter 能够改变(例如,词干)或移除标记。
Solr 模式能够在没有代码的情况下轻松配置分析过程。
它还提供了更强大的键入功能,让您能够将Field具体指定为String、int、float或其他原有的或自定义的类型。
●配置(solrconfig.xml):solrconfig.xml 文件不仅指定了Solr 如何处理索引、突出显示、分类、搜索以及其他请求,还指定了用于指定缓存的处理方法的属性,以及用于指定Lucene 管理索引的方法的属性。
配置取决于模式,但模式不取决于配置。
●索引:索引和搜索都是通过向Solr 服务器发送请求来实现的。
索引的实现方法很简单,用POST一个描述所有Field及其内容的XML 文档就可以了,如位于apache-solr-1.3.0/example/exampledocs/ 目录下的hd.xml 样例文档:●搜索2 安装配置solr1.下载apache-solr-3.4.0.zip,解压;2.将…\\apache-solr-3.4.0\\example\\webapps中的solr.war文件拷到tomcat的webapps文件夹下;3.设置solr的主位置:修改tomcat的bin文件夹下的catalina.bat文件,加入语句setJA V A_OPTS=%JA V A_OPTS% -Dsolr.solr.home= apache-solr-3.4.0路径\\example\\solr;4.启动tomcat,输入网址http://localhost:8080/solr/admin/验证solr安装配置是否成功。
Solr学习文档
Solr学习文档1.Solr的安装部署a)下载Apache-Solr-1.4b)解压文件,在dist下载拿到Solr.war文件c)把Solr文件放在Tomcat/WebApps下面d)再把解压文件exsmplex下的solr放在一个特定位置。
然后记录其路径e)然后Tomcat会根据Solr.war生成一个Solr文件夹,在这个文件夹里面找到web.xmlf)更改web.xml里面的配置<env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>exsmplex下solr存放的路径</env-entry-value><env-entry-type>ng.String</env-entry-type></env-entry>g)然后进行访问。
出现“Welcome to Solr”2.中文分词a)下载mmseg4j-1.8.3.zipb)配置Solr下的Schema.xmlc)添加fieldType以及field3.配置文件a)Schema.xml 这个相当于数据表配置文件,它定义了加入索引的数据的数据类型的i.在fields结点内定义具体的字段(类似数据库中的字段),就是filed,filed定义包括name,type(为之前定义过的各种FieldType),indexed(是否被索引),stored(是否被储存),multiValued(是否有多个值)等等。
<fields><field name="content"type="text"indexed="true"stored="false"/><field name="keywords"type="keyword_text"indexed="true"stored="false"multiValued="true"/><field name="all"type="text"indexed="true"stored="false"multiValued="true"/></fields>b)SolrConfig配置Solr一些基本信息4.Solr Multicore新特性:一个Tomcat配置多个Solr<?xml version="1.0"encoding="UTF-8"?><solr persistent="false"><cores adminPath="/admin/cores"><core name="core0"instanceDir="core0"/><core name="core1"instanceDir="core1"/></cores></solr>5.通过httpClient建立索引public static final String SOLR_URL="http://localhost/solr/core0";public static void commit(){Date date=new Date();SolrServer solr=new CommonsHttpSolrServer(SOLR_URL);SolrInputDocument sid=new SolrInputDocument();sid.addField("id",i);solr.add(sid);mit();6.Solr查询参数说明在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数!具体请看1.常用q - 查询字符串,必须的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全文检索技术Solr讲师:任亮1课程计划1、站内搜索技术的选型2、什么是Solr3、Solr的安装及配置,solr整合tomcat。
4、Solr对索引库的维护,基于solr的后台管理界面a)增加文档b)删除文档c)修改文档5、Solr查询索引,基于solr的后台管理界面6、Solr的客户端SolrJa)索引的维护b)索引的查询7、综合案例,电商网站的搜索功能2站内搜索技术的选型1、Lucene实现站内搜索。
开发工作量大,还要对索引库的维护投入大量的工作,索引的优化查询的优化,大并发量的考虑。
不推荐使用。
2、可以使用搜索搜索引擎提供站内搜索功能。
索引库放在搜索引擎上,不能维护。
优点就非常简单。
3、solr技术,solr是基于lucene开发的一个全文检索服务器,提供了全套的全文检索解决方案。
推荐使用的技术。
3什么solr3.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.33.3 Solr的包结构4Solr集成tomcat4.1 第一步,安装tomcat要求jdk:1.7以上版本1.7.0_72要求tomcat7以上版本apache-tomcat-7.0.534.2 第二步:安装Solr.war1、把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 第四步:配置Solrhome4.4.1Solrhome:就是solr服务器所有的配置文件存放的路径。
\solr-4.10.3\example\solr文件夹就是一个标准的solrhome,可以直接使用。
把\solr-4.10.3\example\solr文件夹复制到d:\temp\0122目录下,改名为solrhome,改名不是必须,是为了便于理解。
4.4.2solrcoreSolrhome下的collection1叫做solrcore,是一个solr的实例。
一个solrcore就相当于mysql的一个数据库,实际上就是一个独立的索引库。
3、每个solrcore中有一个conf文件夹,包含了此solrcore的全部配置。
Solrconfig.xml如果使用默认配置可以不用做任何配置。
4.4.3Solrconfig.xmlLib: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/solr5Solr管理界面介绍5.1 Core Admin可以在此查看solrcore的信息。
5.1.1添加solrcore第一步:把solrhome下的collection1复制一份,改名为collection2 第二步:修改core.properties修改name=collection2第三步:重启tomcat5.2 Core selecter选择要管理的solrcore5.3 Analysis查看域的分词效果,域是solr中定义的域。
5.4 Dataimport导入数据功能,把数据库中的数据导入到索引库中。
5.5 Documents维护索引的功能,包括增删改操作。
5.6 Query 查询索引的功能6索引库的维护6.1 域的名称定义schema.xml在solr中域的名称必须先定义后使用。
域的名称定义在collection1\conf\schema.xml中定义。
每个文档对象必须有个id域,相当于mysql表的主键。
6.1.1Field:域的定义Name属性:定义域的名称Type属性:域的类型Indexed属性:是否索引Stored属性:是否存储multiValued属性:是否多值6.1.2dynamicField:动态域只有域的名称和动态域的表达式相匹配,这个域的名称就可以使用。
Name属性:动态域的表达式Type属性:域的类型Indexed属性:是否索引Stored属性:是否存储multiValued属性:是否多值6.1.3uniqueKey定义主键6.1.4copyField复制域当创建索引时,会把源域的内容复制到目标域中。
当搜索时,只需要指定目标域为默认搜索域,这样就可以不用指定多个默认搜索域,会提高查询的效率。
6.1.5fieldType域类型定义定义了域的类型以及此此类型对应的class,在类型定义中还可以指定分析器。
可以定义自己的域类型,指定此域使用中文分析器。
6.2 中文分析器的配置中文分析器使用IKAnalyzer。
第一步:把IKAnalyzer的jar包添加到solr工程中第二步:把IKAnalyzer用到的配置文件以及扩展词典和停用词词典复制到solr工程的classpath下。
注意扩展词典和停用词词典字符集要保证是utf-8格式。
第三步:在schema.xml中配置中文分析器。
<!-- IKAnalyzer--><fieldType name="text_ik" class="solr.TextField"><analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/></fieldType>第四步:定义使用中文分析器的域<!--IKAnalyzer Field--><field name="title_ik" type="text_ik" indexed="true" stored="true" /><field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/> 第五步:重启tomcat6.3 业务字段的定义如果不使用Solr提供的Field可以针对具体的业务需要自定义一套Field,如下是商品信息Field:<!--product--><field name="product_name" type="text_ik" indexed="true" stored="true"/><field name="product_price" type="float" indexed="true" stored="true"/><field name="product_description" type="text_ik" indexed="true" stored="false" /><field name="product_picture" type="string" indexed="false" stored="true" /><field name="product_catalog_name" type="string" indexed="true" stored="true" /><field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/><copyField source="product_name" dest="product_keywords"/><copyField source="product_description" dest="product_keywords"/>6.4 添加文档信息6.5 删除文档6.5.1根据id删除文档<delete><id>0001</id></delete><commit/>6.5.2根据查询删除文档<delete><query>id:0002</query></delete><commit/>6.6 更新文档更新的原理也是先删除后添加,并且没有对应的更新方法,只需要再添加一条和被更新的文档id一致的新文档就可以了。