windows安装solr5.3.1

Windows安装Solr5.3.1

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。提供了比Lucene更为丰富的查询语言, 同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面, 是一款非常优秀的全文搜索引擎。

  • 前期准备
  • 创建solr webapp
  • 创建core
  • 应用程序插入solr索引数据

前期准备


创建solr webapp

  • 第一步:将 solr-5.3.1\server\solr-webapp 下的 webapp 文件拷贝到 apache-tomcat-7\webapps 目录下,并将webapp重命名为solr(名字任意);
  • 第二步:将 solr-5.3.1\server\lib\ext 下的 log4j.properties 配置文件拷贝到 apache-tomcat-7\webapps\solr\WEB-INF\classes,如果WEB-INF下没有classes文件,创建;
  • 第三步:在 apache-tomcat-7\webapps\solr 下新建一个文件夹solrhome(名字任意),将 solr-5.3.1\server\solr 下所有的文件拷贝到新建的solrhome文件夹中;
  • 第四步:修改 apache-tomcat-7\webapps\solr\WEB-INF 下的 web.xml,找到如下代码:
<env-entry>
    <env-entry-name>solr/home</env-entry-name>
    <env-entry-value>/put/your/solr/home/here</env-entry-value>
    <env-entry-type>java.lang.String</env-entry-type>
</env-entry>
默认是注释掉的,放开注释,并将
<env-entry-value>/put/your/solr/home/here</env-entry-value>
中的值修改为第三步创建的solrhome目录,如:E:\MyFile\Tomcat\apache-tomcat-7\webapps\solr\solrhome;

创建core

  • 第一步:在solrhome文件夹下创建my_solr文件夹;
  • 第二步:将 solr-5.3.1\example\example-DIH\solr\solr 下的 conf 文件夹和 core.properties 文件拷贝到my_solr文件夹下;
  • 第三步:修改 core.properties 文件的内容:name=my_solr,这个name的值实际上就是core的名称,可以任意命名,为了保证统一和方便阅读,最好和文件夹名称一致;
  • 第四步:solr-5.0以上默认对schema的管理是使用managed-schema,不能手动修改,需要使用SchemaRestful的API操作。如果想手动修改配置,需要conf文件夹中managed-schema拷贝一份修改为schema.xml,在solrconfig.xml中修改如下:
<codecFactory class="solr.SchemaCodecFactory"/>  
<!-- 解除managed-schema管理模式 start -->
<schemaFactory class="ClassicIndexSchemaFactory"/>
<!-- 解除managed-schema管理模式 end --> 
重启tomacat7,可能会报错,查看tomcat日志发现,比如出现:
   缺少DataImporthandler的jar包异常等,那么将solr-5.3.1\dist下的solr-dataimporthandler-5.3.1.jar和solr-dataimporthandler-extras-5.3.1.jar拷贝到apache-tomcat-7、webapps\solr\WEB-INF\lib下。
   重启tomcat7,如果出现缺少其他jar包异常,则只需要添加相应jar包即可,访问http://localhost:8080/solr/index.html地址。

应用程序插入solr索引数据

  • 第一步:修改schema.xml文件,添加
<field name="content_test" type="text_general" indexed="true" stored="true" multiValued="true"/> 
  • 第二步:添加mmseg4j分词工具:
    在schema.xml文件末尾添加
<!-- mmseg4j 配置 -->
<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
    </analyzer>
</fieldtype>

<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word"/>
    </analyzer>
</fieldtype>

<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
    <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="E:/my_dic"/>
    </analyzer>
</fieldtype>
  • 第三步:添加索引数据
import java.io.IoException;
import java.util.ArrayList;
import java.util.List;

import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.common.SolrInputDocument;

public class InsertProgarm{
    //solr 服务器地址
    public static final String solrServerUrl = "http://localhost:8080/solr";
    //solrhome下的core
    public static final String solrCoreHome = "my_solr";
    //待索引、查询字段
    public static String[] docs = {
        "solr是一个独立的企业级搜索应用服务器",
        "它对外提供类似于Web-service的API接口",
        "用户可以通过http请求",
        "向搜索引擎服务器提交一定格式的XML文件生成索引",
        "它可以通过http Get操作提出查找请求",
        "并带的XML格式的返回结果"
    };
    public static void main(String[] args){
        SolrClient client = new HttpSolrClient(solrServerUrl+"/"+solrCoreHome);
        int i = 0;
        List<SolrInputDocument> solrDocs = new ArrayList<SolrInputDocument>();
        for(String content : docs){
            SolrInputDocument doc = new SolrInputDocument ();
            doc.addField("id",i++);
            doc.addField("content_test",content);
            solrDocs.add(doc);
        }
        try{
            client.add(solrDocs);
            client.commit();
        }catch(SolrServerException e){
            e.printStackTrace();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值