Solr安装与配置

标签: solr | 发表时间:2016-01-20 18:41 | 作者:21aspnet
出处:http://blog.csdn.net

需要Java Runtime Environment(JRE) 1.7或更高版本,先验证。

# java -version


如果没有安装好Java环境,需要参考: http://blog.csdn.net/unix21/article/details/18774417


无需安装tomcat,新版solr已经集成jetty
Solr最新版下载地址 http://mirror.bit.edu.cn/apache/lucene/solr/
#wget http://mirror.bit.edu.cn/apache/lucene/solr/5.3.1/solr-5.3.1.tgz

解压压缩包
#tar zxf solr-5.3.1.tgz

创建应用程序和数据目录
#mkdir -p /data/solr /usr/local/solr

创建运行solr的用户并赋权
#groupadd solr
#useradd -g solr solr
#chown -R solr.solr /data/solr /usr/local/solr

安装solr服务
#/usr/solr-5.3.1/bin/install_solr_service.sh /usr/solr-5.3.1.tgz -d /data/solr -i /usr/local/solr

如果没有安装jdk



安装正常


【状态】
#/usr/local/solr/solr/bin/solr status



solr命令用法
定位到solr应用程序目录  
# cd /usr/local/solr/solr
 
查看solr命令选项
# ./bin/solr

--------------
Usage: solr COMMAND OPTIONS
       where COMMAND is one of: start, stop, restart, status, healthcheck, create, create_core, create_collection, delete


  Standalone server example (start Solr running in the background on port 8984):


    ./solr start -p 8984


  SolrCloud example (start Solr running in SolrCloud mode using localhost:2181 to connect to ZooKeeper, with 1g max heap size and remote Java debug options enabled):


    ./solr start -c -m 1g -z localhost:2181 -a "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044"


Pass -help after any COMMAND to see command-specific usage information,
  such as:    ./solr start -help or ./solr stop -help
-----------------------

【启动】
#/usr/local/solr/solr/bin/solr start -help
#/usr/local/solr/solr/bin/solr create -help
【重启】才可以新的索引配置文件生效   重启可以解决CPU占比很高的问题
#/usr/local/solr/solr/bin/solr restart
#/usr/local/solr/solr/bin/solr stop
#crontab -l
#crontab -e
10 3 * * * root /usr/local/solr/solr/bin/solr restart


安装solr服务脚本用法
运行安装脚本
# /usr/solr-5.3.1/bin/install_solr_service.sh


【创建集合】
在这个部分,我们创建一个简单的Solr集合。
Solr可以有多个集合,但在这个示例,我们只使用一个。使用如下命令,创建一个新的集合。我们以solr用户运行以避免任何权限错误。
# su - solr -c "/usr/local/solr/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"


在这个命令中,gettingstarted是集合的名字,-n指定配置集合。Solr默认提供了3个配置集合。这里我们使用的是schemaless,意思是可以提供任意名字的任意列,类型将会被猜测。


防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8983 -j ACCEPT


http://192.168.1.197:8983/solr



http://192.168.1.197:8983/solr/#/gettingstarted/query




【删除核心】
#su - solr -c "/usr/local/solr/solr/bin/solr delete -c collection2"

【创建核心】

#su - solr -c "/usr/local/solr/solr/bin/solr create -c collection1 -n data_driven_schema_configs"
#su - solr -c "/usr/local/solr/solr/bin/solr create -c collection2 -n data_driven_schema_configs"



----------------------

【配置数据库】


1.进入你的core(如collection1),新建一个目录lib,拷贝mysql-connector-java-5.1.14.jar到新建的lib目录中。


2.从solr的解压文件目录中找到“/example/example-DIH/solr/db/conf”下的db-data-config.xml文件到你的core(如collection1)conf目录下,并更名为data-config.xml。


3.solrconfig.xml
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
    <str name="config">data-config.xml</str>
  </lst>
</requestHandler>


4.data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.1.197:3306/test" user="root" password="123456"/><document>
    <entity name="user" query="select * from user">
          <field column="id" name="id" />
         <field column="name" name="name" />
         <field column="password" name="password" />
     </entity>
 </document>
</dataConfig> 
[Core Admin点Reload]


5.
注意5.3managed-schema就代替之前的schema

schema brower可以查看schema


5.拷贝jar
Error loading class 'org.apache.solr.handler.dataimport.DataImportHandler' 
编译的Solr,不会把data import handler的jar文件包含到war文件里面去的。 
解决方法: 
在编译好的Solr文件夹里,我的是/usr/local/solr/solr-5.3.1/dist,找到solr-dataimporthandler-5.3.1.jar和solr-dataimporthandler-extras-5.3.1.jar,
复制到jetty里,也就是前面建立的lib目录。然后重新reload,Solr就没有问题了




