一、Solr介绍
最近在一个项目中做了一个全文检索的功能,刚开始本来打算用Apache Lucene去实现,毕竟之前对Lucene有一点了解,但是在网上看技术类文章时看见了别人介绍Apache Solr,感觉挺好的,
还是一个开源的搜索服务器,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的,高亮显示搜索结果,有自带的中文分词技术。
二、Solr配置
第一步:下载Solr, http://www.apache.org/dyn/closer.cgi/lucene/solr
解压到我下载的是3.6.1版本,把它解压到E盘。E:/apache-solr-3.6.1
第二步:修改conf\server.xml,把8080端口所在的那一行修改如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
增加了URIEncoding="UTF-8"这一配置。
第三步:配置solr
在tomcat的conf目录下,增加 Catalina\localhost\solr.xml 文件,如果conf文件夹下没有Catalina,新建它。
solr.xml内容:
<Context docBase="E:/apache-solr-3.6.1/dist/apache-solr-3.6.1.war" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="E:/apache-solr-3.6.1/example/solr" override="true" /></Context>
第四步:启动Tomcat。输入http://localhost:8080/solr/ 出现欢迎界面,表示成功。
三、solr使用
在调用Solr服务时使用了apache-solr-solrj-3.6.1.jar,Apache 已经为我们提供了 Solrj 这个工具,我们只需要简单的导入相关包,使用其简单的 API 就可以轻松对 solr 进行操作了
建立与Solr服务的连接
String url = "http://10.13.17.38:8983/solr";
CommonsHttpSolrServer server = new CommonsHttpSolrServer(url);
server.setSoTimeout(3000); // socket read timeout
server.setConnectionTimeout(1000);
server.setDefaultMaxConnectionsPerHost(1000);
server.setMaxTotalConnections(10);
server.setFollowRedirects(false); // defaults to false
server.setAllowCompression(true);
server.setMaxRetries(1);
搜索条件的设置
SolrQuery query = new SolrQuery();
query.setQuery("tags:t5 AND t7");
query.addField("auction_id");
query.setStart(0);
query.setRows(4);
query.addSortField("auction_id", SolrQuery.ORDER.desc);
query.addSortField("auction_point", SolrQuery.ORDER.asc);
// 设置高亮
query.setHighlight(true); // 开启高亮组件
query.addHighlightField("content");// 高亮字段
query.addHighlightField("titleStr");// 高亮字段
query.setHighlightSimplePre("<font color='red'>");// 标记,高亮关键字前缀
query.setHighlightSimplePost("</font>");// 后缀
query.setHighlightSnippets(3);// 结果分片数,默认为1
query.setHighlightFragsize(70);// 每个分片的最大长度,默认为100
加入中文分词
修改solr\conf\schema.xml文件,在文件中加入如下字段类型,
<fieldType name="text_zh" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer
class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart="false" />
</analyzer>
<analyzer type="query">
<tokenizer
class="org.wltea.analyzer.solr.IKTokenizerFactory" useSmart="false" />
</analyzer>
</fieldType>
然后再你需要分词的字段使用此类型
<field name="content" type="text_zh" indexed="true" stored="true" />
相关推荐
Apache Solr 4 Cookbook Apache Solr 4 Cookbook Apache Solr 4 Cookbook Apache Solr 4 Cookbook Apache Solr 4 Cookbook
Spring Data for Apache Solr API。 Spring Data for Apache Solr 开发文档
Apache Solr for Indexing Data
apache solr搜索系统的.Net实现
Apache Solr Essentials is a fast-paced guide to help you quickly learn the process of creating a scalable, efficient, and powerful search application. The book starts off by explaining the ...
Apache Solr Search
apache solr 官方文档(英文原版) 包含详细的安装、Schema配置、solrConfig配置、管理页面使用等.
apache solr 源文件 版本为3.6.1 让你能够更好地了解solr实现,更好的使用solr
《apachesolr7官方指南》
Apache Solr 3 Enterprise Search Server 部分中文翻译 从博客上面保存下来的。是网页版,方便大家查看
Apache Solr(solr-8.11.1.tgz)Binary releases 二进制版本
Apache Solr 1.3.0发布,Apache Solr是一个性能强大的,基于 Lucene 的全文搜索的 开源企业级搜索服务器,拥有XML/HTTP,JSON APIs,hit highlighting, faceted search, caching, replication,web管理界面等很多功能...
apache solr guide 4.7
Apache Solr(solr-8.11.1.zip)Binary releases 二进制版本
Apache Solr is one of the most popular open source search servers available on the web. However, simply setting up Apache Solr is not enough to ensure the success of your web product. To maximize ...
Apache Solr(solr-8.11.1-src.tgz)Source release
Mastering Apache Solr 7.x An expert guide to advancing, optimizing, and scaling your enterprise search 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网...
Title: Apache Solr Search Patterns Author: Jayant Kumar Length: 250 pages Edition: 1 Language: English Publisher: Packt Publishing Publication Date: 2015-03-31 ISBN-10: 1783981849 ISBN-13: ...
Apache Solr(solr-7.7.3.tgz)Binary releases 二进制版本