zoukankan      html  css  js  c++  java
  • 4.solr学习速成之bean

    以bean的形式提交索引,以bean的形式查询出来

    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;
        }
    }

    其中field的值必须要在scheme.xml中配置,因为该文件中已经有id和动态field的配置,这里就不用配置

    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
    <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
    <dynamicField name="*_s"  type="string"  indexed="true"  stored="true" />

    测试类:

    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.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("1005");
            stu.setName_s("wanglc5");
            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.setStart(0);
            query.setRows(5);
            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).getName_s());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            //addIndex();
            //delete();
            search();
        }
    }

    solrserver:

    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/test";
        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;
        }
    }
  • 相关阅读:
    动态表单功能
    IDEA2019版Run Dashboard调出方案
    js页面传递参数为中文乱码问题解决方法
    layui 一行多列控件时使用table布局
    npm 安装包失败 --- 清除npm缓存
    解析数据库连接字符串 (将Data Source、Initial Catalog、User ID、Password取出)
    SQL SERVER 存储过程语法
    mvc5 跨域访问
    钟表
    MVC session过期如何处理跳转(转)
  • 原文地址:https://www.cnblogs.com/itliucheng/p/6898576.html
Copyright © 2011-2022 走看看