zoukankan      html  css  js  c++  java
  • Solr 4.0 基础教程

     本文只是Solr 4.0的基础教程,本人不经常写东西,写的不好请见谅,欢迎到群233413850进行讨论学习。

            转载请标明原文地址:http://my.oschina.net/zhanyu/blog/86147

           先说一点部署之后肯定会有人用solrj,solr 4.0好像添加了不少东西,其中CommonsHttpSolrServer这个类改名为HttpSolrServer,我是找了半天才发现,大家以后可以注意。

         部署前准备:

    • Solr 4.0 必须运行在Java1.5 或更高版本的Java 虚拟机中,运行标准Solr 服务只需要安装JRE 即可。
    • Solr 4.0 :  http://www.apache.org/dyn/closer.cgi/lucene/solr/4.0.0
    • 本文以Tomcat7.0  进行演示。
    • 如果出现错误无法运行,请更换更高版本的JDK,Solr各版本支持JDK的版本不尽相同,可以查阅官方中各个版本的不同。

        Solr 4.0 目录:

            

            这里是我的部署方式,Tomcat安装好之后把apache-solr-4.0.0examplewebapps下的solr.war文件拷贝到Tomcat下的Tomcat7.0webapps目录下,然后启动Tomcat 报错不用管,solr.war会自动解压,之后打开Tomcat7.0webappssolrWEB-INFweb.xml,把下面代码复制进去放到后面:


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



                其中  E:SolrHome  是存放solr配置文件等,修改为自己文件的位置,为了看着更清晰直观,你可以这样放:

                E:Tomcat7.0

                E:apache-solr-4.0.0

                E:SolrHome


                现在可以重新启动Tomcat了,没有报错,通过这个地址进入Solr4.0页面:http://localhost:8080/solr 

            

                如果进入以上界面说明成功了,没有成功的话页面会有ERROR提示。

                如图:左侧core0,core1等是solr 4.0中的示例,core0和core1位于apache-solr-4.0.0examplemulticore所有文件都下拷贝到E:SoleHome下,core0和core1可以理解为两个库,都是独立的,用来存放索引以及生成这些索引文件所需要的配置文件,solrtest是我测试建立的目录,如图:

            没添加一个库都需要在solr.xml里面进行配置,这个比较简单


    1 <solr persistent="false">
    2   <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">
    3     <core name="core0" instanceDir="core0" />
    4     <core name="core1" instanceDir="core1" />
    5     <core name="collection1" instanceDir="collection1" />
    6     <core name="solrtest" instanceDir="solrtest"/>
    7   </cores>
    8 </solr>
    1 name="",是库的名字,instanceDir="",是目录


            每个目录下包含两个文件夹conf和data,data下有两个文件夹index和tlog,index是存放生成的索引文件,tlog存放log,conf下是必要的配置文件schema.xml和solrconfig.xml,可以参考官方或者core里面的配置文件:

            

    01 <?xml version="1.0" ?>
    02 <schema name="example solr test" version="1.1">
    03   <types>
    04    <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
    05    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    06   </types>
    07  
    08  <fields>  
    09   <!-- general -->
    10   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
    11   <field name="type" type="string" indexed="true" stored="true" multiValued="false" />
    12   <field name="name" type="string" indexed="true" stored="true" multiValued="false" />
    13   <field name="_version_" type="long" indexed="true" stored="true"/>
    14  </fields>
    15  
    16  <!-- field to use to determine and enforce document uniqueness. -->
    17  <uniqueKey>id</uniqueKey>
    18  
    19  <!-- field for the QueryParser to use when an explicit fieldname is absent -->
    20  <defaultSearchField>name</defaultSearchField>
    21  
    22  <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
    23  <solrQueryParser defaultOperator="OR"/>
    24 </schema>

            solrconfig.xml我还不是很懂,在这里就不讲了,但是必须配置(好像是必须配):

            

    01 <?xml version="1.0" encoding="UTF-8" ?>
    02 <!-- 可以从core文件中copy过来 -->
    03 <config>
    04   <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
    05    
    06   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>
    07  
    08   <dataDir>${solr.solrtest.data.dir:}</dataDir>   solr.solrtest.data.dir存放的是索引目录
    09  
    10   <updateHandler class="solr.DirectUpdateHandler2">
    11     <updateLog>
    12       <str name="dir">${solr.solrtest.data.dir:}</str>
    13     </updateLog>
    14   </updateHandler>
    15  
    16   <requestHandler name="/get" class="solr.RealTimeGetHandler">
    17     <lst name="defaults">
    18       <str name="omitHeader">true</str>
    19     </lst>
    20   </requestHandler>
    21    
    22   <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
    23  
    24   <requestDispatcher handleSelect="true" >
    25     <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
    26   </requestDispatcher>
    27    
    28   <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
    29   <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
    30   <requestHandler name="/update" class="solr.UpdateRequestHandler"  />
    31   <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />
    32  
    33   <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
    34     <lst name="invariants">
    35       <str name="q">solrpingquery</str>
    36     </lst>
    37     <lst name="defaults">
    38       <str name="echoParams">all</str>
    39     </lst>
    40   </requestHandler>
    41  
    42   <!-- config for the admin interface -->
    43   <admin>
    44     <defaultQuery>solr</defaultQuery>
    45   </admin>
    46  
    47 </config>

            之后在exampledocs目录下手动创建一个solr1.xml文件:

    1 <?xml version="1.0" ?>
    2 <add>
    3   <doc>
    4     <field name="id">solr1</field>
    5     <field name="type">type1</field>
    6     <field name="name">my solr test</field>
    7   </doc>
    8 </add>

             跟schema.xml中的字段对应,好了现在可以提交数据了,这里在window命令窗口提交数据,把E:apache-solr-4.0.0exampleexampledocs下的post.jar复制到 E:SolrHomeexampledocs下

            打开命令窗口CD 到E:SolrHomeexampledocs下使用命令,Tomcat不要忘了开:

    java -Durl=http://localhost:8080/solr/solrtest/update -Ddata=files -jar post.jar solr1.xml


    如图成功的添加的索引,看下E:SolrHomesolrtestdataindex下的文件:


            进入solr页面:

            

            点击Executu Query查询,右侧生成了地址可以打开查看,到此结束。

  • 相关阅读:
    洗礼灵魂,修炼python(66)--爬虫篇—BeauitifulSoup进阶之“我让你忘记那个负心汉,有我就够了”
    洗礼灵魂,修炼python(65)--爬虫篇—BeautifulSoup:“忘掉正则表达式吧,我拉车养你”
    洗礼灵魂,修炼python(64)--爬虫篇—re模块/正则表达式(2)
    洗礼灵魂,修炼python(63)--爬虫篇—re模块/正则表达式(1)
    洗礼灵魂,修炼python(62)--爬虫篇—模仿游戏
    洗礼灵魂,修炼python(61)--爬虫篇—【转载】requests模块
    SAPCertifiedTechnologyAssociate-SystemAdministration(SAPHANAasaDatabase)
    单例模式
    内部类
    面向对象
  • 原文地址:https://www.cnblogs.com/daichangya/p/12958486.html
Copyright © 2011-2022 走看看