6.dataimport
这时候dataimport才有界面




7.【连接sqlserver】注意不支持域名,必须转换为IP
<dataSource type="JdbcDataSource"    
                  driver="net.sourceforge.jtds.jdbc.Driver"    
                  url="jdbc:jtds:sqlserver://211.152.35.122:49151;DatabaseName=YuanBoWebDB;"    
                  user="panqingqiang"    
                  password="514d1b0bfe6432841ac5a38cc7bfe22b"/>


jTDS驱动兼容性问题 
Java连接SQL Server 2000数据库时,有两种方法:


(1)通过Microsoft的JDBC驱动连接。此JDBC驱动共有三个文件,分别是mssqlserver.jar、msutil.jar和msbase.jar。但是Microsoft官网上已经找不到这些驱动,其提供的sqljdbc.jar和sqljdbc4.jar并不支持SQL Server 2000。


驱动程序名称:com.microsoft.jdbc.sqlserver.SQLServerDriver(即下面的classforname)
数据库连接URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname(即下面的url)




(2)通过jTDS驱动连接。下载地址:http://sourceforge.net/projects/jtds/files/jtds/


驱动程序名称:net.sourceforge.jtds.jdbc.Driver(即下面的classforname)
数据库连接URL:jdbc:jtds:sqlserver://localhost:1433/dbname(即下面的url)


http://www.cnblogs.com/snake-hand/archive/2013/06/18/3143159.html




8.【查询】
http://192.168.1.197:8983/solr/collection2/select?q=*%3A*&wt=json&indent=true&start=1&rows=5
http://121.43.153.80:8983/solr/collection2/select?q=*%3A*&wt=json&indent=true&start=1&rows=5


-----
9.【分词】
默认Solr提供的分词组件对中文的支持是不友好的,比如:“VIM比作是编辑器之神”这个句子在索引的的时候,选择FieldType为”text_general”作为分词依据时,分词效果是:它把每一个词都分开了,可以想象如果一篇文章这样分词的搜索的体验效果非常差。
能够和Solr集成的中文分词组件有很多,比如:mmseg4j、IkAnalyzer、ICTCLAS等等。各有各的特点。
作者github
https://github.com/chenlb/mmseg4j-solr
上的分享链接,可靠
http://pan.baidu.com/s/1dD7qMFf
mmseg4j-solr-2.3.0.jar
mmseg4j-core-1.10.0.jar


<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
</analyzer>
</fieldtype>
<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
</analyzer>
</fieldtype>
<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="n:/custom/path/to/my_dic" />
</analyzer>
</fieldtype>


TS_Address: '上海大酒店'  这个分词,居然""不会分词





http://www.tuicool.com/articles/67BFFz
68.罐头不如果汁营养丰富,分别在ik和mmseg下比较分词的差异




10.【注意事项】
Solr使用注意事项:
1:连接字符串要用IP,不能使用域名。
<dataSource type="JdbcDataSource"    
                  driver="net.sourceforge.jtds.jdbc.Driver"    
                  url="jdbc:jtds:sqlserver://112.124.235.156:3499;DatabaseName=yuanbodb;"
          


2:需要设置jetty服务器的内存大小
<init-param>
      <param-name>maxCacheSize</param-name>
      <param-value>1024000000</param-value>
</init-param>
默认是256M。


数据超过1万条会产生Java堆溢出错误
/usr/local/solr/solr-5.3.1/server/etc/ webdefault.xml
java.lang.OutOfMemoryError: Java heap space解决方法


静态html admin-extra.html
E:\VM\test_197\solr\solr-5.3.1\example\example-DIH\solr\solr\conf


如果你需要修改官方分词可以修改mmseg4j-core-1.10.0.jar里的data目录下的分词文件words.dic即可

==============================
参考:
CentOS下安装Solr5.3
http://www.centoscn.com/image-text/install/2015/0918/6190.html


linux集群系列(三):Solr全文搜索服务器部署(Solr-5.2.1)
http://blog.csdn.net/jeffsmish/article/details/46533255


适用于 SQL Server 的 Microsoft JDBC Drivers 4.2、4.1 和 4.0
https://www.microsoft.com/zh-CN/download/details.aspx?id=11774
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=11774


Solr之搭建Solr5.2.1服务并从Mysql上导入数据
http://www.itnose.net/news/157/6310328


solr主从部署
http://my.oschina.net/gaowm/blog/349334


solr连接数据库配置
http://www.cnblogs.com/madyina/p/4133908.html


[solr] - 数据库导入 
http://www.cnblogs.com/HD/p/3981677.html
[solr] - 索引数据删除
http://www.cnblogs.com/HD/p/3981716.html


从mysql数据库中导入数据到solr4.5
http://blog.csdn.net/zhangyaoming2004/article/details/44804987


