• Java solr 索引数据增删改查


      具体代码如下:

    import java.io.IOException;
    import java.util.*;
    
    import org.apache.solr.client.solrj.SolrClient;
    import org.apache.solr.client.solrj.SolrQuery;
    import org.apache.solr.client.solrj.SolrRequest;
    import org.apache.solr.client.solrj.SolrServerException;
    import org.apache.solr.client.solrj.impl.HttpSolrClient;
    import org.apache.solr.client.solrj.response.QueryResponse;
    import org.apache.solr.client.solrj.response.UpdateResponse;
    import org.apache.solr.common.SolrDocument;
    import org.apache.solr.common.SolrInputDocument;
    import java.util.Set;
    import java.util.List;
    
    /**
    * @Author:sks
    * @Description:
    * @Date:
    */
    public class solrtest {
    
        public static void main(String []args) throws SolrServerException, IOException{
    
            String urlString = "http://localhost:8983/solr/data";
            String id = "北京-报纸-电动车-资讯快报.pdf";
            Init(urlString);
    //        addIndex();
            searchData();
    //        Map<String, String> maps = new HashMap<String, String>();
    //        maps.put("author","小王");
    //        maps.put("profession","汽车");
    //        maps.put("district","北京");
    //        maps.put("mediatype","报纸");
    //        updateMultiData(id,maps);
    //
    //
    //        String fieldName = "author";
    //        Object fieldValue = "小张";
    //        updateSingleData(id,fieldName,fieldValue);
    //
    //        delIndexByID(id);
    
        }
    
        private static SolrClient solr;
    
        /**
         * @Author:sks
         * @Description:初始化solr客户端
         * @Date:
         */
        public static void Init(String urlString){
    
            solr = new HttpSolrClient.Builder(urlString).build();
        }
    
        /**
        * @Author:sks
        * @Description:添加索引
        * @Date:
        */
        public static void addIndex() throws SolrServerException, IOException{
    
            SolrInputDocument document = new SolrInputDocument();
            document.addField("id", "9527");
            document.addField("name", "啦啦");
            document.addField("content", "solr是个好东西");
            solr.add(document);
            solr.commit();
        }
    
        /**
        * @Author:sks
        * @Description:更新索引中多个属性数据
        * @Date:
         * @id:索引ID
         * @maps:属性名称,属性值键值对
        */
        public static void updateMultiData(String id,Map<String, String> maps ) throws SolrServerException,IOException{
    
            Set<String> keys = maps.keySet();
            SolrInputDocument doc = new SolrInputDocument();
            doc.addField("id", id);
            for(String key : keys)
            {
                HashMap<String, Object> oper = new HashMap<String, Object>();
                oper.put("set", maps.get(key));
                doc.addField(key, oper);
            }
    
            UpdateResponse rsp = solr.add(doc);
            System.out.println("update doc id:" + id + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
            UpdateResponse rspCommit = solr.commit();
            System.out.println("commit doc to index" + " result:" + rspCommit.getStatus() + " Qtime:" + rspCommit.getQTime());
    
        }
    
        /**
        * @Author:sks
        * @Description:更新索引中单个属性数据
        * @Date:
         * @id:索引ID
         * @fieldName:属性名称
         * @fieldValue:属性值
        */
        public static void updateSingleData(String id,String fieldName,Object fieldValue) throws SolrServerException,IOException{
    
            HashMap<String, Object> oper = new HashMap<String, Object>();
            oper.put("set", fieldValue);
            SolrInputDocument doc = new SolrInputDocument();
            doc.addField("id", id);
            doc.addField(fieldName, oper);
            UpdateResponse rsp = solr.add(doc);
            System.out.println("update doc id:" + id + " result:" + rsp.getStatus() + " Qtime:" + rsp.getQTime());
            UpdateResponse rspCommit = solr.commit();
            System.out.println("commit doc to index" + " result:" + rspCommit.getStatus() + " Qtime:" + rspCommit.getQTime());
    
        }
    
        /**
        * @Author:sks
        * @Description:删除指定ID的索引
        * @Date:
         * @id:索引ID
        */
        public static void delIndexByID(String id) throws SolrServerException, IOException{
    
            UpdateResponse ur = solr.deleteById(id);
            System.out.println(ur);
    
            UpdateResponse c = solr.commit();
            System.out.println(c);
    
        }
    
        /**
        * @Author:sks
        * @Description:查询数据
        * @Date:
        */
        public static void searchData() throws SolrServerException,IOException {
            //使用这个对象做查询
            SolrQuery params = new SolrQuery();
            //查询所有数据
    //        params.setQuery("*:*");
            params.setQuery("id:广州-杂志-汽车-电台资讯快报-2015年2月.docx");
            //分页,默认是分页从0开始,每页显示10行
            params.setStart(0);
            params.setRows(30);
    
            QueryResponse queryResponse = solr.query(params);
            //拿到数据集合,返回查询结果
            List<SolrDocument> list = queryResponse.getResults();
    
            //循环打印数据集合
            for (SolrDocument solrDocument : list) {
                Object id = solrDocument.get("id");
                System.out.println(id.toString());
    
                Object fileSize = solrDocument.get("fileSize");
                System.out.println(fileSize.toString());
    
                Object fileLastModified = solrDocument.get("fileLastModified");
                System.out.println(fileLastModified.toString());
    
                Object fileAbsolutePath = solrDocument.get("fileAbsolutePath");
                System.out.println(fileAbsolutePath.toString());
    
                Object author = solrDocument.get("author");
                System.out.println(author.toString());
    
    //            Object text = solrDocument.get("text");
    //            System.out.println(text.toString());
                Object title = solrDocument.get("title");
                System.out.println(title.toString());
    
                Object author_area_keywor = solrDocument.get("author_area_keyword");
                System.out.println(author_area_keywor.toString());
    
    
            }
        }
    
    
    
    
    }
  • 相关阅读:
    用php获取本周,上周,本月,上月,本季度日期的代码
    PHP取整,四舍五入取整、向上取整、向下取整、小数截取
    图解phpstorm常用快捷键
    web安全之如何防止CSRF跨站请求伪造
    Ajax同步异步的区别
    php中文件上传需要注意的几点
    D4 HL 数据结构
    D3 HL 模拟赛订正
    D2 HL 图的高级应用 网络流专题
    D1 HL 图的高级应用 tarjan算法
  • 原文地址:https://www.cnblogs.com/shaosks/p/8032996.html
Copyright © 2020-2023  润新知