搭建solr服务器(solr和tomcat整合)

一、搭建solr服务器

1、新建apache-solr-3.5.0文件夹作为solr服务器,在apache-solr-3.5.0下新建home文件夹作为solr主目录,新建server文件夹作为服务器目录。

 

2、将solr中的example中的solr文件夹下全部内容拷贝到要作为服务器的home文件夹下。

3、将solr中的example中webapps下的solr.war拷贝到要作为服务器的server文件夹下并解压,解压后的文件重命名为solr。

4、修改home文件夹下solrconfig.xml文件,设置dataDir

5、设置tomcat的context,在tomcat的server.xml中添加。

6、为Context设置相应的环境变量,说明solr的home的主目录地址。

 

7、(第5、6步不可用的话)设置tomcat的context,在tomcat/conf/catalina/localhost下新建solr.xml,如果tomcat的conf文件夹下没有/catalina/localhost,可以自己创建,内容如下。

启动如果报错,取消VelocityResponseWriter输出格式,可将solrconfig.xml中queryResponseWriter末尾改为false

8、拷贝mmseg4j-all-1.8.5.jar到apache-solr-3.5.0\server\solr\WEB-INF\lib下

9、在schema.xml文件中添加mmseg4j分词器

9.1、首先在home下添加dic词库

9.2、配置mmseg4j分词器

10、至此本地就可以启动tomcat访问solr了

================================================================================================================================================

二、solr在项目中的应用

1、在schema.xml中添加自己的域

2、在索引域对象属性的set方法上添加@Field("域的name")

/**
 * 要添加的索引域对象,目的是将相应的对象转换为IndexField之后传输到IIndexService进行更新操作
 */
public class IndexField {
    private String id;
    private String title;
    private List<String> content;
    private List<String> atths;
    private int parentId;
    private int objId;
    private Date createDate;
    private String type;

    /**
     * 这个索引的唯一标识:如果是留言使用0_留言id来表示 如果是附件使用 留言ID_附件ID来表示
     */
    public String getId() {
        return id;
    }

    @Field
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 留言的标题
     */
    public String getTitle() {
        return title;
    }

    @Field("msg_title")
    public void setTitle(String title) {
        this.title = title;
    }

    /**
     * 留言的内容,转换后的内容(通过Tika转换)
     */
    public List<String> getContent() {
        return content;
    }

    @Field("msg_content")
    public void setContent(List<String> content) {
        this.content = content;
    }

    /**
     * 当前对象的父类id,如果是留言,该id为0
     */
    public int getParentId() {
        return parentId;
    }

    @Field("msg_pid")
    public void setParentId(int parentId) {
        this.parentId = parentId;
    }

    /**
     * 当前存储对象的id
     */
    public int getObjId() {
        return objId;
    }

    @Field("msg_id")
    public void setObjId(int objId) {
        this.objId = objId;
    }

    /**
     * 创建的时间
     */
    public Date getCreateDate() {
        return createDate;
    }

    @Field("msg_date")
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public List<String> getAtths() {
        return atths;
    }

    @Field("msg_atts")
    public void setAtths(List<String> atths) {
        this.atths = atths;
    }

    /**
     * 操作的对象类型,可能是Message或者Attachment
     */
    public String getType() {
        return type;
    }

    @Field("msg_type")
    public void setType(String type) {
        this.type = type;
    }
}

3、设置单例模式

public class SolrContext {
    private final static String URL = "http://localhost:8080/solr";
    private static CommonsHttpSolrServer server = null;

    static {
        try {
            server = new CommonsHttpSolrServer(URL);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }

    public static SolrServer getServer() {
        return server;
    }
}

 

转载于:https://www.cnblogs.com/df-xfz/p/6489256.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值