Solr 3.5 入門配置應用

資料來源:http://hi.baidu.com/lovewqww__/item/4aa88c9a8f860ddd1b49df80java

Solr 3.5 入門配置應用

機器上已安裝 : Tomcat 6.0    jdk1.7    mysql 5.0mysql

訪問 http://www.apache.org/dyn/closer.cgi/lucene/solr , 在這個網址裏選擇一個路徑 , 下載 solr 3.5 的版本web

2  solr3.5 在本機解壓縮之後 , apache-solr-3.5.0\example\webapps  目錄下的  solr.war  文件拷貝到  Tomcat 6.0 webapps 目錄下sql

3   Tomcat 6.0\webapps\solr  目錄裏 新建一個 文件夾  conf 數據庫

4   solr3.5 本機解壓縮文件夾  apache-solr-3.5.0\example  下的 multicore 文件夾 考本到  Tomcat 6.0\webapps\solr\conf  目錄下apache

5   Tomcat 6.0\conf\Catalina\localhost  目錄下新建一個  solr.xml 文件 , 裏面的內容以下app

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="${catalina.home}/webapps/solr.war" debug="0" crossContext="true" >
webapp

   <!-- 這裏配置的是 Solr 運行的 Home 目錄 -->jsp

   <Environment name="solr/home" type="java.lang.String" value="${catalina.home}/webapps/solr/conf/multicore" override="true" />
</Context>
ide

6   訪問你的 solr 項目   localhost:8080/solr  會顯示出兩個  core  ,  solr 正常運行

7   配置分詞 , 使用的是  mmseg4j 搜狗詞庫 ,

    下載地址 : http://code.google.com/p/mmseg4j/   ,  http://code.google.com/p/mmseg4j/downloads/detail?name=data.zip&can=2&q

8   把本地下載的 mmseg4j  解壓縮 , 把裏面的mmseg4j-all-1.8.5.jar 文件 拷貝到 Tomcat 6.0\webapps\solr\WEB-INF\lib 目錄下

9     Tomcat 6.0\webapps\solr  目錄下新建一個  dic  文件夾 , 新下載的  詞庫 拷貝到 dic 目錄下

10  \Tomcat 6.0\webapps\solr\conf\multicore\core0\conf\schema.xml  文件的  types 節點裏 添加以下節點 :

<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="E:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/solr/dic">
            </tokenizer>
        </analyzer>
    </fieldtype>
    <fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="maxword" dicPath="E:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/solr/dic">
            </tokenizer>
        </analyzer>
    </fieldtype>
    <fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
        <analyzer>
            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="E:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/solr/dic">
            </tokenizer>
        </analyzer>
    </fieldtype>

 

11  \Tomcat 6.0\webapps\solr\conf\multicore\core0\conf\schema.xml  文件的  fields 節點裏 添加以下節點 :

  <field name="simple" type="textSimple" indexed="true" stored="true" multiValued="true" />
  <field name="complex" type="textComplex" indexed="true" stored="true" multiValued="true" />
  <field name="text" type="textMaxWord" indexed="true" stored="true" multiValued="true" />

 

12  由於 solr3.5 裏有兩個 core , 因此針對 core1 重複 10,11 兩步

13  對分詞進行測試 , 訪問  http://localhost:8180/solr/core0/admin/analysis.jsp?highlight=on

13.1   Field[Name]   輸入   :  complex

13.2   Field Value(index)   輸入  :   中國銀行第一分行  ,   Field Value(index)  下面的 verbose outpu 點選

13.3   點擊     Analyze  按鈕查看分詞結果    :  中國銀行第一分行

 

14  此時 Solr3.5 已經能夠進行 分詞 , 接下來配置 solr 3.5 鏈接  mysql 數據庫 , 生成索引 , 進行分詞

14.1   下載 java mysql 驅動 , 本機解壓 mysql-connector-java-5.1.18-bin.jar,  而後拷貝到 Tomcat 6.0\webapps\solr\WEB-INF\lib  目錄下

14.2   \Tomcat 6.0\webapps\solr  目錄下 新建  db  文件夾

14.3   \Tomcat 6.0\webapps\solr\db 文件夾下面新建一個  db-data-config.xml 文件 , 內容以下 :

<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123" />
    <document name="messages">
        <entity name="message" transformer="ClobTransformer" query="select * from test1">
            <field column="ID" name="id" />
            <field column="Val" name="text" />
        </entity>
    </document>
</dataConfig>

 url="jdbc:mysql://localhost:3306/test" user="root" password="123"  這裏配置了 mysql 的鏈接路徑 , 用戶名 , 密碼

 <field column="ID" name="id" /><field column="Val" name="text" />  這裏配置的是 數據庫裏要索引的字段 , 注意name 11 步配置的

14.4   Tomcat 6.0\webapps\solr\conf\multicore\core0\conf 目錄下的 solrconfig.xml 文件裏 , 添加以下代碼 :

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">E:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/solr/db/db-data-config.xml</str> 
    </lst>
  </requestHandler>

「E:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/solr/db/db-data-config.xml」 14.3 配置文件的絕對路徑

 

14.5  Tomcat 6.0\webapps\solr\conf\multicore\core1\conf\solrconfig.xml   路徑裏重複 14.4

14.6  把本地下載解壓的 solr3.5 文件裏 , dist 目錄下的  apache-solr-dataimporthandler-3.5.0.jar apache-solr-dataimporthandler-extras-3.5.0.jar  Tomcat 6.0\webapps\solr\WEB-INF\lib  目錄下

14.7   solr3.5 鏈接 mysql 已經配置完成 , 測試讀取 mysql 生成 索引 , 訪問 :   http://localhost:8180/solr/core0/dataimport?command=full-import 

14.8   測試分詞查詢 , 訪問  http://localhost:8180/solr/core0/admin/  查詢數據庫裏索引列裏有的詞

 

注意 , 這僅僅是配置 solr3.5 鏈接 mysql 生成索引 , 能夠執行正常 詞語  的查詢 , 可是不能執行  對搜索短語的分詞 查詢

multicore  目錄下面多個 core 文件夾 , 每個都是一個接口 , 有獨立的配置文件 , 處理某一類數據

multicore/core0/conf/  目錄下的  schema.xml  文件 至關於數據表配置文件 , 它定義了加入索引的數據的數據類型 。文件裏有一個 <uniqueKey>id</uniqueKey> 的配置 , 這裏將 id 字段做爲索引文檔的惟一標示符 , 很是重要

 

FieldType 類型 , name 是這個 FieldType 的名稱 , class 指向了 org.apache.solr.analysis 包裏面對應的 class 名稱 , 用來定義這個類型的定義 。在 FieldType 定義的時候最重要的就是定義這個類型的數據在創建索引和進行查詢的時候要使用的分析器analyzer,包括分詞和過濾

Fields 字段結點內定義具體的字段(相似數據庫中的字段) , 就是 field , 包含 name , type(爲以前定義過的各類FieldType) , indexed(是否被索引) , stored(是否被存儲) , multiValued(是否有多個值)

copeField(賦值字段): 創建一個拷貝字段 , 將全部的全文字段複製到一個字段中 , 以便進行統一的檢索

相關文章
相關標籤/搜索