zoukankan      html  css  js  c++  java
  • 6.solr学习速成之multicore查询

    查询关联多个core

    再新建一个core

    向每个core添加索引,修改

    final static String SOLR_URL = "http://localhost:8080/solr/test";

    即可

    多个core的关联查询

    package com.liucheng.solr;
    import org.apache.solr.client.solrj.impl.HttpSolrClient;
    public class solrServer {
        private solrServer(){};
        final static String SOLR_URL = "http://localhost:8080/solr/core1";
        private static HttpSolrClient server = null;
        public static HttpSolrClient getServer(){
            if(server == null){
                server = new HttpSolrClient(SOLR_URL);
                server.setDefaultMaxConnectionsPerHost(1000);
                server.setMaxTotalConnections(10000);
                server.setConnectionTimeout(60000);
                server.setSoTimeout(60000);
                server.setFollowRedirects(false);
                server.setAllowCompression(true);
            }
            return server;
        }
    }
    package com.liucheng.solr;
    import java.io.IOException;
    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.SolrServerException;
    import org.apache.solr.client.solrj.impl.HttpSolrClient;
    import org.apache.solr.client.solrj.response.QueryResponse;
    public class solrTest {
        public static void addIndex(){
            HttpSolrClient server = solrServer.getServer();
            student stu = new student();
            stu.setId("1006");
            stu.setName_s("wanglc6");
            stu.setScore_i(885);
            try {
                server.addBean(stu);
                server.commit();
            } catch (SolrServerException | IOException e) {
                e.printStackTrace();
            }
        }
        public static void delete(){
            HttpSolrClient server = solrServer.getServer();
            try {
                server.deleteById("1001");
                server.commit();
            } catch (SolrServerException | IOException e) {
                e.printStackTrace();
            }
        }
        public static void search(){
            HttpSolrClient server = solrServer.getServer();
            SolrQuery query = new SolrQuery();
            //query.setQuery("*:*");
            query.set("q", "*:*");
            query.setStart(0);
            query.setRows(5);
            query.setSort("score_i",ORDER.desc);
            query.set("shards", "http://localhost:8080/solr/core1,http://localhost:8080/solr/test");
            QueryResponse queryResponse;
            try {
                queryResponse = server.query(query);
                List<student> list = queryResponse.getBeans(student.class);
                System.out.println("num = "+list.size());
                for(int i=0;i<list.size();i++){
                    System.out.println(list.get(i).getId() + "___" +list.get(i).getName_s() + "___" +list.get(i).getName_s() + "___" + list.get(i).getScore_i());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            //addIndex();
            //delete();
            search();
        }
    }
    package com.liucheng.solr;
    import java.io.Serializable;
    import org.apache.solr.client.solrj.beans.Field;
    public class student implements Serializable{
        private static final long serialVersionUID = 1L;
        @Field
        private String id;
        @Field
        private String name_s;
        @Field
        private int score_i;
        
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName_s() {
            return name_s;
        }
        public void setName_s(String name_s) {
            this.name_s = name_s;
        }
        public int getScore_i() {
            return score_i;
        }
        public void setScore_i(int score_i) {
            this.score_i = score_i;
        }
    }
    测试的结果:
    会综合两个core中的数据,如果有重复的id,只会取其中一个
    但是会有一个问题,当两个core中主键相同,但是内容不同的时候,他会怎么取值,测试结果有点随机, 两个值不时的更换,实际业务中不会出现这种不同值的情况吧!

     

  • 相关阅读:
    ubuntu 安装QT 5.0出现错误:Failed to load platform plugin "xcb".
    Ubuntu手动编译GCC
    C++面试题集锦(一)
    C++排序系列(一) 插入排序之折半插入排序
    关于内存对齐的面试题
    C++中的static_cast, dynamic_cast和reinterpret_cast
    C++排序系列(二) 交换排序之简单排序
    Cannot open include file: 'iphlpapi.h': No such file or directory(最终解决方法)
    C++排序系列(一) 插入排序之直接插入排序
    ubuntu aptget update时出现W: GPG 错误
  • 原文地址:https://www.cnblogs.com/itliucheng/p/6898624.html
Copyright © 2011-2022 走看看