在网上搜了一下有关Solr部署的博客,发现很多都是你抄我我抄你,这种抄来抄去的东西就不要发出来了,直接自己收藏了不就好了吗?给互联网增加了这么多电子垃圾想想就心塞。强迫症发作不能容忍在使用旧版的软件,所以把Ubuntu更新成了15.04,然后最近老板开始赶潮流听另一个老板吹说他们使用了分布式索引技术,技术有多好多厉害,然后帮另一个老板部署了一下,另一个老板说搜索速度蹭蹭蹭就上去了,然后老板就让我们去和他们讨论一下,看看他们能不能也帮我们搞一下。然后去开了个会,互相吹比了之后感觉就这么不了了之了的感觉,但是老板那边还是要交代的,没办法,开始问别人问题,问能不能帮我们设计schema和部署,然后结果那边说solr不支持数据表的join操作。然后我就瞎了,solr5.1的dih的example里面,明明就有所谓的join操作,即根据这个表的id来选取另一个表中的数据。说出我看过这个例子然后给出截图之后,那边又说他们没做过,让我们照着例子就这么做吧。我当时真的差点一口老血喷在屏幕上。你早说你不知道怎么做的话我就不回去看solr的reference了好吗?花了我三天看了400多页的英文文档结果你跟我说我们自己做。自己做就自己做吧,谁让数据库设计的比较难搞。
说了那么多废话,这就是为什么我会做solr的原因,然后5.0以上版本的部署在网上好像资料比较少,然后各种都是说使用tomcat来进行部署的,我其实觉得非常奇怪,因为5.0以上的版本自带了一个jetty(不知道以下的版本有没有),然后为什么还要自己新搞一个服务器然后再把那些奇奇怪怪的jar文件放在一些奇奇怪怪的路径下面呢?直接使用solr提供的bin/solr sh文件就行了啊。
首先在http://www.apache.org/dyn/closer.cgi/lucene/solr/5.1.0 这边下载solr5.1.0 的tgz版本。因为是在Ubuntu下部署,所以在这里将文件下载到用户目录~下。Solr有两种运行模式,一种是单机版,就是一个实例跑到底,然后没有涉及到有关zookeeper的内容,因为之前一直没用过solr,所以到目前还没来得及了解zookeeper的使用方法,在solrcloud模式下总是不能新建一个Collection,据说是没有将配置文件上传到ZooKeeper上,所以无法新建一个新的collection。所以在这里就先介绍普通的方法。
下载好之前说的文件之后,应该是有一个名为solr-5.1.0.tgz文件在用户目录~下,可以选择使用命令
tar xzf solr-5.1.0.tgz
在我完成quickstart的过程之后,我自己根据之前所说的bin/solr start
bin/solr start -s ~/workspace/solrtest
这里之所以没用-d是因为-d默认指向当前solr的server文件,这样的话可以使用同一个server的文件启动不同的server实例。注意如果在一台机器上启动多个实例的话需要加上-p来使用不同的端口号。
上述命令新建了一个solr core,然后发现我并不能开启,使用浏览器是可以访问当前主机的solr页面,然后页面中并不会显示当前主机的资源使用情况,会有莫名其妙的错误,为了让错误结果显示的更加明显,使用前台模式,即在terminal里开启solr的时候,在命令的最后增加-f字段,然后solr的输出会显示在控制台上,发现是因为该目录下面没有solr.xml文件。然后随便复制了一个solr.xml文件到该目录下,就发现quickstart中访问的那个网页能够正常显示主机的物理资源使用情况了。
可以在bin/solr中使用命令来增加collection或者直接在http://localhost:8983/solr/#/ 中选择core来增加一个collection,这些增加的前提都是增加的collection路径已经存在,以及在该路径下存在一个conf文件。下图显示新建一个core时需要做的事情,首先name随意取,然后下一个填写之前在-s后面指向的路径下建立的一个新的路径,一般与name填写的内容一致,然后在该路径下还需要有conf文件夹,以及文件夹下需要有solrconfig.xml和schema.xml文件。这样才能够完美地新建好一个core。
一个solr实例中的文件和文件夹的路径如下:
corefolder solr.xml
conf
solrconfig.xml schema.xml
即在该实例的目录下面需要有solr.xml文件,这在之前说过,不然无法正常使用solr,然后还有一个表示core的文件夹,这个文件夹下有一个conf文件夹,这个conf文件夹里至少有solrconfig.xml和schema.xml两个文件才能在上图的Add Core之后能够正确增加一个core。
到这里我相信还有很多人仍然是云里雾里,然后下面会介绍solr中的各文件夹的主要功能以及solr的主要配置文件的内容