solr从服务器配置整合到项目实战

Posted 茫洋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        }
    }
}

举例简单测试代码。更多操作查看官网或百度即可。

 

 

以上是关于solr从服务器配置整合到项目实战的主要内容,如果未能解决你的问题,请参考以下文章

整合Solr与tomcat以及第一个core的配置

solr : springboot 整合 solr

maven项目下solr和spring的整合配置

springboot整合solr

maven项目下solr和spring的整合配置

教你使用solr搭建你的全文检索