Solr服务的搭建

  在使用京东或者淘宝时,在搜索框中搜索某些关键字时,会给出不同的匹配结果,例如下图:

                                                           

  搜索时,会将关键字进行拆分,拆分为多个关键字进行查询。并且查询不限制于某个域,而是对多个域进行查询,这就是采用Solr服务加分词器进行的。

 

Solr服务

 

  Solr是一个可伸缩的、能够即时部署的、致力于信息检索的、可以处理海量信息的、以处理自然语言文本为中心的、检索结果按相关性排序的企业级搜索引擎。

 

  Solr处理的业务需求有以下4个特点:

    1、无结构化的自然语言文本为中心

    2、信息浏览粘主导地位的用户需求

    3、以Document这种扁平化并且独立的结构组织信息

    4、要求组织撑得数据模式灵活多变

 

  Solr的数据存储不同于关系型数据库,它不会像数据库表一样,要求数据归属于统一字段,而是设置不同的域,将域与数据库字段做映射,进而对数据库中的数据进行转存。在使用Solr服务查询时,查询的是Solr库中的数据,所以需要定时将数据库中的数据导入到Solr库中。

 

  下面来看一下Solr中的几个概念:

  1、Core

  Core是Solr的核心,一个Solr有一个或多个Core,每个Core可以独立提供索引和查询功能,每个Core对应一个索引或者Collection的Shard,Core增加了管理灵活性和共用资源。

 

  2、Shard

  Shard是Collection的逻辑分片,每个Shard被划分为一个或多歌replicas,通过选举来决定哪个是Leader。

 

  3、Replicas

  Replica是Shard的一个拷贝,每个Replica存在于Solr的一个Core中。创建Collection时,可以指定产生几个replicas,即产生几个Shard的拷贝,每个replica会对应一个Core,也就是一个或多个Solr实例。

 

  4、Collection

  逻辑意义上完整的索引,它尝尝被划分为一个或多个Shard,它们使用相同的Config Set。如果Shard数超过一个,它就是分布式索引。

 

  5、Config Set

  Config Set是Solr Core提供服务必须的一组配置文件。每个Config Set有一个名字,最小需要包括solrconfig.xml和schema.xml,除此之外依据这两个文件的配置文件,可能还需要其他文件。

 

  6、Leader

  Leader是赢得选举的Shard Replica。每个Shard有多个replicas时,会需要通过选举来确定一个Leader。选举可以发生在任意时间,但是通常他们在某个Solr实例发生故障时会被触发。

                                             

  简单来理解,可以认为Collection是完整的Solr库,Shard1和Shard2是Collection的不同部分,存储了不同的数据。Replica和Leader都是Shard的拷贝,只不过两者分别对应不同的Shard。上面图中,每个Solr是一个Solr实例,每个Solr实例对应两个核心索引Core,每一个Core分别对应Shard1和Shard2的拷贝,相当于每个Solr实例都可以访问到Shard1和Shard2,也就是整个Collection。多个Solr实例就组成了最上面的SolrCloud,SolrCloud就是Solr服务的集群,通过集群可以访问所有的Solr实例,访问任意一个Solr实例都可以访问到Solr集群。

 

  Solr库中的数据是由Document组成的,搜索数据时就从Document中搜索,基本操作也是以Document为单位的。Document中的数据是以json格式存储的,添加时添加一个json格式的文件即可;修改时solr没有update,只需要添加一个新的id相同的文档就可以,solr执行时会先删除旧的文档,然后添加新的文档,效果就是更新;删除可以根据数据id来删除Document中的节点,也可以删除查询条件查询得到的结果。

 

单机版服务搭建

 

  Solr需要运行在一个Servlet容器中,所以Solr服务器需要安装JDK环境,本篇博客是以Tomcat作为Servlet容器。

  1、将Solr、Tomcat的压缩包拷贝到服务器上

  2、解压Solr压缩包,将dist/solr-4.10.3.war拷贝到Tomcat的webapps目录下,改名为solr.war

  3、启动Tomcat,solr.war自动解压

  4、将Solr压缩包中example/lib/ext目录下所有的jar包拷贝到Tomcat的webapps/solr/WEB-INF/lib目录下

  5、在Tomcat的webapps/solr/WEB-INF/lib目录下创建classes文件夹,将Solr目录下example/resources/log4j.properties到Tomcat下webapps/solr/WEB-INF/classes目录下

  6、创建solrhome,solrhome是放置solr所有配置文件的地方。修改solr工程的web.xml文件,将solrhome的位置配置上

 

<!--配置jndi告诉solr工程我们的solrhome的位置-->
<env-entry>
	<env-entry-name>solr/home</env-entry-name>
	<env-entry-value>/usr/local/solr/solrhome</env-entry-value>
	<env-entry-type>java.lang.String</env-entry-type>
</env-entry>

  7、启动Tomcat,利用http://ipaddress:8080/solr来访问Solr服务,看到Solr的主页面即安装成功。

 


  通过访问Solr的服务界面,可以进行条件查询,也可以通过solrj来从代码中访问Solr服务进行查询。

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值