前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >solrCloud相关的管理命令及solrj使用

solrCloud相关的管理命令及solrj使用

原创
作者头像
待你如初见
发布2018-09-29 14:02:44
1.3K0
发布2018-09-29 14:02:44
举报
文章被收录于专栏:待你如初见待你如初见

solrCloud

如何创建新集群(创建一个索引库)

代码语言:txt
复制
http://替换为IP/地址:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=3&maxShardsPerNode=8&property.schema=schema.xml&property.config=solrconfig.xml

接口参数说明:
action: 表示执行的操作 CREATE 创建
name: 新集群的名称
numShards: 分片数
replicationFactor: 每个分片的节点数
maxShardsPerNode: 设置每个分片的最大节点数, 默认为1
property.schema: 指定使用的schema文件   (注意, 此文件必须在zookeeper上存在)
property.config: 指定使用的solrConfig文件 (注意, 此文件必须在zookeeper上存在)

如何删除core

代码语言:txt
复制
http://192.168.72.141:8080/solr/admin/collections?action=DELETE&name=collection1

查询所有的Core

代码语言:txt
复制
http://192.168.72.141:8080/solr/admin/collections?action=LIST

显示core的状态

代码语言:txt
复制
http://192.168.72.141:8080/solr/admin/collections?action=DELETE&name=collection1

分裂shard(扩展容量)

  • 分裂: 就是将某个分片分成两个分片
  • 注意: 一旦分裂后, 虽然原来的分片还可以提供服务, 但是已经不再保存数据, 会将数据保存到新的分裂后的分片
代码语言:txt
复制
http://192.168.72.141:8080/solr/admin/collections?action=SPLITSHARD&collection=collection1&shard=shard1

参数说明:
shard: 指定要分裂的分片
  • 删除某个分片

注意: 删除的分片必须是已经被分裂的, 或者是已经无法提供服务的

代码语言:txt
复制
http://192.168.72.141:8080/solr/admin/collections?action=DELETESHARD&shard=shard2&collection=collection2

使用java连接集群, 完成基本的索引库操作

  • 1.1 导入相关的pom依赖
代码语言:txt
复制
<dependencies>
    <dependency>
        <groupId>org.apache.solr</groupId>
        <artifactId>solr-solrj</artifactId>
        <version>4.10.2</version>
    </dependency>
        <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging-api</artifactId>
        <version>1.1</version>
    </dependency>
</dependencies>

编写代码

代码语言:txt
复制
 //创建索引
    @Test
    public void createIndexToSolrCloud() throws IOException, SolrServerException {
        //1. 创建连接solrCloud的服务对象
        //String zkHost: 需要传递zookeeper集群的地址
        String zkHost="192.168.*.*:2181,192.168.*.*:2181,192.168.*.*:2181";
        CloudSolrServer cloudSolrServer = new CloudSolrServer(zkHost);
        //1.1 设置连接那个solr的索引库
        cloudSolrServer.setDefaultCollection("collection2");
        //1.2 可选的参数
        //设置连接zookeeper的时间
        cloudSolrServer.setZkClientTimeout(5000);
        //设置获取和solr的连接的时间
        cloudSolrServer.setZkConnectTimeout(5000);
        //3. 执行获取连接
        cloudSolrServer.connect();

        //4. 添加索引操作
        SolrInputDocument doc = new SolrInputDocument();
        doc.addField("id","1");
        doc.addField("title","你好,solrCloud");
        cloudSolrServer.add(doc);

        //5. 执行提交
        cloudSolrServer.commit();
    }
代码语言:txt
复制
 //删除索引
    @Test
    public void deleteIndexToSolrCloud() throws IOException, SolrServerException {
        //1. 创建连接solrCloud的服务对象
        //String zkHost: 需要传递zookeeper集群的地址
        String zkHost="192.168.*.*:2181,192.168.*.*:2181,192.168.*.*:2181";
        CloudSolrServer cloudSolrServer = new CloudSolrServer(zkHost);
        //1.1 设置连接那个solr的索引库
        cloudSolrServer.setDefaultCollection("collection2");
        //1.2 可选的参数
        //设置连接zookeeper的时间
        cloudSolrServer.setZkClientTimeout(5000);
        //设置获取和solr的连接的时间
        cloudSolrServer.setZkConnectTimeout(5000);
        //3. 执行获取连接
        cloudSolrServer.connect();

        //4. 添加索引操作
        cloudSolrServer.deleteById("1");
        //5. 执行提交
        cloudSolrServer.commit();

    }
代码语言:txt
复制
//查询索引
    @Test
    public void queryIndexToSolrCloud() throws IOException, SolrServerException {
        //1. 创建连接solrCloud的服务对象
        //String zkHost: 需要传递zookeeper集群的地址
        String zkHost="192.168.*.*:2181,192.168.*.*:2181,192.168.*.*:2181";
        CloudSolrServer cloudSolrServer = new CloudSolrServer(zkHost);
        //1.1 设置连接那个solr的索引库
        cloudSolrServer.setDefaultCollection("collection2");
        //1.2 可选的参数
        //设置连接zookeeper的时间
        cloudSolrServer.setZkClientTimeout(5000);
        //设置获取和solr的连接的时间
        cloudSolrServer.setZkConnectTimeout(5000);
        //3. 执行获取连接
        cloudSolrServer.connect();

        //4. 添加索引操作
        SolrQuery query = new SolrQuery("*:*");
        QueryResponse response = cloudSolrServer.query(query);

        SolrDocumentList documentList = response.getResults();
        for (SolrDocument doc : documentList) {
            Object id = doc.get("id");
            Object title = doc.get("title");
            System.out.println(id+"  "+title);
        }

    }

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • solrCloud
    • 如何创建新集群(创建一个索引库)
      • 如何删除core
        • 查询所有的Core
          • 显示core的状态
            • 分裂shard(扩展容量)
              • 使用java连接集群, 完成基本的索引库操作
                • 编写代码
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档