solr配置及Java实现

来源:互联网 发布:淘宝的数字证书在哪里 编辑:程序博客网 时间:2024/06/06 20:43

                                                                             第一篇   solr配置

一、下载solr(地址:http://lucene.apache.org/solr/,并解压到一个目录中

 

Bin目录是执行脚本。Dist是构建完的jar包Doc文档Example样例核配置。Serversolrwebapp和默认的solr_home目录。

Cmd进入在window命令窗口

(1)solr/bin/路径下启动

solr start

(2)暂停solr

solr stop -p 8983

(3)查看solr的状态及属性

solr status

(4)创建一个核,来存储产品表中的数据

solr create -c demo

(5)成功之后,访问地址:

http://localhost:8983/solr

 

 

二、创建一个核,来存储产品表中的数据

 

三、solr的核心结构

  1solr-webapp,就是我们上面访问的这个web项目。

(2)Solr-home,solr主目录,里面包含solr基本配置,还包含一多个核的配置。

(3)Core,核集群部署下叫collection一个core对应一个文档集合。类似于一张表

(4)Document,文档,solrlucene将要搜索的东西抽象成文档。类似于数据库一行记录。

(5)Field 一个document包含多个field每个field类型是fieldTypeField类似数据库字段。

(6)Schema.xml或者managed-schema描述document的文件类似于数据库结构

 

四、配置中文分词

  1IK中文分词器

(1)准备好ik分词器的jar包,可以自己编译,也可以下载我生成的。然后把它复制到tomcat/webapp/solr/WEB-INF/lib里面。

 

2打开/conf/managed-schema文件,追加如下配置

 

 

 

 

  2mmseg4j中文分词器

   1 下载地址:https://github.com/chenlb/mmseg4j-solr

jar下载下来,放到solr-webappWEB-INF/lib目录

 

  

   2)在solr-home/test/conf/managed-schema 文件中配置能够中文分词的fieldType

    


重新启动solr之后,点击分析器

 

也可以通过地址来查看:http://localhost:8983/solr/demo/analysis/field?q=name:江西财经大学&analysis.fieldtype=text_cn&indent=on&wt=json

四、配置完fieldType接着managed-schema配置field字段(注:此处的field必须和db-data-config.xml中的数据库字段一一对应)

 

五、配置db-data-config.xml

demo/config文件下创建db-data-config.xml

 

<dataConfig>    <dataSource driver="com.mysql.jdbc.Driver"                url="jdbc:mysql://localhost:3306/dmeo?useUnicode=true&characterEncoding=utf8"                user="root"                password="root"/>    <document>        <entity name="test" query="select id,name,phone from test"><field name="id" column="id" />            <field name="name" column="name" /><field name="phone" column="phone"/>        </entity>    </document></dataConfig>


 

 

 

 

 

新建data-import.properties文件。从solrexample-DIH/solr/db中复制htmljs文件solr-home/demo/conf目录下。

 

 

六、配置数据库导入工具(在solrconfig.xml文件中配置

 

 

  <requestHandler name="/dataimport" class="solr.DataImportHandler">    <lst name="defaults">      <str name="config">db-data-config.xml</str>    </lst>  </requestHandler>


 


配置导入工具之后,试着导入数据

 

 

七、指定solr_home路径

 

完成上面操作之后

 

 

solr访问地址:http://localhost:8983/solr/demo/select?q=*&fq=name:* AND phone:*&start=0&rows=10&sort=name desc


                                                                 第二篇   Java中实现

一、maven配置

<!-- 搜索所需要的jar包 -->

<dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>5.3.1</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.4.1</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.1</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId><version>4.4.1</version></dependency><dependency><groupId>org.noggit</groupId><artifactId>noggit</artifactId><version>0.6</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>1.4</version></dependency>     <dependency>   <groupId>org.codehaus.woodstox</groupId>           <artifactId>stax2-api</artifactId>          <version>3.1.4</version>     </dependency>      <dependency>             <groupId>org.codehaus.woodstox</groupId>             <artifactId>woodstox-core-asl</artifactId>              <version>4.4.1</version>       </dependency>       <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-simple</artifactId>            <version>1.7.7</version>        </dependency>        <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.0.4</version></dependency>


<!-- 搜索所需要的jar包 -->

二、代码中实现

public class Test {    public static void main(String[] args) throws MalformedURLException {             query();    }    public static SolrClient getClient() {        String url = "http://localhost:8983/solr/demo/";        SolrClient solr = new HttpSolrClient(url);        return solr;    }    /**     * 查询     */    public static void query() {        SolrClient solr = getClient();        SolrQuery query = new SolrQuery();         query.set("q", "*:*");        try {            QueryResponse response = solr.query(query);            SolrDocumentList list = response.getResults();            System.out.println("共查询出" + list.getNumFound() + "条记录");         } catch (SolrServerException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }


原创粉丝点击