非常经典的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使用流程

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时间排序用法Solr时间排序用法:Solr是一个开源的全文搜索平台,它提供了强大的排序功能,包括时间排序。
在Solr中,可以使用字段类型和查询参数来实现时间排序。
首先,我们需要在Schema.xml中定义一个适合存储时间的字段类型。
常见的选择是使用"TrieDateField",它可以将日期存储为整数,便于排序和范围查询。
例如:```xml<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"><analyzer><tokenizer class="solr.StandardTokenizerFactory"/></analyzer></fieldType>```接下来,在Schema.xml中定义一个字段来存储时间数据,并将其类型设置为之前定义的日期类型。
例如:```xml<field name="timestamp" type="date" indexed="true" stored="true" multiValued="false"/>```在提交数据时,确保将时间戳数据正确地转换为Solr所期望的格式,然后将其添加到"timestamp"字段中。
要按时间排序查询结果,可以使用Solr的排序参数。
在查询参数中,添加"sort"参数来指定排序的字段和排序顺序。
例如,要按时间降序排序,可以设置"sort=timestamp desc"。
ApacheSolr入门教程(初学者之旅)

ApacheSolr⼊门教程(初学者之旅)Apache Solr⼊门教程(初学者之旅)写在前⾯:本⽂涉及solr⼊门的各⽅⾯,建议边思考边实践,相信能帮助你对solr有个清晰全⾯的了解并能简单实⽤。
在Apache Solr初学者教程的这个例⼦中,我们将讨论有关如何安装最新版本的Apache Solr,并告诉你如何配置它。
此外,我们将告诉你如何进⾏使⽤solr的样本数据⽂件索引。
Apache Solr⽀持不同格式,包括各种数据库,PDF⽂件,XML⽂件,CSV⽂件等等。
在这个例⼦中,我们将研究如何从⼀个CSV⽂件索引数据。
⾸选这个例⼦的环境是Windows。
开始Solr安装之前,确保你已经安装了JDK和正确配置JAVA_HOME。
1.为什么选择Apache SolrApache Solr是⼀个功能强⼤的搜索服务器,它⽀持REST风格API。
Solr是基于Lucene的,Lucene ⽀持强⼤的匹配能⼒,如短语,通配符,连接,分组和更多不同的数据类型。
它使⽤ Apache Zookeeper特别针对⾼流量进⾏优化。
Apache Solr提供各式各样的功能,我们列出了部分最主要的功能。
1. 先进的全⽂搜索功能。
2. XML,JSON和HTTP - 基于开放接⼝标准。
3. ⾼度可扩展和容错。
4. 同时⽀持模式和⽆模式配置。
5. 分页搜索和过滤。
6. ⽀持像英语,德语,中国,⽇本,法国和许多主要语⾔7. 丰富的⽂档分析。
2.安装Apache Solr要⾸先让从以下位置下载最新版本的Apache Solr:在撰写本⽂时,可⽤的稳定版本是5.0.0。
Apache Solr经历了从4.XX到5.0.0各种变化了,所以如果你有不同版本的Solr,你需要下载5.xx版本并以此为模板。
⼀旦Solr的zip⽂件下载将它解压缩到⼀个⽂件夹。
提取的⽂件夹看起来像下⾯。
Solr的⽂件夹bin⽂件夹中包含⽤来启动和停⽌服务器的脚本。
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全文检索技术1.Solr介绍 152.Solr安装配置-SolrCore配置 153.Solr安装配置-Solr工程部署 104.Solr安装配置-Solr工程测试 155.Solr安装配置-多SorlCore配置 106.Solr入门--schema 207.Solr入门-安装中文分词器 158.Solr入门-自定义业务系统Field 209.Solr入门-SolrJ介绍1010.Solr入门-SolrJ索引维护 2011.Solr入门-数据导入处理器2012.Solr入门-搜索语法 1013.Solr入门-SolrJ-搜索 2014.Solr案例-需求分析 1015.Solr案例-架构设计 1516.Solr案例-Service 2017.Solr案例-Controller 2018.Solr案例-主体调试 2019.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的配置和运行情况。
1.2S olr与Lucene的区别Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。
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的路径
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非常经典的solr教程,照着上面做完全能成功!duogemajiaSolr 3.5 入门配置应用机器上已安装: Tomcat 6.0 jdk1.7 mysql 5.01 访问/dyn/closer.cgi/lucene/solr , 在这个网址里选择一个路径, 下载solr 3.5 的版本2 solr3.5 在本机解压缩以后, 把apache-solr-3.5.0\example\webapps 目录下的solr.war 文件拷贝到Tomcat 6.0 的webapps 目录下3 在Tomcat 6.0\webapps\solr 目录里新建一个文件夹conf4 把solr3.5 本机解压缩文件夹apache-solr-3.5.0\example 下的multicore 文件夹考本到Tomcat 6.0\webapps\solr\conf 目录下5 在Tomcat 6.0\conf\Catalina\localhost 目录下新建一个solr.xml 文件, 里面的内容如下<?xml version="1.0" encoding="UTF-8"?><Context docBase="${catalina.home}/webapps/solr.war" debug="0"crossContext="true" ><!-- 这里配置的是Solr 运行的Home 目录--><Environment name="solr/home" type="ng.String"value="${catalina.home}/webapps/solr/conf/multicore" override="true" /></Context>6 访问你的solr 项目localhost:8080/solr 会显示出两个core , solr 正常运行7 配置分词, 使用的是mmseg4j 和搜狗词库,下载地址:/p/mmseg4j/ , /p/mmseg4j/downloads/ detail?name=data.zip&can=2&q8 把本地下载的mmseg4j 解压缩, 把里面的mmseg4j-all-1.8.5.jar 文件拷贝到Tomcat 6.0\webapps\solr\WEB-INF\lib 目录下9 在Tomcat 6.0\webapps\solr 目录下新建一个dic 文件夹, 把新下载的词库拷贝到dic 目录下10 在\Tomcat 6.0\webapps\solr\conf\multicore\core0\conf\schema.xml 文件的types 节点里添加如下节点:<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100"> <analyzer><tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory"mode="complex" dicPath="E:/Program Files/Apache Software Foundation/Tomcat6.0/webapps/solr/dic"></tokenizer></analyzer></fieldtype><fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100"> <analyzer><tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory"mode="maxword" dicPath="E:/Program Files/Apache Software Foundation/Tomcat6.0/webapps/solr/dic"></tokenizer></analyzer></fieldtype><fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100"> <analyzer><tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory"mode="simple" dicPath="E:/Program Files/Apache Software Foundation/Tomcat6.0/webapps/solr/dic"></tokenizer></analyzer></fieldtype>11 在\Tomcat 6.0\webapps\solr\conf\multicore\core0\conf\schema.xml 文件的fields 节点里添加如下节点:<field name="simple" type="textSimple" indexed="true" stored="true"multiValued="true" /><field name="complex" type="textComplex" indexed="true" stored="true" multiValued="true" /><field name="text" type="textMaxWord" indexed="true" stored="true"multiValued="true" />12 因为solr3.5 里有两个core , 所以针对core1 重复10,11 两步13 对分词进行测试, 访问http://localhost:8180/solr/core0/admin/analysis.jsp?highlight=on13.1 Field[Name] 输入: complex13.2 Field Value(index) 输入: 中国银行第一分行, Field Value(index) 下面的verbose outpu 点选13.3 点击Analyze 按钮, 查看分词结果: 中国银行| 第一| 分行14 此时Solr3.5 已经可以进行分词, 接下来配置solr 3.5 连接mysql 数据库, 生成索引, 进行分词14.1 下载java 的mysql 驱动, 本机解压mysql-connector-java-5.1.18-bin.jar, 然后拷贝到Tomcat 6.0\webapps\solr\WEB-INF\lib 目录下14.2 在\Tomcat 6.0\webapps\solr 目录下新建db 文件夹14.3 在\Tomcat 6.0\webapps\solr\db 文件夹下面新建一个db-data-config.xml 文件, 内容如下:<dataConfig><dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/test" user="root" password="123" /><document name="messages"><entity name="message" transformer="ClobTransformer" query="select * fromtest1"><field column="ID" name="id" /><field column="Val" name="text" /></entity></document></dataConfig>url="jdbc:mysql://localhost:3306/test" user="root" password="123" 这里配置了mysql 的连接路径, 用户名, 密码<field column="ID" name="id" /><field column="Val" name="text" /> 这里配置的是数据库里要索引的字段, 注意name 是11 步配置的14.4 在Tomcat 6.0\webapps\solr\conf\multicore\core0\conf 目录下的solrconfig.xml 文件里, 添加如下代码:<requestHandler name="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"><str name="config">E:/Program Files/Apache Software Foundation/Tomcat6.0/webapps/solr/db/db-data-config.xml</str></lst></requestHandler>“E:/Program Files/Apache Software Foundation/Tomcat6.0/webapps/solr/db/db-data-config.xml” 是14.3 配置文件的绝对路径14.5 在Tomcat 6.0\webapps\solr\conf\multicore\core1\conf\solrconfig.xml 路径里重复14.414.6 把本地下载解压的solr3.5 文件里, dist 目录下的apache-solr-dataimporthandler-3.5.0.jar 和apache-solr-dataimporthandler-extras-3.5.0.jar Tomcat6.0\webapps\solr\WEB-INF\lib 目录下14.7 solr3.5 连接mysql 已经配置完成, 测试读取mysql 生成索引, 访问: http://localhost:8180/solr/core0/dataimport?command=full-import14.8 测试分词查询, 访问http://localhost:8180/solr/core0/admin/ 查询数据库里索引列里有的词注意, 这仅仅是配置solr3.5 连接mysql 生成索引, 可以执行正常词语的查询, 但是不能执行对搜索短语的分词查询multicore 目录下面多个core 文件夹, 每一个都是一个接口, 有独立的配置文件, 处理某一类数据。