1 Solr
简介
1.1 Solr
是什么
Solr
是一个基于
全文检索
的企业级应用
服务器
。
全文检索:可以输入一段文字,通过分词检索数据
应用服务器:它是单独的服务。
1.2 Solr
能做什么
它就是用于做全文搜索。
1.3
为什么需要
Solr
Lucene
和
solr区别?
Lucene
是一个工具包,
不能单独运行
,需要导入到
java
代码中。
Solr
可以
独立运行
在
tomcat
容器中,通过
http
协议,以接口的方式对外提
供服务,
java
代码只需要
专注于业务的处理
就可以。
2.配置步骤说明
(
1
)配置
Solr
服务器。
Solr
可以
独立运行
,需要
servlet 容器加载它。
(
2
)配置
SolrHome
。(
Solr
服务的主目录,磁盘)
(
3
)在
Solr
服务器中加载
SolrHome
。
(
4
)
java
程序访问
Solr
服务器,实现全文搜索。
第一步:创建项目,导入 jar 包
--导包说明:
SolrJ 核心包 /solr-4.10.3/dist/solr-solrj-4.10.3.jar
SolrJ 依赖包 /solr-4.10.3/dist/solrj-lib
下的所有包
日志依赖包 /solr-4.10.3/example/lib/ext 目录下的所有
jar
包
JDBC 驱动包 mysql-connector-java-5.1.10-bin.jar
--
拷贝
log4j.properties
到
src
目录下。(或者创建一个
Source Folder
)
第二步:创建索引
--步骤说明。(复习回顾)(和lucence配置步骤基本一样,参考上篇)
(1)采集数据。
(2)将数据转换成 Solr 文档。Solrdocument 存储数据
(3)连接 solr 服务器,将文档写入索引库。
第三步:搜索索引
HttpSolrServer
server
=
new
HttpSolrServer(
"http://localhost:8080/solr/你设置的实例名字"
);
// 创建SolrQuery
对象
SolrQuery
query
=
new
SolrQuery();
// 设置查询条件,
参考主界面
query
.set(
"q"
,
"*:*"
);
/ / 调用server的查询方法,查询索引库
QueryResponse
response
=
server
.query(
query
);
// 查询结果
SolrDocumentList
results
=
response
.getResults();
3.solr 管理控制台
查询界面说明
(
1
)
q -
查询关键字,必须,如果查询所有文档时,使用
*:*
。
(
2
)
fq -
(
filter query
)过虑查询,可以有多个。如:价格
10
到
50
的记录。
(
3
)
sort -
排序,格式:
sort=+
。如:按价格升序
(
4
)
start -
分页显示使用,开始记录下标,从
0
开始
(
5
)
rows -
指定返回结果最多有多少条记录,配合
start
来实现分页。
(
6
)
fl -
指定返回那些字段内容,用逗号或空格分隔多个。
(
7
)
df-
指定一个默认搜索的
Field
(
8
)
wt - (writer type)
指定输出格式,默认
json
格式。