solr简介
Solr 是什么?
Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。
Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。
它易于安装和配置,而且附带了一个基于HTTP 的管理界面。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。
在eclipse中调试solr,便于我们更加的清晰的了解solr的运行原理,下面详细的写一下如何eclipse部署solr(4.10.0版本)的web工程。
首先新建一个动态的Web工程 删除WebContent下的所有内容,


解压solr.war包后,然后拷贝解压后所有的东西(除了solr.war本身),到刚才被清空的WebContent目录下:
拷贝完后的项目工程如下所以,有时候这里可能由于js校验出错,不影响运行,可忽略,如果有洁癖的同学们,可以找下,如何去掉js的校验即可。
在WebContent下新建一个solr_home文件夹,用来存放核心(索引库)

将解压后的 solr 4.10.0文件夹下的exampke下的mukticore内的所有文件 拷贝到solr_home文件夹中:

修改web.xml中 <env-entry>的路径,指向咱们新建的 solr_home ,这里我用的是绝对路径


成功后的截图如下:

至此,大功告成!

引擎的一些操作:






- 三种方式:
- 1、通过命令行(路径+核心名+jar+xml)
- 首先将solr-4.10.0\example\exampledocs下的post.jar文件 放到咱们索引库里的exampledocs文件夹下
- 选定指定的xml数据文件进行导入数据到索引库,*号代表 所有xml数据文件
- 命令如下:
- java -Durl=http://localhost:8080/solr-test/my_core/update -Ddata=files -jar post.jar *.xml
添加数据成功!


- 导入JAR包:
- 新建data-confg.xml,到conf文件夹下
- <dataConfig><!-- 数据源 --><dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/pengj" user="root"password="root" transactionIsolation="TRANSACTION_READ_COMMITTED" holdability="CLOSE_CURSORS_AT_COMMIT" /><document><!-- pk注意一定要与field中的colum对应上 --><entity name="stu" pk='id' transformer="RegexTransformer"query="select * from t_stu where id > ${dataimporter.request.ffff};"><field column='id' name='id' /><field column='name' name='name' /></entity></document></dataConfig>
- 一个配置文件可以配置多个数据源。增加一个dataSource元素就可以增加一个数据源了。
- 添加name属性可以区分不同的数据源,如:
name="ds-1" ; entity标签中指定对应数据源。 如:
dataSource="ds-1"。
- solrconfig.xml文件中 加载data-confg.xml
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"><str name="config">data-config.xml</str></lst></requestHandler>
打开solr试图管理界面:

例子:
4、通过solrj 进行增加索引数据(会有单独api文件 给你们)

【注:以下是比较常用的参数说明】
q - 查询字符串,这个是必须的。如果查询所有*:* ,根据指定字段查询(Name:张三 AND Address:北京)
fq - (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,例如:q=Name:张三&fq=CreateDate:[20081001 TO 20091031],找关键字mm,并且CreateDate是20081001
fl - 指定返回那些字段内容,用逗号或空格分隔多个。
start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。
rows - 指定返回结果最多有多少条记录,配合start来实现分页。
sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc|asc>]… 。示例:(score desc, price asc)表示先 “score” 降序, 再 “price” 升序,默认是相关性降序。
wt - (writer type)指定输出格式,可以有 xml, json, php, phps。
fl表示索引显示那些field( *表示所有field,如果想查询指定字段用逗号或空格隔开(如:Name,SKU,ShortDescription或Name SKU ShortDescription【注:字段是严格区分大小写的】))
q.op 表示q 中 查询语句的 各条件的逻辑操作 AND(与) OR(或)
hl 是否高亮 ,如hl=true
hl.fl 高亮field ,hl.fl=Name,SKU
hl.snippets :默认是1,这里设置为3个片段
hl.simple.pre 高亮前面的格式
hl.simple.post 高亮后面的格式
facet 是否启动统计
facet.field 统计field


分词器简介与配置
Solr默认是没有中文分词的,其中solr默认的比较常用的数据类型有下面几种:string、long、int。
IK分词器,是国人做的一个开源的分词器,所以主要说下IK分词器的配置。
下载 "IK Analyzer 2012FF_hf1.zip"包。 详见http://www.solrcn.com/?tag=ik%E5%88%86%E8%AF%8D%E5%99%A8
解压后的目录结构:
其中已经有比较详细的文档了,但是文档中并没有对solr分词器的配置有详细的说明。
所以请1511班同学们 继续往下看:

具体配置:
步骤一:将 IKAnalyzer2012FF_u1.jar拷贝到目录"$TOMCAT_HOME \webapps\solr\WEB-INF\lib"中
步骤二:将IKAnalyzer.cfg.xml、stopword.dic,myext.dic拷贝到目录$TOMCAT_HOME \webapps\solr\WEB-INF\classes目录下,没有则新建classes目录。
步骤三:在每个核心中的schema.xml中配置IK分词器:
这样就可以使用ik分词器了。
其中isMaxWordLength是指分词的细粒度,可以分别制定index索引和query查询的分词细粒度,
建议将index的isMaxWordLength设置为false,这样就采用最细分词,是索引更精确,查询时尽量能匹配,
而将query的isMaxWordLength设置为true,采用最大分词,这样能够使查询出来的结果更符合用户的需求。
这样查询时分词才能成功,比如搜索中华人民共和国,如果不配置的话,默认是短语匹配,就只搜索文档中包含中华人民共和国的结果,但是如果配置了查询分词,那么中华、人民….都能被匹配。
注意: solr4.8以上,需要把各核心schema.xml中的<schema name="example core zero" version="1.1">版本由1.1改为1.5
IK分词器使用与测试
之后在schema.xml中配置一个field(字段)用于测试,如下:(分词字段)
- <field name="name" type="text_ik" indexed="true" stored="true"/>
然后打开solr的admin页面:
可以看到分词之后的效果。
维护索引
在一般系统中维护的都是增删改,在Solr中的维护功能是增删和优化功能,
在Solr中的修改操作就是先删掉再添加.在做索引维护之前,
首先要做的是配置 schema.xml主要是按上面章节中的说明
设置好字段信息(名称,类型,索引,存储,分词等信息),
大概就像在数据库中新建一个表一样.设置好 schema.xml就可以进行索引相关操作了.
优化索引
优化Lucene 的索引文件以改进搜索性能。索引完成后执行一下优化通常比较好。
如果更新比较频繁,则应该在使用率较低的时候安排优化。
一个索引无需优化也可以正常地运行。优化是一个耗时较多的过程。
server.optimize();//不要频繁的调用..尽量在无人使用时调用 |
solr简介的更多相关文章
- Nutch搜索引擎(第2期)_ Solr简介及安装
1.Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化 ...
- Nutch搜索引擎Solr简介及安装
Nutch搜索引擎(第2期)_ Solr简介及安装 1.Solr简介 Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的 ...
- solr简介与安装
solr简介: Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索引 ...
- (一)Solr——简介和安装配置
1. solr简介 1.1 Solr是什么 Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器. Solr和lucene的版本是同步更新的,最新的版本是7. ...
- solr简介、学习详细过程!(超详细~)
solr是什么呢? 一.Solr它是一种开放源码的.基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中. 二.Solr 提供了层面搜索(就是统计).命中醒目显示并且支持多种输出 ...
- solr简介——(九)
下载: http://archive.apache.org/dist/lucene/solr/ 1.什么是solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lu ...
- solr 学习之简介及安装
一.solr简介 Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展,并对索 ...
- solr 安装
1:solr简介 solr是一个开源的搜索引擎,是对lucene做了封装,对外提供类似于webservice接口, 可以使用http请求的方式对solr进行操作. lucene.solr.elasti ...
- Solr使用入门指南
本文转自http://chuanliang2007.spaces.live.com/blog/cns!E5B7AB2851A4C9D2!499.entry?wa=wsignin1.0 由于搜索引擎功能 ...
随机推荐
- Python常用目录操作(Python2)
Python获取当前路径 Python查看指定路径下的文件和文件夹 Python修改当前工作目录(在读取文件等时需要) Python添加import路径(有时候为了import自己写的py文件,且 ...
- numa 和 mysql
cpu numa结构反应的内存访问速度问题: 在多核cpu的时代引入了cpu的numa(非一致内存访问结构): NUMA引入了node的概念,每个物理CPU都被视作一个node,而每个node都有一个 ...
- healthcheck
-- ============================================================================= -- USAGE : sqlplus ...
- rpm卸载包遭遇 specifies multiple packages 错误
使用 rpm删除软件时报错如下: [root@hostxxlidan]# rpm -qa |grep -i mysqlmysql-devel-5.0.95-5.el5_9mysql-devel-5.0 ...
- Mac配置PHP环境
本文章来自:http://blog.csdn.net/wj_november/article/details/51417491 本人使用的是:MacOs 10.12.3,根据如上操作已经安装成功,感谢 ...
- c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml> <c3p0-confi ...
- ArchLinux dwm的安装和配置
dwm官网:https://dwm.suckless.org/ dwm是一个简洁的平铺式窗口管理器 配置简单,使用便捷,没有多少依赖,占用内存非常小 总之dwm正合口味 安装方法 首先在官网下载dwm ...
- CF 986A Fair(多源BFS)
题目描述 一些公司将在Byteland举办商品交易会(or博览会?).在Byteland有 nnn 个城市,城市间有 mmm 条双向道路.当然,城镇之间两两连通. Byteland生产的货物有 kkk ...
- 雅礼集训1-9day爆零记
雅礼集训1-9day爆零记 先膜一下虐爆我的JEFF巨佬 Day0 我也不知道我要去干嘛,就不想搞文化科 (文化太辣鸡了.jpg) 听李总说可以去看(羡慕)各路大佬谈笑风声,我就报一个名吧,没想到还真 ...
- ECNUOJ 2575 Separate Connections
Separate Connections Time Limit:5000MS Memory Limit:65536KBTotal Submit:421 Accepted:41 Description ...