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 由于搜索引擎功能 ...
随机推荐
- 1893. [国家集训队2011]等差子序列(bitset)
★★ 输入文件:nt2011_sequence.in 输出文件:nt2011_sequence.out 简单对比时间限制:0.3 s 内存限制:512 MB [试题来源] 2011中国 ...
- 为一个支持GPRS的硬件设备搭建一台高并发服务器用什么开发比较容易?
高并发服务器开发,硬件socket发送数据至服务器,服务器对数据进行判断,需要实现心跳以保持长连接. 同时还要接收另外一台服务器的消支付成功消息,接收到消息后控制硬件执行操作. 查了一些资料,java ...
- PostgreSQL Replication之第六章 监控您的设置(1)
在本书的前几章,您已经学习了各种复制以及如何配额制各种类型的场景.现在是时候通过增加监控来让您的设置更加可靠了. 在本章中,您将学习监控什么以及如恶化实施合理的监控车辆.您将学习: • 检查您的 XL ...
- gym 100971 J Robots at Warehouse
Vitaly works at the warehouse. The warehouse can be represented as a grid of n × m cells, each of wh ...
- 海量的超赞 Linux 软件 (转载)
海量的超赞 Linux 软件 作者: VoLuong 译者: LCTT Mo | 2016-08-24 16:01 评论: 27 收藏: 38 这个仓库收集了对任何用户/开发者都超赞的 Linux ...
- DAG-背包九解-01背包
饭卡: 电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够 ...
- [JSOI2007]建筑抢修 优先队列 贪心
Code: #include<cstdio> #include<algorithm> #include<cstring> #include<queue> ...
- Myeclipse学习总结(4)——Eclipse常用开发插件
(1) AmaterasUML 介绍:Eclipse的UML插件,支持UML活动图,class图,sequence图,usecase图等:支持与Java class/interf ...
- POJ——T 2449 Remmarguts' Date
http://poj.org/problem?id=2449 Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 30754 ...
- c#+ArcGIS Engine-获取矢量图层的空间参考
转自原文c#+ArcGIS Engine-获取矢量图层的空间参考 介绍一种简单的获取矢量图层空间参考的方法: 首先打开Shp文件获得FeatureClass,代码如下: string pPath=&q ...