前端之家收集整理的这篇文章主要介绍了
CentOS下安装Solr5.3,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
https://lucene.apache.org/solr/
前言
Solr现在是一个独立的服务器。
从Solr5.0开始,Solr不再发布为在任何Servlet容器中部署的“war”Web应用程序包(Web Application Archive)。Solr现在部署为一个独立的java服务器应用程序,包含在Unix和Windows平台上可以使用的启动和停止脚本,以及将Solr作为服务安装到类Unix平台的/etc/init.d下的安装脚本。
本质上,Solr仍然以Servlet APIs实现,并在Jetty上运行,但只是作为一个实现。部署为“webapp”到其他的Servlet容器(或其他Jetty实例)上不被支持,可能在未来的Solr 5.x版本不会工作。而可能会带来Solr的其他改变,事实上是利用自定义网络协议栈功能。
安装JRE
-
需要Java Runtime Environment(JRE) 1.7或更高版本,先验证。
# java -version
-
安装可参考《在CentOS下安装JDK8》,包含JRE。
安装Solr5.3
-
去http://www.apache.org/dyn/closer.lua/lucene/solr/5.3.0下载Solr安装文件solr-5.3.0.tgz。
-
将solr-5.3.0.tgz文件放到/tmp目录下,执行如下脚本:
|
#cd/tmp #tar-zxvfsolr-5.3.0.tgz//解压压缩包 |
-
创建应用程序和数据目录
|
#mkdir-p/data/solr/usr/local/solr |
-
创建运行solr的用户并赋权
#groupaddsolr #useradd-gsolrsolr #chown-Rsolr.solr/data/solr/usr/local/solr |
-
安装solr服务
|
#solr-5.3.0/bin/install_solr_service.shsolr-5.3.0.tgz-d/data/solr-i/usr/local/solr |
-
检查服务状态
将会看到如下输出:
Solrprocess29692runningonport8983 { "solr_home":"/data/solr/data/", "version":"5.3.01696229-noble-2015-08-1717:10:43", "startTime":"2015-09-16T01:32:03.919Z", "uptime":"0days,0hours,3minutes,6seconds", "memory":"89.8MB(%18.3)of490.7MB"} |
solr命令用法
-
定位到solr应用程序目录
-
查看solr命令选项
Usage:solrCOMMANDOPTIONSwhereCOMMANDisoneof:start,stop,restart,status,healthcheck,create,create_core,create_collection,delete Standaloneserverexample(startSolrrunninginthebackgroundonport8984): ./solrstart-p8984 SolrCloudexample(startSolrrunninginSolrCloudmodeusinglocalhost:2181toconnecttoZooKeeper,with1gmaxheapsizeandremoteJavadebugoptionsenabled): ./solrstart-c-m1g-zlocalhost:2181-a"-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044" Pass-helpafteranyCOMMANDtoseecommand-specificusageinformation,suchas:./solrstart-helpor./solrstop-help |
Usage:solrstart[-f][-c][-hhostname][-pport][-ddirectory][-zzkHost][-mmemory][-eexample][-ssolr.solr.home][-a"additional-options"][-V] -fStartSolrinforeground;defaultstartsSolrinthebackgroundandsendsstdout/stderrtosolr-PORT-console.log -cor-cloudStartSolrinSolrCloudmode;if-znotsupplied,anembeddedZooKeeperinstanceisstartedonSolrport+1000,suchas9983ifSolrisboundto8983 -h<host>SpecifythehostnameforthisSolrinstance -p<port>SpecifytheporttostarttheSolrHTTPlisteneron;defaultis8983Thespecifiedport(SOLR_PORT)willalsobeusedtodeterminethestopportSTOP_PORT=($SOLR_PORT-1000)andJMXRMIlistenportRMI_PORT=(1$SOLR_PORT).Forinstance,ifyouset-p8985,thentheSTOP_PORT=7985andRMI_PORT=18985 -d<dir>SpecifytheSolrserverdirectory;defaultstoserver -z<zkHost>ZooKeeperconnectionstring;onlyusedwhenrunninginSolrCloudmodeusing-cTolaunchanembeddedZooKeeperinstance,don'tpassthisparameter. -m<memory>Setsthemin(-Xms)andmax(-Xmx)heapsizefortheJVM,suchas:-m4gresultsin:-Xms4g-Xmx4g;bydefault,thisscriptsetstheheapsizeto512m -s<dir>Setsthesolr.solr.homesystemproperty;Solrwillcreatecoredirectoriesunderthisdirectory.ThisallowsyoutorunmultipleSolrinstancesonthesamehostwhilereusingthesameserverdirectorysetusingthe-dparameter.Ifset,thespecifieddirectoryshouldcontainasolr.xmlfile,unlesssolr.xmlexistsinZooKeeper.Thisparameterisignoredwhenrunningexamples(-e),asthesolr.solr.homedependsonwhichexampleisrun.Thedefaultvalueisserver/solr. -e<example>Nameoftheexampletorun;availableexamples:cloud:SolrCloudexampletechproducts:ComprehensiveexampleillustratingmanyofSolr'scorecapabilitiesdih:DataImportHandlerschemaless:Schema-lessexample -aAdditionalparameterstopasstotheJVMwhenstartingSolr,suchastosetupJavadebugoptions.Forexample,toenableaJavadebuggertoattachtotheSolrJVMyoucouldpass:-a"-agentlib:jdwp=transport=dt_socket,address=18983"Inmostcases,youshouldwraptheadditionalparametersindoublequotes. -nopromptDon'tpromptforinput;acceptalldefaultswhenrunningexamplesthatacceptuserinput -VVerbosemessagesfromthisscript |
Usage:solrcreate[-cname][-dconfdir][-nconfigName][-shards#][-replicationFactor#][-pport] CreateacoreorcollectiondependingonwhetherSolrisrunninginstandalone(core)orSolrCloudmode(collection).Inotherwords,thisactiondetectswhichmodeSolrisrunningin,andthentakestheappropriateaction(eithercreate_coreorcreate_collection).Fordetailedusageinstructions,do: bin/solrcreate_core-help or bin/solrcreate_collection–help |
安装solr服务脚本用法
-
运行安装脚本
|
#/tmp/solr-5.3.0/bin/install_solr_service.sh |
ERROR:MustspecifythepathtotheSolrinstallationarchive,suchassolr-5.0.0.tgz Usage:install_solr_service.shpath_to_solr_distribution_archiveOPTIONS ThefirstargumenttothescriptmustbeapathtoaSolrdistributionarchive,suchassolr-5.0.0.tgz(only.tgzor.ziparesupportedformatsforthearchive) SupportedOPTIONSinclude: -dDirectoryforlive/writableSolrfiles,suchaslogs,pidfiles,andindexdata;defaultsto/var/solr -iDirectorytoextracttheSolrinstallationarchive;defaultsto/opt/Thespecifiedpathmustexistpriortousingthisscript. -pPortSolrshouldbindto;defaultis8983 -sServicename;defaultstosolr -uUsertoowntheSolrfilesandruntheSolrprocessas;defaultstosolrThisscriptwillcreatethespecifieduseraccountifitdoesnotexist. NOTE:Mustberunastherootuser |
创建集合
在这个部分,我们创建一个简单的Solr集合。
Solr可以有多个集合,但在这个示例,我们只使用一个。使用如下命令,创建一个新的集合。我们以solr用户运行以避免任何权限错误。
|
#su-solr-c"/usr/local/solr/solr/bin/solrcreate-cgettingstarted-ndata_driven_schema_configs" |
在这个命令中,gettingstarted是集合的名字,-n指定配置集合。Solr默认提供了3个配置集合。这里我们使用的是schemaless,意思是可以提供任意名字的任意列,类型将会被猜测。
|
Setupnewcoreinstancedirectory:/data/solr/data/gettingstarted Creatingnewcore'gettingstarted'usingcommand:http://localhost:8983/solr/admin/cores?action=CREATE&name=gettingstarted&instanceDir=gettingstarted {"responseHeader":{"status":0,"QTime":3247},"core":"gettingstarted"} |
你现在已经创建了集合,并可以开始添加数据。默认的架构只需要提供一列:id。没有其他默认列,只有动态列。
添加和查询文档
在这个部分,我们将浏览Solr Web界面,添加一些文档到集合中。
问你使用Web浏览器访问http://your_server_ip:8983/solr,Solr Web界面将会显示为:
这个Web界面包含大量的有用信息,可以被用于调试在使用中产生的任何问题。
集合被划分为核,这就是为什么在Web界面中有大量的对核的参照。现在,gettingstarted只包含一个核,名为gettingstarted。在左手边,可以看到“Core Selector”下拉菜单,我们可以选择gettingstarted看到更多信息。
在选择gettingstarted核之后,选择“Documents”。文档存储可被Solr搜索的真实数据。因为我们使用了一个无模式的配置,我们可以使用任何列。我使用如下的JSON示例添加了一个单一文档,通过拷贝以下到“Documents(s)”列:
|
{ "number":1, "president":"GeorgeWashington", "birth_year":1732, "death_year":1799, "took_office":"1789-04-30", "left_office":"1797-03-04", "party":"NoParty" } |
点击“Submit document”添加文档到索引。过一会,你会看到如下信息:
添加文档后的输出:
Status:success Response: { "responseHeader":{ "status":0, "QTime":290 } } |
你可以使用一个类似的或完全不同的结构添加更多文档,但你也可以只使用一个文档继续。
现在,选择左边的“Query”去查询我们刚刚添加的文档。保持屏幕中的默认值,在点击“Execute Query”之后,你最多看到10个文档,依赖于你添加了多少:
查询输出
{ "responseHeader":{ "status":0, "QTime":39, "params":{ "q":"*:*", "indent":"true", "wt":"json", "_":"1442371884598" } }, "response":{ "numFound":1, "start":0, "docs":[ { "number":[ 1 ], "president":[ "GeorgeWashington" ], "birth_year":[ 1732 ], "death_year":[ 1799 ], "took_office":[ "1789-04-30T00:00:00Z" ], "left_office":[ "1797-03-04T00:00:00Z" ], "party":[ "NoParty" ], "id":"b9b294c1-4b68-4d96-adc2-f6fb77f60932", "_version_":1512437472611532800 } ] } } |
参考:http://lucene.apache.org/solr/quickstart.html