solr 5.3.2 安装及中文分词

来源:互联网 发布:淘宝怎么找代理商 编辑:程序博客网 时间:2024/05/20 09:22

1、下载:http://archive.apache.org/dist/lucene/solr/

分词jar:http://download.csdn.net/detail/dopamy_busymonkey/9761847

http://download.csdn.net/detail/dopamy_busymonkey/9761865


2、拷贝D:\softwares\solr-5.3.2\server\solr-webapp\webapp下的全部文件到tomcat(新建一个项目)这里我的项目名是solr,然后把上面下载的两个分词jar包拷贝到WEB-INF/lib文件夹下,然后拷贝D:\softwares\solr-5.3.2\server\solr文件夹到一个自己的目录下(solr的CORE)


3、修改web.xml

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

这段默认是注释起来的,把它调出来,顺便改成上一步中CORE的路径,这里我直接拷贝到F盘的。


4、新建CORE,在solr文件夹下新建一个my_solr文件夹,然后在下面新建一个文件:core.properties

内容是:name=mysolr

然后把F:\solr\configsets\basic_configs\conf文件夹拷贝到自己的my_solr下,然后在新建一个data文件夹:


5、配置一下中文分词,schema.xml打开,添加一个Field:

<field name="value1" type="text_cn" indexed="true" stored="true" required="true" multiValued="false" /> 

这里类型是text_cn是自己定义的:

在文件的后面添加该中文分词配置:

<fieldType name="text_cn" class="solr.TextField">    <analyzer type="index">      <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="true"/>    </analyzer>    <analyzer type="query">      <tokenizer class="com.hankcs.lucene.HanLPTokenizerFactory" enableIndexMode="false"/>    </analyzer>  </fieldType>


6、下面是Java测试代码:

package com.busymonkey;import org.apache.solr.client.solrj.*;import org.apache.solr.client.solrj.impl.HttpSolrClient;import org.apache.solr.client.solrj.response.QueryResponse;import org.apache.solr.common.SolrDocument;import org.apache.solr.common.SolrDocumentList;import org.apache.solr.common.SolrInputDocument;import java.io.IOException;import java.util.ArrayList;import java.util.List; /** * solr 5.3.0 * Created by daxiong on 2015/10/23. */public class MySolr { //solr url    public static final String URL = "http://localhost:9090/solr";    //solr应用    public static final String SERVER = "mysolr";    //待索引、查询字段    public static String[] docs = {"Solr是    一个独立的企业级搜索应用服务器",                                    "它对外提供类似于Web-service的API接口",                                    "用户可以通过http请求",                                     "向搜索    引擎服务器提交一定格式的XML文件生成索引",                                    "也可以通过Http Get操作提出查找请求",                                    "并得到XML格式的返回结果"};     public static SolrClient getSolrClient(){        return new HttpSolrClient(URL+"/"+SERVER);    }     /**     * 新建索引     */    public static void createIndex(){        SolrClient client = getSolrClient();        int i = 0;        List<SolrInputDocument> docList = new ArrayList<SolrInputDocument>();        for(String str : docs){            SolrInputDocument doc = new SolrInputDocument();            doc.addField("id",i++);            doc.addField("value1", str);            docList.add(doc);        }        try {            client.add(docList);            client.commit();        } catch (SolrServerException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    };     /**     * 搜索     */    public static void search(){        SolrClient client = getSolrClient();        SolrQuery query = new SolrQuery();        query.setQuery("value1:搜索");        QueryResponse response = null;        try {            response = client.query(query);            System.out.println(response.toString());            System.out.println();            SolrDocumentList docs = response.getResults();            System.out.println("文档个数:" + docs.getNumFound());            System.out.println("查询时间:" + response.getQTime());            for (SolrDocument doc : docs) {                System.out.println("id: " + doc.getFieldValue("id") + "      content: " + doc.getFieldValue("value1"));            }        } catch (SolrServerException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }     public static void main(String[] args) {        createIndex();        search();    }}


0 0
原创粉丝点击