Solr學習—入門

百度上對Solr的介紹:
Solr是一個高性能,採用Java5開發,基於Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更爲豐富的查詢語言,同時實現了可配置、可擴展並對查詢性能進行了優化,並且提供了一個完善的功能管理界面,是一款非常優秀的全文搜索引擎。

Solr安裝

我將在Windows下,完成對Solr的安裝,假設您已經下載了Solr並且解壓完成。

1.將solr部署到tomcat中。將/example/webapps下的solr.war解壓到tomcat中webapps目錄下。
這裏寫圖片描述
這裏寫圖片描述

2.複製jar包。將/example/lib/ext下面所有的jar加入到tomcat中webapps\solr\WEB-INF\lib下。

這裏寫圖片描述

這裏寫圖片描述

3.複製exampl/solr文件夾到其他目錄,並且修改webapps\solr\WEB-INF\中的web.xml文件。爲了方便我直接將其複製到C盤根目錄下

這裏寫圖片描述
修改web.xml文件。

這裏寫圖片描述

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>C:solr</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
</env-entry>

4.此時solr已經安裝好了,開啓你的tomcat,在瀏覽器中輸入localhost:8080/solr即可。
這裏寫圖片描述

Solr使用

1.如果要實現中文搜索,我們必須加入額外的中文分詞器,這裏我使用了IK Analyzer。打開解壓文件,

這裏寫圖片描述

將.jar包添加到tomcat\webapps\solr\WEB-INF\lib中。

這裏寫圖片描述

並且將IKAnalyzer.cfg.xml和stopword.dic加入solr\WEB-INF\classes中。

這裏寫圖片描述

2.配置Schema.xml,將上面配置的中文分詞器加入solr中的,找到fieldType,加入IKAnalyzer。

Schema.xml文件位置:
這裏寫圖片描述

<fieldType name="text_ik" class="solr.TextField">
    <analyzer type="index" isMaxWordLength="false"           class="org.wltea.analyzer.lucene.IKAnalyzer"/>
    <analyzer type="query" isMaxWordLength="true"        class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

接着加入索引字段item_title。

<field name="item_title" type="text_ik" indexed="true" stored="true"/>

3.在Java中我們可以藉助SolrJ來使用Solr。

  • 插入數據到Solr
@Test
    public void testSolrJ() throws SolrServerException, IOException{
        //創建一個到solr的連接
        SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
        //創建一個文檔對象,可以理解爲數據庫的一條記錄
        SolrInputDocument document = new SolrInputDocument();
        //添加域,可以理解爲爲記錄中各個字段設置值
        document.addField("id", "測試一下");
        document.addField("item_title", "測試field");
        //提交到索引庫
        server.add(document);
        server.commit();
    }

此時打開我們的Solr,執行搜索id:測試一下,看到記錄確實插入了Solr中。

這裏寫圖片描述

  • 查詢數據
@Test
    public void testQuery() throws SolrServerException{
        SolrServer server = new HttpSolrServer("http://localhost:8080/solr");
        //創建一個搜索對象
        SolrQuery query = new SolrQuery();
        query.setQuery("id:測試一下");
        //執行搜索
        QueryResponse result = server.query(query);
        for (SolrDocument solrDocument : result.getResults()) {
            System.out.println("id:"+solrDocument.get("id"));
            System.out.println("item_title:"+solrDocument.get("item_title"));
        }

    }

結果如下,說明我們成功查詢倒了數據。

這裏寫圖片描述

總結

以上內容只適合第一次接觸Solr的同學,講的比較簡單,只是爲了介紹如何使用Solr。還有很多內容,如schema.xml文件中各個節點的具體含義,SolrQuery的其他屬性如何設置,如何將Solr與Spring和ORM框架整合等等會在之後帶來介紹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章