海水正藍

          面朝大海,春暖花開
          posts - 145, comments - 29, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2012年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          文章檔案

          搜索

          •  

          【轉】Solr 4.0部署

          Posted on 2012-12-03 16:48 小胡子 閱讀(7406) 評論(1)  編輯  收藏 所屬分類: Solr
          本文只是Solr 4.0的基礎教程,本人不經常寫東西,寫的不好請見諒,歡迎到群233413850進行討論學習。
                 先說一點部署之后肯定會有人用solrj,solr 4.0好像添加了不少東西,其中CommonsHttpSolrServer這個類改

          名為HttpSolrServer,我是找了半天才發現,大家以后可以注意。


               部署前準備:


          Solr 4.0 目錄:

                  

                  這里是我的部署方式,Tomcat安裝好之后把apache-solr-4.0.0\example\webapps下的solr.war文件拷貝到Tomcat下的

          Tomcat7.0\webapps目錄下,然后啟動Tomcat 報錯不用管,solr.war會自動解壓,之后打開Tomcat7.0\webapps\solr\WEB-

          INF\web.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.0\example\multicore所有文件都下拷貝

          到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>
          復制代碼
          name="",是庫的名字,instanceDir="",是目錄

                  每個目錄下包含兩個文件夾conf和data,data下有兩個文件夾index和tlog,index是存放生成的索引文件,tlog存放log,

          conf下是必要的配置文件schema.xml和solrconfig.xml,可以參考官方或者core里面的配置文件:

          1. <?xml version="1.0" ?>
          2. <schema name="example solr test" version="1.1">
          3.   <types>
          4.    <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
          5.    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
          6.   </types>

          7. <fields>   
          8.   <!-- general -->
          9.   <field name="id" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
          10.   <field name="type" type="string" indexed="true" stored="true" multiValued="false" />
          11.   <field name="name" type="string" indexed="true" stored="true" multiValued="false" />
          12.   <field name="_version_" type="long" indexed="true" stored="true"/>
          13. </fields>

          14. <!-- field to use to determine and enforce document uniqueness. -->
          15. <uniqueKey>id</uniqueKey>

          16. <!-- field for the QueryParser to use when an explicit fieldname is absent -->
          17. <defaultSearchField>name</defaultSearchField>

          18. <!-- SolrQueryParser configuration: defaultOperator="AND|OR" -->
          19. <solrQueryParser defaultOperator="OR"/>
          20. </schema>
          復制代碼

                  solrconfig.xml我還不是很懂,在這里就不講了,但是必須配置(好像是必須配):

          1. <?xml version="1.0" encoding="UTF-8" ?>
          2. <!-- 可以從core文件中copy過來 -->
          3. <config>
          4.   <luceneMatchVersion>LUCENE_40</luceneMatchVersion>
          5.   
          6.   <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>

          7.   <dataDir>${solr.solrtest.data.dir:}</dataDir>   這里solr.后面名字改掉

          8.   <updateHandler class="solr.DirectUpdateHandler2">
          9.     <updateLog>
          10.       <str name="dir">${solr.solrtest.data.dir:}</str>
          11.     </updateLog>
          12.   </updateHandler>

          13.   <requestHandler name="/get" class="solr.RealTimeGetHandler">
          14.     <lst name="defaults">
          15.       <str name="omitHeader">true</str>
          16.     </lst>
          17.   </requestHandler>
          18.   
          19.   <requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />

          20.   <requestDispatcher handleSelect="true" >
          21.     <requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" />
          22.   </requestDispatcher>
          23.   
          24.   <requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
          25.   <requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
          26.   <requestHandler name="/update" class="solr.UpdateRequestHandler"  />
          27.   <requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />

          28.   <requestHandler name="/admin/ping" class="solr.PingRequestHandler">
          29.     <lst name="invariants">
          30.       <str name="q">solrpingquery</str>
          31.     </lst>
          32.     <lst name="defaults">
          33.       <str name="echoParams">all</str>
          34.     </lst>
          35.   </requestHandler>

          36.   <!-- config for the admin interface -->
          37.   <admin>
          38.     <defaultQuery>solr</defaultQuery>
          39.   </admin>

          40. </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.0\example\exampledocs下的post.jar復制到 E:\SolrHome\exampledocs下

                  打開命令窗口CD 到E:\SolrHome\exampledocs下使用命令,Tomcat不要忘了開:

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






          如圖成功的添加的索引,看下E:\SolrHome\solrtest\data\index下的文件:


                  進入solr頁面:

                  

                  點擊Executu Query查詢,右側生成了地址可以打開查看,到此結束。



          評論

          # re: 【轉】Solr 4.0部署  回復  更多評論   

          2013-12-26 13:40 by 板上釘釘
          您好,我有一個問題:
          在我的機器上,solr配置成功后,會成功顯示那個頁面,右側內存可用量那些系統服務都可以工作,但是大約兩三分鐘之后,再次訪問會發現頁面仍然在,但是服務都沒了,而且每個core也都在
          主站蜘蛛池模板: 渭源县| 鸡西市| 彝良县| 西安市| 宜宾市| 宁津县| 舒兰市| 昌宁县| 肇庆市| 昌江| 寿阳县| 东山县| 平阴县| 遂平县| 宣汉县| 柞水县| 丹寨县| 黔东| 隆子县| 安宁市| 巴南区| 讷河市| 天镇县| 张掖市| 嵩明县| 高唐县| 运城市| 监利县| 台州市| 阜平县| 阳朔县| 石嘴山市| 庆城县| 馆陶县| 达州市| 深水埗区| 惠安县| 石嘴山市| 福建省| 吉安市| 蕲春县|