Solr

Posted shiliuhuanya

tags:

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

一、Solr原理

1)什么是solr?

是一个appache全文检索引擎系统 war包 部署在tomact 上 就能运行

solrj 远程调用solr 服务器 完成对索引库的操作 底层使用lucene编写

2) 作用

  solr本身也可以看成数据库,(no sql类型),但它比数据库搜索速度更快,所以在项目中我们一般把搜索部分交给solr,就像我们在京东首页所看到的商品信息,并不是来自数据库,而是来源于sorl的索引库

  数据库本身不能实现分词效果,而只能使用模糊查询,但是模糊查询非常低效,查询速度比较慢,由于在实际生活中,一般搜索是用的比较多的,这样数据库压力自然就很大,所以我们就让供专业的solr来做搜索功能

  对于大量数据的查询 主要用于大型互联网项目

  切分词 :将一句话 切分成一个一个的词 去掉停用词 的 a an 地 得

技术图片

 

 

 

二、 Solr安装

注意:需要提前配置好linux下的java环境 我们将所需要的压缩包都放在/usr/local/solr中

分别是:apache-tomcat-7.0.47.tar.gz   solr-4.10.3.tar 

一:安装Tomcat(直接将我们的tomcat解压包解压即可)


tar -zxvf apache-tomcat-7.0.47.tar.gz ./                    (将压缩包解压到当前文件夹)

cd /usr/local

mv apache-tomcat-8.5.15/ tomcat                  (将文件名改为tomcat)

二:解压solr-4.10.3.tar 

tar -zxvf solr-4.10.3.tar .tar.gz ./   

1 .将example中solr.war文件放再tomcat的webapps中

[root@hostname solr]# cp solr-4.10.3/example/webapps/solr.war tomcat/webapps/ 

2. 打开tomcat

[root@hostname solr]# sh tomcat/bin/startup.sh     

3. 关闭tomacat                        

[root@hostname solr]# sh tomcat/bin/shutdown.sh               

4.删除tomcat webapps中的solr.war包 防止每次运行tomcat时重复运行

[root@hostname webapps]# rm -rf solr.war   

5.将solr中的jar包放入tomcat项目中的lib包中                                       

[root@hostname solr]# cp solr-4.10.3/example/lib/ext/* tomcat/webapps/solr/WEB-INF/lib/ 

6.将solr文件夹 复制到usr/local/solr中       

[root@hostname solr]# cp -r solr-4.10.3/example/solr ./    

7改名为solrhome            

[root@hostname solr]# mv solr solrhome 

8.更改项目中web.xml文件                 

[root@hostname solr]# vim tomcat/webapps/solr/WEB-INF/web.xml     

9.将env-entry标签中修改路径 改为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>

之后打开tomcat 访问项目

http://IP:8080/solr/

技术图片

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

在 solr 3.4 中放置突出显示片段配置的位置

Solr 高亮是不是还可以指示返回的片段在原始字段中的位置或偏移量?

Solr Highlighting:如何为同一字段请求多个片段长度?

Hue, Solr - 搜索词的自动填充

如何使用SOLRJ java客户端从SOLR获取列名(字段)?

solr admin界面的监控