SolrCloud实战(三):solrj API

本篇文章用几个简单的Java示例测试下在SolrCloud集群环境下solrj API的用法。

1、maven引入solrj

    <dependency>
      <groupId>org.apache.solr</groupId>
      <artifactId>solr-solrj</artifactId>
      <version>7.7.3</version>
    </dependency>

2、CloudSolrClient增删改查

CloudSolrClient通过zookeeper获取集群中solr地址,再发起索引增删改查。

public class SolrCloudClientTest {

    private CloudSolrClient cloudSolrClient = null;

    @Before
    public void init(){
        //初始化CloudSolrClient
        //zookeeper集群地址
        List<String> zkHosts = new ArrayList<>();
        zkHosts.add("192.168.31.200:2181");
        zkHosts.add("192.168.31.201:2181");
        zkHosts.add("192.168.31.202:2181");

        //SolrCLoud在zookeeper中的根路径
        Optional<String> zkChroot = Optional.of("/solr");
        CloudSolrClient.Builder builder = new CloudSolrClient.Builder(zkHosts,zkChroot);
        cloudSolrClient = builder.build();
        cloudSolrClient.setZkConnectTimeout(30000);
        //默认索引集
        cloudSolrClient.setDefaultCollection("book");
        cloudSolrClient.connect();
    }

    /**
     * 新增
     * @throws IOException
     * @throws SolrServerException
     */
    @Test
    public void testAdd() throws IOException, SolrServerException {
        SolrInputDocument doc = new SolrInputDocument();
        doc.addField("id","4444");
        doc.addField("bookname","PHP入门与精通");
        doc.addField("shopid","s001");
        doc.addField("base_price",Double.valueOf(30));
        doc.addField("shop_price",Double.valueOf(40));
        doc.addField("pin_price",Double.valueOf(38));
        doc.addField("isPintuan","1");
        UpdateResponse response = cloudSolrClient.add(doc);
        System.out.println(response);
    }


    /**
     * 查询
     * @throws IOException
     * @throws SolrServerException
     */
    @Test
    public void testQuery() throws IOException, SolrServerException {
        SolrQuery request = new SolrQuery();
        request.set("q","id:1111");
        QueryResponse response = cloudSolrClient.query(request);
        System.out.println(response);
    }


    /**
     * 根据id删除
     * @throws IOException
     * @throws SolrServerException
     */
    @Test
    public void testDeleteByID() throws IOException, SolrServerException {
        String id = "1111";
        UpdateResponse response = cloudSolrClient.deleteById(id);
        System.out.println(response);
    }

    /**
     * 根据查询语句删除
     * @throws IOException
     * @throws SolrServerException
     */
    @Test
    public void testDeleteByQUery() throws IOException, SolrServerException {
        String query = "bookname:PHP入门与精通";
        UpdateResponse response = cloudSolrClient.deleteByQuery(query);
        System.out.println(response);
    }

    @After
    public void close() throws IOException {
        cloudSolrClient.close();
    }

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • solrcloud集群搭建 1 什么是SolrCloud 1.1 什么是SolrCloud SolrCloud(s...
    zianL阅读 1,426评论 0 1
  • 两年前用过solr5.1版本的,当时只是简单入个门,拿来在项目里建个全文索引,然后再query,其他什么也没做,还...
    Coselding阅读 3,166评论 3 22
  • 1. 什么是Solr Solr是一个独立的基于全文检索的企业级搜索应用服务器。将文档通过Http利用XML加载到S...
    Demon先生阅读 232评论 0 0
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,671评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,147评论 0 4