环境要求
jdk1.6及以上版本
solr发布版本
下载地址
http://lucene.apache.org/solr/mirrors-solr-latest-redir.html?
启动solr
1、解压solr-4.5.0.zip到你想到存放的路径,比如:d:/solr
2、cmd打开命令行窗口,进入d:/solr/example目录
3、执行命令:java -jar start.jar
4、通过第三步以后,系统会启动solr自带的jetty服务器,通过http://localhost:8983/solr/便可访问solr。
此时,solr已成功启动
创建索引
此时solr已安装并启动,但是还没有索引,只有创建好索引,搜索才能有结果
1、cmd进入/solr/example/exampledocs目录
2、执行命令:java -jar post.jar solr.xml monitor.xml,此时你已成功提交了2个solr文档
3、执行完第二步后,我们可以通过浏览器访问:http://localhost:8983/solr/collection1/select?q=solr&wt=xml
如果你想导入更多的文档,执行命令:java -jar post.jar *.xml
更新索引
当你重复执行命令:java -jar post.jar *.xml后,发现搜索的结果没有出现重复的数据,原因:example目录下的schema.xml中指定了列id为uniqueKey(即:唯一),所以当你重复提交数据到索引库时,id相同的数据会替换原来document中的数据。
如果你想要得到重复的数据,你可以通过修改exampledocs目录下*.xml中id值的方式实现
删除索引
1、执行命令:java -Ddata=args -Dcommit=false -jar post.jar “<delete><id>SP2514N</id></delete>”,可以删除id为SP2514N的document
2、执行第一步后,再去搜索发现搜索结果中还有id为SP2514N的数据,难道我们第一步删除不成功吗?其实不是,因为第一步的命令中-Dcommit=false,所以第一步的删除操作没有提交到索引(index)中。
3、在没有打开新的searcher之前,第一步删除数据会一直存在于搜索结果中,所以我们可以强制打开一个新的searcher,执行命令:java -jar post.jar -
查询数据
solr通过http以get的方式进行搜索数据,如:http://localhost:8983/solr/collection1/select?q=solr&wt=xml
q:查询的关键词(此时查询的字段是solrconfig.xml中指定的默认查询字段<str name=”df”>text</str>)
fl:搜索结果返回的字段
sort:排序
wt:搜索结果返回格式
- q=video&fl=name,id (return only name and id fields)
- q=video&fl=name,id,score (return relevancy score as well)
- q=video&fl=*,score (return all stored fields, as well as relevancy score)
- q=video&sort=price desc&fl=name,id,price (add sort specification: sort by price descending)
- q=video&wt=json (return response in JSON format)
排序
sorl提供了通过一个或多个字段进行排序的方法,使用sort参数,参数格式为“字段 排序(asc或desc)”。
score也可以用来排序
复杂的排序
如果没有指定sort参数,默认”score desc”进行排序,把匹配度最高的优先显示
高亮显示
有时候我们想高亮显示匹配的关键词,可以通过参数hl=true,并指定需高亮显示的字段hl.fl=name,features
…&q=video card&fl=name,id&hl=true&hl.fl=name,features
默认会把匹配的关键用“<em>”标签进行包装,如<em>手机</em>
门面搜索
前面“查询数据”一栏返回的是整个文档的数据,门面搜索可以根据我们的需求返回结果,如下:
1、以下例子搜索整个文档并根据字段cat技术匹配数量:
…&q=*:*&facet=true&facet.field=cat
注意:上面的例子虽然结果中只显示10条,但返回的数量是整个文档中匹配查询条件的总的数量。
2、在例子1的基础上可以再加一个字段inStock:
…&q=*:*&facet=true&facet.field=cat&facet.field=inStock
3、solr同样可以为任意查询条件计算数量,以下例子查询关键为ipod、价格在0-99和>100
…&q=ipod&facet=true&facet.query=price:[0 TO 100]&facet.query=price:[100 TO *]
4、以下例子查询字段manufacturedate_dt在2004年到2010年:
搜索界面
solr提供了搜索界面:http://localhost:8983/solr/collection1/browse
文本解析
solr创建索引和进行搜索时都需要对文字进行解析,解析时需要用到分词器,中文的分词器我推荐使用mmseg4j分词器
solr核心的配置文件是schema.xml,索引库结构的定义及对每个字段采用什么分词器等都在这个文件里面进行配置
如:
<field name=”features” type=”text_en_splitting” indexed=”true” stored=”true” multiValued=”true”/>
结论
通过以上的学习,相信你已经对solr有个初步的掌握了。在兴奋之余我相信你肯定想把solr运用到自己的项目中,那么你可以通过以下步骤实现:
1、拷贝example目录到你的项目中,example目录作为进行定制
2、根据你的实际需求修改schema和solr/collection1/conf/目录下的其他文件
本文出自 luoshengsha.com,转载时请注明出处及相应链接。
相关推荐
solr4.5版本里面 有下载的jar包 zip包 文档 和源码 有兴趣的可以 下去 研究下
solr4.5下载、解压、部署说明,tomcat部署说明,IK中文分词部署说明
solr-4.5源码包
文档详细介绍了,布署solr-5.3.1的完整流程,按照此文档可搭建用于生产环境的高可靠性solr集群
solr学习入门经典教程,赶紧学习吧,从solr的搭建讲起,中文分词器的配置
solr搭建教程整合tomcat+zookeeper
如何使用solr搭建服务器
linux下搭建solr 完整教程,包括JDK、TOMCAT、SOLR及索引配置
apache solr 官方文档(英文原版) 包含详细的安装、Schema配置、solrConfig配置、管理页面使用等.
Solr服务器采用java5开发的,是基于Lucene全文搜索的。...要想搭建Solr,首先进行java环境的配置,安装对应的jdk以及tomcat,在此就不多讲。 以下是在jdk1.7和tomcat1.7的环境下搭建最新版本的solr4.10.3。
solr中文教程,solr帮助文档,快速搭建solr
Solr服务器搭建详细步骤。
windows版本的单机solr,下载压缩包以后,解压有使用说明文档,启动tomcat后即可启动sorl了,访问地址http://127.0.0.1:8090/solr
solr入门教程:solr安装发布,数据库索引,定时增量索引等等
使用jdk1.8+Tomcat8.0+solr6.0详细讲述了配置文件 以及如何搭建solr服务端,客户端没有
Solr 5.3.1搜索引擎搭建详细教程(包括集成mysql、添加中文分词、添加同义词、查询语法等)
包含solr的环境搭建及配置文件详解,和solrJ项目
solr3.5开发教程solr3.5开发教程solr3.5开发教程solr3.5开发教程solr3.5开发教程
apache-tomcat-8.5.24+ikanalyzer-solr6.5+solr-7.2.0,目前使用docker进行镜像安装,安装参考:https://www.jianshu.com/p/7c4d9d7dcd94
solr 学习的入门教程,很实用的学习材料。适合初学者实用