全文检索引擎Solr系列——整合中文分词组件mmseg4j
http://www.importnew.com/12860.html


chenlb/mmseg4j-solr 
https://github.com/chenlb/mmseg4j-solr


solr中mmseg4j自定义词库配置
http://blog.csdn.net/alen1985/article/details/8501021


Solr4.7.0中整合中文分词mmseg4j-1.9.1 
http://josh-persistence.iteye.com/blog/2050054?utm_source=tuicool&utm_medium=referral


solr4.7中文分词器(ik-analyzer)配置 
http://blog.csdn.net/clj198606061111/article/details/21289897#

作者:21aspnet 发表于2016/1/20 10:41:00 原文链接
阅读:32 评论:0 查看评论

相关 [solr] 推荐:

Solr SpellCheck 应用

- - 开源软件 - ITeye博客
通过对各类型的SpellCheck组件学习,完成项目拼写检查功能. 本文使用基于拼写词典的实现方式,solr版本为5.3.0. SpellCheck 简述. 拼写检查是对用户错误输入,响应正确的检查建议. 比如输入:周杰轮,响应:你是不是想找 周杰伦. Solr的拼写检查大致可分为两类,基于词典与基于Solr索引.

Solr DocValues详解

- - 企业架构 - ITeye博客
什么是docValues. docValues是一种记录doc字段值的一种形式,在例如在结果排序和统计Facet查询时,需要通过docid取字段值的场景下是非常高效的. 为什么要使用docValues. 这种形式比老版本中利用fieldCache来实现正排查找更加高效,更加节省内存. 倒排索引将字段内存切分成一个term列表,每个term都对应着一个docid列表,这样一种结构使得查询能够非常快速,因为term对应的docid是现成就有的.

solr的使用

- - Web前端 - ITeye博客
solr的原理不和大家一一讲述,主要讲solr在使用过程中的注意事项.  首先是安装solr,安装步骤省略. (不要说我懒,安装步骤导出都是. 成功之后 需要在solr里面建立一个针对你的业务的服务,我想建立一个叫做discuz的服务. 然后你在你的solr目录 :solr-5.5.3/server/solr/  下看见了discuz   ,这是你刚刚创建的,针对某一业务的整个搜索配置都是在这个目录下配置的.

Solr调优参考

- - 淘宝网通用产品团队博客
共整理三部分,第一部分Solr常规处理,第二部分针对性性处理,前者比较通用,后者有局限性. 务必根据具体应用特性,具体调节参数,对比性能. 具体应用需要全面去把控,各个因素一起起作用. 第一部分. E文连接 http://wiki.apache.org/solr/SolrPerformanceFactors.

Solr之缓存篇

- - 淘宝网综合业务平台团队博客
Solr在Lucene之上开发了很多Cache功能,从目前提供的Cache类型有:. 而每种Cache针对具体的查询请求进行对应的Cache. 本文将从几个方面来阐述上述几种Cache在Solr的运用,具体如下:. (1)Cache的生命周期. (2)Cache的使用场景. (3)Cache的配置介绍.

Solr主从备份

- - 研发管理 - ITeye博客
SOLR复制模式,是一种在分布式环境下用于同步主从服务器的一种实现方式,因之前提到的基于rsync的SOLR不同方式部署成本过高,被SOLR1.4版本所替换,取而代之的就是基于HTTP协议的索引文件传输机制,该方式部署简单,只需配置一个文件即可. 以下讲解具体操作步骤: . 步骤分主服务器和从服务器,允许有多个从服务器,即从服务器的配置一样.

solr相似匹配

- - CSDN博客推荐文章
相似匹配   在我们使用网页搜索时,会注意到每一个结果都包含一个 “相似页面” 链接,单击该链接,就会发布另一个搜索请求,查找出与起初结果类似的文档. Solr 使用 MoreLikeThisComponent(MLT)和 MoreLikeThisHandler 实现了一样的功能. 如上所述,MLT 是与标准 SolrRequestHandler 集成在一起的;MoreLikeThisHandler 与 MLT 结合在一起,并添加了一些其他选项,但它要求发布一个单一的请求.

Solr与Mysql集成指南

- sun - 草根网:互联网界的读者文摘
在《企业级搜索引擎Solr使用入门指南》及《企业级搜索引擎Solr交流》中对Solr的使用做了简单介绍. 在数据库驱动的应用中,当时采....

Solr\Lucene优劣势分析

- - 淘宝网综合业务平台团队博客
最早lucene2.4以及以前,追溯到2008年前后,lucene刚刚引起大家的关注,到后来Nutch. 、solr的出现,lucene变得更加热. Nutch、Solr的发展,极大推动了lucene的升级. 对于一些接触过搜索,使用过lucene、solr的人来说,一般都会感觉lucene、solr很牛逼.