【what】

1、定义:

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 使用Solr构建的应用程序非常复杂,可提供高性能。
Solr可以和Hadoop一起使用。由于Hadoop处理大量数据,Solr帮助我们从这么大的源中找到所需的信息。不仅限于搜索,Solr也可以用于存储目的。像其他NoSQL数据库一样,它是一种非关系数据存储和处理技术。
Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据。

2、工作方式:

文档通过Http利用XML 加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

3、使用:

(1)安装 Tomcat,解压缩即可。
(2)解压 solr,官网 http://lucene.apache.org/solr/
(3)把 solr 下的dist目录solr-4.10.3.war(我用的是这个版本)部署到 Tomcat\webapps下(去掉版本号)。
(4)解压缩 war 包,可以启动 Tomcat解压,可以用压缩软件解压
(5)把solr下example/lib/ext 目录下的所有的 jar 包,添加到 solr 的工程中(\WEB-INF\lib目录下)。
(6)创建一个 solrhome 。solr 下的/example/solr 目录就是一个 solrhome。复制此目录到某个盘改名为solrhome
(7)关联 solr 及 solrhome。需要修改 solr 工程的 web.xml 文件。
(8)启动 Tomcat,看到下面这个界面说明solr安装成功啦
http://IP:8080/solr/

4、solr配置文件

solr - 图1

5、查询语法:
(1)q – 查询字符串。
(2) fl – 指定返回那些字段内容,用逗号或空格分隔多个。
(3)start – 返回第一条记录在完整找到结果中的偏移位置,0 开始,一般分页用。
(4) rows – 指定返回结果最多有多少条记录,配合 start 来实现分页。
(5) sort – 排序,格式:sort=+[,+]„ 。示例:
(inStock desc, price asc)表示先 “inStock” 降序, 再 “price” 升序,默认是相关性
降序。
(6) wt – (writer type)指定输出格式,可以有 xml, json, php, phps, 后面 solr 1.3 增加的,
要用通知我们,因为默认没有打开。
(7) fq – (filterquery)过虑查询,作用:在 q 查询符合结果中同时是 fq查询符合的,例如:q=mm&fq=date_time:[20081001 TO 20091031],找关键字 mm,并且 date_time 是

二、Spring Data solr

1、原理:

对官方类库(solrJ:http请求和响应)的封装。
手动请求solr 手动处理响应 HTTPClient

2、小demo

批量数据导入

1、批量导入插件DataImporte(比较简单的)
2、代码实现(需要加逻辑的)

关键字搜索