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

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

    # java -version

  2. 安装可参考《在CentOS下安装JDK8》,包含JRE。

安装Solr5.3

  1. 去http://www.apache.org/dyn/closer.lua/lucene/solr/5.3.0下载Solr安装文件solr-5.3.0.tgz。

  2. 将solr-5.3.0.tgz文件放到/tmp目录下,执行如下脚本:

    #cd/tmp

    #tar-zxvfsolr-5.3.0.tgz//解压压缩包

  3. 创建应用程序和数据目录

    #mkdir-p/data/solr/usr/local/solr

  4. 创建运行solr的用户并赋权

    #groupaddsolr

    #useradd-gsolrsolr

    #chown-Rsolr.solr/data/solr/usr/local/solr

  5. 安装solr服务

    #solr-5.3.0/bin/install_solr_service.shsolr-5.3.0.tgz-d/data/solr-i/usr/local/solr

  6. 检查服务状态

    #servicesolrstatus

    将会看到如下输出:

    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命令用法

  1. 定位到solr应用程序目录

    #cd/usr/local/solr/solr

  2. 查看solr命令选项

    #./bin/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

#./bin/solrstart-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

#./bin/solrcreate-help

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服务脚本用法

  1. 运行安装脚本

    #/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

CentOS下安装Solr5.3的更多相关文章

  1. cocoapods – 命令/ bin / sh失败,退出代码23

    适用于所有豆荚,无需豆荚但仍然是同样的错误.有任何想法吗?

  2. 当Xcode 4.6打开故事板时,ios – Xcode 5崩溃

    我从2个月前开始使用Xcode4.6的项目,现在我想发送给我的应用程序一切都可以,但是当我尝试在iOS7上运行应用程序时,我看到一些错误;所以我已经下载了新的Xcode5以查看错误在哪里,但是发生了什么事情是当我尝试打开与IBXcode崩溃的故事板.我试图在互联网上看到如何解决这个问题,但我没有找到任何关于这一点.此外,当我尝试使用iOS7在设备上运行应用程序时,Xcode给我的错误是:解决方法问

  3. Xcode 8.2,Swift编译器错误:错误:意外的输入文件

    从Xcode8.1更新到8.2后,我在项目中面临Swift编译器错误.我使用最新的Swift版本和Carthage进行依赖管理.它与Xcode8.1完美搭配,现在我已经尝试了几个小时来修复它,方法是清理DerivedData和Simulator数据,在Xcode中清理并删除Build文件夹,但似乎没有任何帮助.我只安装了一个Xcode版本.我得到以下编译错误:它所指的文件夹如下所示:它实际上在那里,所以我不知道发生了什么……如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举

  4. phonegap运行android – create命令失败,退出代码8 – linux

    我做了一些googleing但没有发现任何相关内容.任何帮助赞赏.请务必使用裸体vm进行尝试没有nodejs安装或依赖问题.基督教解决方法我刚刚面临同样的问题,问题是没有正确设置sdk工具的路径:请尝试以下方法:

  5. 无法为Android教程构建GStreamer

    我在尝试构建GStreamerAndroid教程时遇到了很多问题.我的环境是:>MacOSX7>AndroidSDK版本17>AndroidNDK8d我能够在Eclipse和命令行中构建和运行NDK示例.我已经下载了http://cdn.gstreamer.com/android/arm/gstreamer-sdk-android-arm-debug-2012.11.tar.bz2并将GSTREA

  6. android – 无法摆脱错误“/usr/bin/ld:找不到-lncurses”

    有人能指出我错过了什么吗?解决方法然后重新运行命令

  7. android – 无法更改默认输出文件夹

    所有我无法在Eclipse中更改默认输出文件夹.当我打开“属性”–>“Java构建路径”–>“Source”,默认输出文件夹是我改成了保存并清理–构建此项目.它变回了这是在我将ADT插件更新到15.0.1之后发生的一些配置:任何建议表示赞赏.谢谢,约翰尼解决方法从AndroidChangesinRevision14开始:Changetothebinoutputfolder.WhiletheAntb

  8. Android ICS编译问题

    我成功下载了Android4.0.3的源代码.但我无法在我的机器上编译它.我的机器配置是UBUNTU11.1064位,4GBRAM当我运行午餐命令时收到以下错误.JDK已经在路径中.当我运行命令java-version时,我正在关注OutPut任何人都可以帮助继续吗?解决方法如果检查脚本build/core/find-jdk-tools-jar.sh,则可以看到它首先检查名为ANDROID_JAVA_HOME的环境变量.如果将ANDROID_JAVA_HOME环境变量设置为JDK路径,则应修复此错误.

  9. Android模拟器错误消息:“PANIC:”x86“CPUS缺少仿真器引擎程序.

    我试图通过使用AVD管理器运行一个Android模拟器.这是我的avd:http://image-upload.de/image/fnx79V/52b0d050ee.png这是通过开始发生的事情:http://image-upload.de/image/vGpQfa/e912d83939.png我有一个MacbookPro视网膜从intel页面直接安装Haxm驱动程序.没有模拟器正在工作.所有得到

  10. android – react-native:command not found

    我正在获得-bash:react-native:命令在创建反应本机项目时找不到错误.以下是附加信息我尝试从下面的链接建议的步骤,但仍然我得到相同的错误.>react-native-command-not-found我没有在解决方案中指定的任何“npm”目录但是我发现npm文件存在于下面的位置.我卸载了反应本机并重新安装,但仍然面临同样的问题.解决方法添加正确的路径到PATH变量问题后解决.以下是找

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部