`
w1985chun
  • 浏览: 106572 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

Apache solr使用

阅读更多

一、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" />

分享到:
评论

相关推荐

    Mastering Apache Solr 7.x An expert guide to advancing, optimizing, 无水印转化版pdf

    - **适用读者**:主要面向已经具备一定Apache Solr使用经验的技术人员,旨在帮助他们深入了解如何更高效地利用Solr进行搜索解决方案的设计与实施。 #### 知识点二:高级特性详解 - **分面搜索(Faceted Search)**...

    Apache Solr 4 Cookbook

    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 开发文档).CHM

    Spring Data for Apache Solr API。 Spring Data for Apache Solr 开发文档

    Apache Solr(solr-8.11.1.zip)

    Apache Solr是一款开源的企业级搜索平台,由Apache软件基金会维护。它是基于Java的,提供了高效、可扩展的全文检索、数据分析和分布式搜索功能。Solr-8.11.1是该软件的一个特定版本,包含了从早期版本到8.11.1的所有...

    Apache Solr(solr-8.11.1.tgz)

    Apache Solr 是一个开源的全文搜索引擎,由Apache软件基金会维护,是Lucene项目的一部分。它提供了高效、可扩展的搜索和导航功能,广泛应用于企业级的搜索应用中。Solr-8.11.1是该软件的一个特定版本,包含了最新的...

    apache solr Reference guide 4.5.pdf

    Apache Solr是一个基于Apache Lucene构建的...但无论如何,Solr作为一款成熟和广泛使用的搜索引擎,其官方参考指南提供了最权威和详细的信息,对于任何使用或希望使用Apache Solr的开发者和管理员都是宝贵的学习资源。

    apache solr搜索系统的.Net实现

    apache solr搜索系统的.Net实现

    《apachesolr7官方指南》PDF

    1. 全文检索:Solr使用倒排索引技术,能够快速地进行文本匹配,提供了多种查询语法,包括布尔逻辑、通配符、短语查询、近似查询等,使得用户可以灵活地构造复杂的查询条件。 2. 高效处理大数据:Solr 7引入了更强大...

    Apache Solr Essentials(PACKT,2015)

    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 源文件 3.6.1

    Apache Solr 是一个开源的企业级搜索平台,由Apache软件基金会维护。版本3.6.1是Solr的一个重要里程碑,提供了稳定性和性能优化。通过深入理解这个版本的源代码,开发者可以更深入地掌握Solr的工作原理,从而更好地...

    Apache Solr High Performance.pdf&Solr;+In+Action+2013.pdf英文版

    这两本电子书——"Apache Solr High Performance.pdf" 和 "Solr In Action 2013.pdf" 提供了深入的Solr知识,帮助读者理解和优化Solr的性能。 "Apache Solr High Performance"可能涵盖了如何最大化Solr的性能,包括...

    apache solr guide 4.7

    ### Apache Solr Guide 4.7 知识点解析 #### 一、Apache Solr 概述 **Apache Solr** 是一个高性能、基于 Lucene 的全文检索服务系统,广泛应用于互联网企业的搜索服务中。Solr 提供了高度可扩展且稳定的搜索功能,...

    Apache Solr Search

    ### Apache Solr Search:一种强大的开源企业搜索解决方案 #### Apache Solr简介 Apache Solr是一款基于Lucene Java搜索引擎库的企业级搜索服务器。它不仅继承了Lucene的强大功能,还在此基础上进行了扩展,提供了...

    Apache Solr 3 Enterprise Search Server 部分中文翻译

    Apache Solr 是一款开源的企业级搜索服务器,由Apache软件基金会维护。它被广泛应用于构建高效、可扩展的全文检索应用。本部分中文翻译主要涵盖了Solr的快速入门、Schema设计和文本分析以及索引与搜索的基本操作。 ...

    apache solr1.3.0开发包源码及文档

    Apache Solr 1.3.0发布,Apache Solr是一个性能强大的,基于 Lucene 的全文搜索的 开源企业级搜索服务器,拥有XML/HTTP,JSON APIs,hit highlighting, faceted search, caching, replication,web管理界面等很多功能...

Global site tag (gtag.js) - Google Analytics