菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
438
0

[solr] - SolrJ增删查

原创
05/13 14:22
阅读数 32660

使用SolrJ进行对Solr的增、删、查功能。

参考引用:

http://wiki.apache.org/solr/Solrj

 

Eclipse中新建一个项目:TestSolr

 

其中SorlJ的Lib包包括:

 

代码:

建一个Item Entity

package com.my.entity;

import java.util.Date;

import org.apache.solr.client.solrj.beans.Field;

public class Item {
    @Field
    private long id;
    @Field
    private String subject;
    @Field
    private String content;
    @Field
    private Date last_update_time;
    
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public Date getLast_update_time() {
        return last_update_time;
    }
    public void setLast_update_time(Date last_update_time) {
        this.last_update_time = last_update_time;
    }
}

 

测试代码:

package com.my.solr;

import java.io.IOException;
import java.util.Date;
import java.util.List;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrQuery.ORDER;
import org.apache.solr.client.solrj.SolrQuery.SortClause;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.client.solrj.response.QueryResponse;

import com.my.entity.Item;

public class TestSolr {

    public static void main(String[] args) throws IOException, SolrServerException {
        String url = "http://localhost:8899/solr/mycore";
        HttpSolrServer core = new HttpSolrServer(url);
        core.setMaxRetries(1);
        core.setConnectionTimeout(5000);
        core.setParser(new XMLResponseParser()); // binary parser is used by default
        core.setSoTimeout(1000); // socket read timeout
        core.setDefaultMaxConnectionsPerHost(100);
        core.setMaxTotalConnections(100);
        core.setFollowRedirects(false); // defaults to false
        core.setAllowCompression(true);

        // ------------------------------------------------------
        // remove all data
        // ------------------------------------------------------
        core.deleteByQuery("*:*");

        // ------------------------------------------------------
        // add item
        // ------------------------------------------------------
        Item item = new Item();
        item.setId(1);
        item.setSubject("solrj test");
        item.setContent("this is my solrj test, ha ha.");
        item.setLast_update_time(new Date());
        core.addBean(item);

        // ------------------------------------------------------
        // add unicode item
        // ------------------------------------------------------
        Item item_cn = new Item();
        item_cn.setId(2);
        item_cn.setSubject("我的测试");
        item_cn.setContent("这是一个神奇的网站!");
        item.setLast_update_time(new Date());
        core.addBean(item_cn);

        // commit
        core.commit();

        // ------------------------------------------------------
        // search
        // ------------------------------------------------------
        SolrQuery query = new SolrQuery();
        query.setQuery("*:*");
        query.addSort(new SortClause("id", ORDER.desc));
        QueryResponse response = core.query(query);
        List<Item> items = response.getBeans(Item.class);
        for (Item i : items) {
            System.out.println("id=" + i.getId() + "\tcontent=" + i.getContent());
        }
    }
}

 

运行结果:

发表评论

0/200
438 点赞
0 评论
收藏