hello Solr大爷!

Posted 大浪自逍遥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hello Solr大爷!相关的知识,希望对你有一定的参考价值。

一、Solr介绍

1  全文检索

什么叫全文检索呢?这要从我们生活中的数据说起。

我们生活中的数据总体分为两种:结构化数据和非结构化数据。

1)结构化数据:只具有固定格式和有限长度的数据,如数据库、元数据等。

2)非结构化数据:指不定长度或无固定格式的数据,如邮件,word文档等。

非结构化数据有一种叫法叫全文数据。

按照数据的分类,搜索也分为两种:

    1)对结构化数据的搜索:如对数据库的搜索,用SQL语句。

2)对非结构化数据的搜索:如利用windows的搜索也可以搜索文件内容,linux下的grep命令,再如Google和百度可以搜索大量内容数据。

 

2  Lucene

   Lucene是一个高效的,基于java的全文检索库。

   Luceneapache软件基金会4 jakarta 项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但他不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程序库,由apache软件基金会提供。Lucene提供了一个简单却强大的应用程序接口,能做全文索引和搜寻,在java开发环境里Lucene是一个成熟的免费开源工具,就其本身而言,Lucene是当前以及最近几年最受欢迎的免费java信息检索程序库。

 

3  Solr 简介

Solr是基于Lucene的面向企业搜索web应用

Solr是一个独立的企业搜索应用服务器,它对外提供类似于Web-serviceAPI接口,用户可以通过http请求,向搜索引擎服务器提交一定格式的xml文件,生成索引;也可以通过Http Get操作提出查找请求,并得到xml/json格式的返回结果。

Solr是一个高性能,采用java5开发,基于Lucene全文检索服务器,同时对其进行扩展,提供了必Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并提供了一个完善的功能管理界面,是一款非常优秀的全文检索引擎。

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

 

Solr单击版安装

安装环境

    1.1  安装jdk

         1.1.1 jdk版本

      jdk-8u11-linux-x64.tar.gz

1.1.2 环境变量配置

export JAVA_HOME=/usr/local/jdk

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

 

    1.2  安装tomcat

        1.2.1tomcat版本

        apache-tomcat-7.0.47.tar.gz

安装  Solr

   Solr版本:solr-4.10.3.tgz

      2.1 Solr由两个部分构成

       1 Solrweb服务

       2Solr的索引库

2.2 Solr的目录介绍

bin:启动solr的一些脚本,但是需要依赖jeety容器

contrib:存放的是solr对第三方插件支持的内容

distsolr编译后所产生一些文件夹。War或者是jar

example:是solr的案例。在该目录下有两个文件夹对于我们来说比较重要。

1) webapps:在该目录中存放了一个solrwar包。与dist目录下的那个war文件是同一个,只是存放的目录及名称不同而已。

2) solr: solr的一个标准的索引库示例。

3) lib/ext:该目录下存放的是一些日志处理器的jar包。Solrweb服务也要依赖于日志处理的jar包。所以我们在安装solr服务时,需要将该目录下的jar拷贝给solr服务

2.3  安装Solr服务

 其实安装solr服务就是将solrwar包,拷贝到tomcatwabapps目录下。

2.4  启动tomcat,解压war

  查看tomcat的启动日志,查看是否做war的解压

  tailf logs/catalina.out

2.5  添加服务中所依赖的jar

   由于我们在解压后的solr的项目中,需要依赖一些日志处理的jar包。所以我们在添加依赖的jar包时,需要将原来的war删除掉。否则tomcat再次启动时,会将原来的目录覆盖掉。那么新添加的jar包也就没了。注意:在删除war包时,一定要在tomcat关闭的状态下删除war包。如果在tomcat启动状态下删除war包,那么tomcat在关闭时会将解压的目录一并的也删除掉。

 

2.6  安装Solr索引库

         solr的解压目录的example目录下有个solr的目录,就是solr的一个基本的索引库示例

2.7  拷贝索引库

将该索引库拷贝到指定目录下(可以是任意目录),虽然具备任意性。但是也不能太随便。应该放到/usr/local/solrhome。先创建solrhome目录

       2.8 solr的服务中配置索引库

                solr的服务中配置索引库的位置注意:需要配置的路径为索引库的根。可以使用linux中的pwd命令查看绝对路径。将该路径添加到solr服务中的web.xml文件中Solr服务在启动时,是通过他的web.xml文件中的节点配置获取索引库的绝对位置的。vim web.xmlweb.xml中找到<env-entry>.注意:该节点默认是注释状态的,我们需要先去掉注释。然后将拷贝的索引库的路径添加到该节点的<env-entry-value>节点中

     2.9  访问solr服务

                 启动tomcat通过solr的管理页面可以对solr进行操作了。启动tomcat后,打开浏览器输入solr的访问url就可以访问solr服务了


以上是关于hello Solr大爷!的主要内容,如果未能解决你的问题,请参考以下文章

还看不懂Python OpenCV?不,我不允许!隔壁大爷都说看得懂!❤️环境配置+问题分析+视频图像入门❤️万字只为你~

为啥“hello” + + '/' + “world” == “hello47world”?

hello.equals(hello)的代码值是多少?

怎么用maven写出hello world

Spring Cloud 整合 SkyWalking

hello1 hello2 代码分析