solr從服務器配置整合到項目實戰


整合網上資源后 100%可運行的配合步驟,部署在tomcat 為例。

一:下載solr,版本為5.2.1

地址:http://pan.baidu.com/s/1eRAdk3o

解壓出來。

1.在解壓的文件夾路徑: /server/webapps/solr.war

2.放到 tomcat的 webapps 文件夾下(tomcat官網自行下載)

3.運行  bin/startup.bat,

http://localhost:8080/solr     可以訪問。OK。

二、配置solr

1.進入tomcat下的項目路徑:webapps/solr/WEB-INF/web.xml

編輯修改,大約40行左右

2.取消掉注釋,輸入要存放的配置位置,並對應創建文件夾

 

3.把之前解壓的文件夾打開: /server/solr ,文件夾下所有文件復制到我們新建的文件夾下

 

 

4. 復制解壓的文件夾內 /server/lib/ext 下所有jar包 復制到 tomcat內 : /webapps/solr/WEB-INF/lib

 

 

5. 解壓文件夾下  /server/resources/log4j.properties 復制到 tomcat內 : /webapps/solr/WEB-INF

6. 解壓文件夾下 /dist/solr-dataimporthandler-5.2.1.jar 復制到 tomcat內 : /webapps/solr/WEB-INF/lib

配置完成。啟動 http://localhost:8080/solr


三、配置core

項目保持啟動

1.解壓文件夾下 /example/example-DIHsolr的 db文件夾 復制到我們創建的 solr_home 文件夾下

 

2.控制面板添加core。點擊 core admin

name和instanceDir 改成文件夾名。然后 Add Core

配置完成!

四、新建項目調用測試。

1.新建一個maven 項目

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.masz.solr</groupId>
    <artifactId>solrj</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>

        <dependency>
            <groupId>org.apache.solr</groupId>
            <artifactId>solr-solrj</artifactId>
            <version>5.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.5.6</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.9</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>

</project>

2.測試代碼

SolrTest.java

import java.io.IOException;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Before;
import org.junit.Test;


public class SolrTest {
    
    private static final String URL = "http://127.0.0.1:8080/solr/db";
    
    private HttpSolrClient server = null;
     
    @Before
    public void init() {
        // 創建 server
        server = new HttpSolrClient(URL);
    }
    
    @Test
    public void addDoc() {
 
        SolrInputDocument doc = new SolrInputDocument();
 
        doc.addField("id", "this is id");
        doc.addField("title", "this is document");
 
        try {
 
            UpdateResponse response = server.add(doc);
            // 提交
            server.commit();
 
            System.out.println("########## Query Time :" + response.getQTime());
            System.out.println("########## Elapsed Time :" + response.getElapsedTime());
            System.out.println("########## Status :" + response.getStatus());
            
        } catch (SolrServerException | IOException e) {
            System.err.print(e);
        }
    }
    
    
    /**
     * 查詢
     */
    @Test
    public void testQuery() {
        String queryStr = "*:*";
        SolrQuery params = new SolrQuery(queryStr);
        params.set("rows", 10);
        try {
            QueryResponse response = null;
            response = server.query(params);
            SolrDocumentList list = response.getResults();
            System.out.println("########### 總共 : " + list.getNumFound() + "條記錄");
            for (SolrDocument doc : list) {
                System.out.println("######### id : " + doc.get("id") + "  title : " + doc.get("title"));
            }
        } catch (SolrServerException e) {
            System.err.print(e);
        }
    }
}

舉例簡單測試代碼。更多操作查看官網或百度即可。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM