zoukankan      html  css  js  c++  java
  • [solr]

    这里忽略solr其他依赖环境的搭建,这里搭建solr5.2.1。使用Java1.7.0_17,tomcat使用6.0.36版本的。


    1、下载solr压缩文件

      Solr是Apache基金组织在lucene之上建立的一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。Lucene是一个全文检索引擎工具包,不是一个完整的应用服务器。下载Solr的地址为:http://mirrors.hust.edu.cn/apache/lucene/solr/,这个链接中只有常用的版本和最新的版本,如果需要下载其他版本的solr,请进入链接http://archive.apache.org/dist/lucene/solr/。这里我们下载solr-5.2.1版本的solr。

    2、解压solr-5.2.1.tgz,解压后目录为F:studysolr-5.2.1,下面我将该目录设为${SOLR_HOME}。

    3、将${SOLR_HOME}serverwebapps下的solr.war复制到tomcat的webapps目录下,并启动tomcat,tomcat会自动将war包解压。

    4、关闭tomcat,删除solr.war文件,修改solr文件夹名为solr5.2.1(可选)。

    5、复制jar包,将${SOLR_HOME}serverlibext目录下的所有jar复制到${TOMCAT_HOME}webappssolr5.2.1WEB-INFlib目录下。

    6、在E盘建立一个文件夹E:solrhome5.2.1,设置WEB-INF下的web.xml文件。我们之后将该文件夹设为${SOLR.SOLR.HOME}

    1 <env-entry>
    2    <env-entry-name>solr/home</env-entry-name>
    3    <env-entry-value>E:solrhome5.2.1</env-entry-value>
    4    <env-entry-type>java.lang.String</env-entry-type>
    5 </env-entry>

    7、复制文件${SOLR_HOME}/server/solr目录下的solr.xml和zoo.cfg两个文件到我们建立的${SOLR.SOLR.HOME}文件夹中。

    8、由于Solr5.2.1中的example core位于example文件夹中,是为了使用自带jetty添加的,所以我们就直接创建新的collection。

    8、在${SOLR.SOLR.HOME}文件夹中添加一个子目录core0/conf,在conf中创建两个文件,分别为:schemal.xml和solrconfig.xml文件。文件内容如下所示:

    <?xml version="1.0" ?>
    <schema name="core0" version="1.5">
        <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
        <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    
        <field name="id"        type="string"   indexed="true"  stored="true"  multiValued="false" required="true"/>
        <field name="name"      type="string"   indexed="true"  stored="true"  multiValued="false" />
        <field name="age"      type="long"   indexed="true"  stored="true"  multiValued="false" /> 
        <field name="_version_" type="long"     indexed="true"  stored="true"/>
    
        <uniqueKey>id</uniqueKey>
    
        <defaultSearchField>name</defaultSearchField>
    
        <solrQueryParser defaultOperator="OR"/>
    </schema>
    schema.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <config>
        <luceneMatchVersion>5.2.1</luceneMatchVersion>
        <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
    
        <dataDir>${solr.core0.data.dir:}</dataDir>
    
        <schemaFactory class="ClassicIndexSchemaFactory"/>
    
        <updateHandler class="solr.DirectUpdateHandler2">
            <updateLog>
                <str name="dir">${solr.core0.data.dir:}</str>
            </updateLog>
        </updateHandler>
    
        <requestHandler name="/get" class="solr.RealTimeGetHandler">
            <lst name="defaults">
                <str name="omitHeader">true</str>
            </lst>
        </requestHandler>  
    
        <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" /> 
    
        <requestDispatcher handleSelect="true" >
            <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" formdataUploadLimitInKB="2048" />
        </requestDispatcher>
    
        <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
        <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
        <requestHandler name="/update" class="solr.UpdateRequestHandler"  />
        <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
    
        <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
            <lst name="invariants">
                <str name="q">solrpingquery</str>
            </lst>
            <lst name="defaults">
                <str name="echoParams">all</str>
            </lst>
        </requestHandler>
    
        <admin>
            <defaultQuery>solr</defaultQuery>
        </admin>
    </config>
    solrconfig.xml

    9、启动Tomcat,访问http://localhost:8080/solr5.2.1/#/,我们可以看到访问以及成功,现在开始设置我们刚刚创建的core0这个collection。

    10、在solr web page中创建新的core。

       

    11、插入数据

      插入数据在这里介绍两种方式,第一种通过post.jar来插入数据,第二种通过solr web page来插入数据,我们先采用post.jar插入。

      使用post.jar进行插入数据:

      a) 复制${SOLR_HOME}exampleexampledocspost.jar到${SOLR.SOLR.HOME}core0目录下。

      b) 创建一个xml文件或者复制exampledocs文件夹下的ipod_other.xml文件,并进行修改。

      c) 结合我们之前创建的schema.xml文件,我们发现有id,name,age,_version_四个属性,其中_version_由solr自动创建。那么表示我们的xml文件中只能有id,name和age。内容参考如下:

    <add>
    <doc>
      <field name="id">HS-14</field>
      <field name="name">Tom</field>
      <field name="age">20</field>
    </doc>
    <doc>
      <field name="id">IW-02</field>
      <field name="name">Benedict Bill</field>
      <field name="age">19</field>
    </doc>
    <doc>
      <field name="id">IW-04</field>
      <field name="name">Bernard Bill</field>
      <field name="age">23</field>
    </doc>
    </add>
    ipod_other.xml

       d) 进入cmd命令行,移动到目标目录后,执行命令:

    java -Durl=http://localhost:8080/solr5.2.1/core0/update -Ddata=files -jar post.jar ipod_other.xml

        

       e) 进入web page查看文档,http://localhost:8080/solr5.2.1/#/~cores/core0,如下图,我们可以看到文档数量在增加。

      使用web page url进行数据的插入:

      a) 进入http://localhost:8080/solr5.2.1/#/core0/documents页面,这里我们采用json数据格式进行数据的插入:

      b) 添加要插入的数据后,截图如下:

      我们可以通过query来查看数据结果:如下:

    至此solr5.2.1的tomcat安装完成,在此过程中我遇到的问题,我会标志在下的:

    问题一:Can't find: admin-xxx.html

      这个问题在solr5.2.1中我也不知道为什么会存在,不过将${SOLR_HOME}/example/example-DIH/solr/solr/conf目录下将admin-extra.xml、admin-extra.menu-bottom.html和admin-extra.menu-top.html复制到${SOLR.SOLR.HOME}/core2/conf目录下,重新加载core即可。

    问题二: null:java.lang.RuntimeException:java.lang.LinkageError

      这个问题在apache-tomcat7.0.56中存在,我将tomcat换成tomcat6以后,就没有出现过了,问题好像是编译有冲突,不过我没找它,可以参考:

    https://jira.duraspace.org/browse/DS-2293https://issues.apache.org/jira/browse/SOLR-7060

    其他的就没有遇到啥问题啦,这个tomcat安装到此为止。

  • 相关阅读:
    HDU 6430 Problem E. TeaTree(虚树)
    hdu6437 Problem L.Videos(网络流)
    Rikka with Prefix Sum(组合数学)
    借教室
    2018年全国多校算法寒假训练营练习比赛(第五场)H Tree Recovery
    1296 营业额统计
    FZU oj Problem 2082 过路费
    大数乘法(适合k进制)
    重载小于号
    莫比乌斯
  • 原文地址:https://www.cnblogs.com/liuming1992/p/4747042.html
Copyright © 2011-2022 走看看