`
coconut_zhang
  • 浏览: 541714 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Solr5.0说明文档

 
阅读更多

一、solr介绍

Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,而且附带了一个基于HTTP 的管理界面。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。

二、Solr的特性包括

1.高级的全文搜索功能

2.专为高通量的网络流量进行的优化

3.基于开放接口(XML和HTTP)的标准

4.综合的HTML管理界面

5.可伸缩性-能够有效地复制到另外一个Solr搜索服务器

6.使用XML配置达到灵活性和适配性

7.可扩展的插件体系

8.支持增量式更新

三、tomcat7下部署solr

1.solr5.0下载地址

http://apache.fayea.com/lucene/solr/5.0.0/solr-5.0.0.tgz

2. 部署Solr

solr-5.0.0.tgz解压缩,然后将solr5.0.0/server/webapps目录下的solr.war拷贝到自己apache-tomcat-7.0.32/webapps/,启动tomcat解压solr.war

(1)配置solr_home

a:修改apache-tomcat-7.0.32/webapps/solr/WEB-INF/web.xml,取消注释,配置“env-entry-value”的值为

<env-entry>       <env-entry-name>solr/home</env-entry-name>       <env-entry-value>

D:/software/solr-5.0.0/example/example-DIH/solr

</env-entry-value>       <env-entry-type>java.lang.String</env-entry-type> </env-entry>

 注:也可以自己新建一个solr目录,然后拷贝example/example-DIH/solr所有内容到新建的solr目录

b:拷贝dist下的jar包到WEB-INF/lib下

(2)配置日志

将solr目录下solr-5.0.0/server/lib/ext中的jar包copy到tomcat的solr/WEB-INF/lib下。这时候虽然添加jar包,但是没有对应的日志配置,需要将solr-5.0.0/server/resources/下的log4j.properties也放到solr/WEB-INF/classes/下。(这步非常关键,solr5.0.0的war包中不包含任何日志的jar包,需要自己手动添加)

3.启动solr

(1) 重新关闭在开启tomcat

(2)浏览器打开 http://localhost:8080/solr  验证是否安装成功

四、创建搜索实例

1.{solr安装路径}/server/solr/新建一个文件夹命名为test

2.拷贝{solr安装路径}/server/solr/configsets/sample_techproducts_configs下的文件到test目录下

3.在后台采用如下配置,然后点击【add core】按钮完成搜索实例的添加

 

添加完以后就能看见test实例

 

 

4.solr5.0下自带db、mail、rss、solr、tika实例

五、Solr导入数据

1.可以使用DIH(DataImportHandler)从数据库导入数据

(1) 导入相关jar包

 在{solr安装路径}/server/solr/test/conf/solrconfig.xml加入如下代码

<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

(2)配置handler

 在{solr安装路径}/server/solr/test/conf/solrconfig.xml加入如下代码

<requestHandler name="/dataimport" class="solr.DataImportHandler">

    <lst name="defaults">

      <str name="config">db-data-config.xml</str>

    </lst>

  </requestHandler>

(3)配置数据源,源数据与索引的隐射关系

 在{solr安装路径}/server/solr/test/conf/下新建db-data-config.xml,配置如下:

<dataConfig>    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/test" user="root" password="root"/>    <document name="jc_content_txt">

        <entity name="JcContetTxt" pk="id"

                query="select * from jc_content_txt limit ${dataimporter.request.length} offset ${dataimporter.request.offset}"

                transformer="RegexTransformer">

            <field column="content_id" name="id" />

            <field column="txt" name="txt" />         

        </entity>

    </document></dataConfig>

 

注:field 对应的name值必须在config目录下的schema.xml文件中存在。如上述的txt不存在,则在schema.xml中添加 

<field name="txt" type="text_general" indexed="true" stored="true"/>

indexed表示需不需要建立索引,以便之后对这个field进行查询; 

stored表示需不需要随索引同时存储这个field本身的内容,以便查询时直接从结果中获取该内容,一般大数据(比如文件内容本身)不会和索引一起保存,节省资源,防止索引过大。 索引本身和被索引的内容要分清,不理解的话,倒排索引:http://zh.wikipedia.org/wiki/倒排索引

(4)Reload test搜索实例,利用图形界面执行dataimport

 

 

 

2.支持CSV文件导入,因此Excel数据也能轻松导入

3.支持JSON格式文档

4.二进制文档比如:Word、PDF

5.还能以编程的方式来自定义导入

见:http://svn.amssy.com/svn/okdi/trunk/server/java/api/solr

六、Solr查询数据

1. 常用查询参数说明 

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 表示中 查询语句的 各条件的逻辑操作 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官方的技术文档】 

2. Solr运算符

(1)“:” 指定字段查指定值,如返回所有值*:*

(2)“?” 表示单个任意字符的通配

(3)“*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号)

(4)“~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。

(5)邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10

(6)“^” 控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增量值,即jakarta^4 apache

(7)布尔操作符AND、||

(8)布尔操作符OR、&&

(9)布尔操作符NOT、!、- (排除操作符不能单独与项使用构成查询)
(10)“+” 存在操作符,要求符号”+”后的项必须在文档相应的域中存在
(11) ( ) 用于构成子查询
(12) [] 包含范围检索,如检索某时间段记录,包含头尾,date:[200707 TO 200710]
(13) {} 不包含范围检索,如检索某时间段记录,不包含头尾
date:{200707 TO 200710}
(14)/ 转义操作符,特殊字符包括+ - && || ! ( ) { } [ ] ^ ” ~ * ? : /

 注:①“+”和”-“表示对单个查询单元的修饰,and 、or 、 not 是对两个查询单元是否做交集或者做差集还是取反的操作的符号

   比如:AB:china +AB:america ,表示的是AB:china忽略不计可有可无,必须满足第二个条件才是对的,而不是你所认为的必须满足这两个搜索条件

   如果输入:AB:china AND AB:america ,解析出来的结果是两个条件同时满足,即+AB:china AND +AB:america或+AB:china +AB:america

  总而言之,查询语法:  修饰符 字段名:查询关键词 AND/OR/NOT 修饰符 字段名:查询关键词

3.Solr查询语法

(1)最普通的查询,比如查询姓张的人( Name:张),如果是精准性搜索相当于SQL SERVER中的LIKE搜索这需要带引号(""),比如查询含有北京的(Address:"北京")

(2)多条件查询,注:如果是针对单个字段进行搜索的可以用(Name:搜索条件加运算符(OR、AND、NOT) Name:搜索条件),比如模糊查询( Name:张 OR Name:李 )单个字段多条件搜索不建议这样写,一般建议是在单个字段里进行条件筛选,如( Name:张 OR 李),多个字段查询(Name:张 + Address:北京 )

(3)排序,比如根据姓名升序(Name asc),降序(Name desc)

七、solr参考文档地址

1.较全的说明

http://blog.csdn.net/awj3584/article/details/16963525

 

2.图形界面说明

http://www.devnote.cn/article/38.html

分享到:
评论

相关推荐

    IK分词solr5.0.0

    在Solr 5.0.0中使用IK分词器,可以显著提高中文文本的检索效果,通过智能分词和新词识别,使得用户输入的关键词能够更准确地匹配到文档中的内容。同时,通过调整分词器的配置,还能进一步优化搜索体验,满足不同的...

    详解java整合solr5.0之solrj的使用

    Java整合Solr5.0的过程中,SolrJ是Java客户端库,用于与Solr服务器进行交互,提供了方便的API来执行各种操作。本篇文章将详细阐述如何使用SolrJ进行索引管理和查询。 首先,集成SolrJ需要将相应的依赖库引入项目。...

    IKAnalyzer-5.0.jar及solr-analyzer-extra-5.3.jar

    在Solr 5.3版本中,IKAnalyzer与solr-analyzer-extra-5.3.jar结合使用,可以为中文文档提供强大的分词支持。Solr是一个基于Lucene的全文检索服务器,它允许开发者通过简单的HTTP接口来创建、维护和搜索索引。中文...

    solr-4.10.3.zip

    描述中提到,从4.0到5.0是Solr的一个重大版本更新,这涉及到许多内部结构和功能的调整。在这个过程中,Solr引入了新的特性和改进,同时可能对旧的API和配置文件格式进行了调整,以提高性能和用户体验。4.10.3作为4.x...

    solr-4.10.3

    Solr-4.10.3是该系统的一个稳定版本,受到许多用户的青睐,特别是在4.0到5.0的大版本更新之后。 在4.0到5.0的升级过程中,Solr引入了大量的新特性和改进,这些变化主要体现在以下几个方面: 1. **Cloud功能增强**...

    solr-solrj 5.0.0 demo

    Apache Solr是一款流行的开源全文搜索引擎,提供高效的全文检索、文档分类、拼写建议等功能。Solr-Solrj是专门为Java开发者设计的,它简化了与Solr服务器通信的过程,允许开发者通过Java API轻松地发送HTTP请求,...

    solr ik中文分词

    分词器在Solr中的主要作用是将用户输入的中文查询字符串分解成词语,然后Solr会根据这些词语来匹配索引中的文档,从而返回相关的搜索结果。IK Analyzer支持多种分词模式,如精确模式、全模式、最短路径模式等,可以...

    IKAnalyzer-5.0及其资料

    9. **文档资源**:IKAnalyzer-5.0提供的资料可能包含了用户手册、API文档、示例代码等,帮助开发者快速理解和应用该工具。 10. **社区支持**:作为一个开源项目,IKAnalyzer拥有活跃的社区,用户可以在遇到问题时...

    ElasticSearch企业级架构高阶视频教程.zip

    课时02:es与solr对比介绍 课时03:centos的安装虚拟机网络配置 课时04:elasticsearch5.0集群安装 课时05:elasticsearch head插件讲解 课时06:elasticsearch kibana安装与使用 课时07:ik分词器插件的编译安装 ...

    nutch2.3.1安装文档教程

    &lt;value&gt;Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident) &lt;name&gt;http.agent.version&lt;/name&gt; &lt;value&gt;6.0 &lt;name&gt;http.robots.agents&lt;/name&gt; &lt;value&gt;GuoRuiAgent,* &lt;name&gt;...

    浅入深出ElasticSearch构建高性能搜索架构.docx

    1. **课时2:es与solr对比介绍**:通过对ElasticSearch和Solr的功能特性和适用场景进行对比分析,加深对这两种搜索引擎的理解。 2. **课时4:elasticsearch5.0集群安装**:详细介绍如何安装配置ElasticSearch集群,...

    Lucene5学习之Facet(续)

    Lucene,作为最广泛使用的全文搜索引擎库,自5.0版本起,引入了Facet模块,极大地增强了其在数据分析和信息检索方面的功能。在Lucene5中,Facet系统是基于前缀编码(Prefix Encoding)实现的,这使得在大规模数据集...

Global site tag (gtag.js) - Google Analytics