zoukankan      html  css  js  c++  java
  • Solr局部或指定字段更新之set用法



    solr wiki文档也有 
     
     
     
     
     
     
     
    java code
     
    public static void update() {
              try {
                   String url = "http://192.168.0.237:8983/solr/weibo";
                   SolrServer server = new HttpSolrServer(url);

                   // String zkHost = "192.168.0.237:2181/solr";
                   // CloudSolrServer server = new CloudSolrServer(zkHost);
                   // server.setDefaultCollection("weibo");

                   // SolrInputDocument doc1 = new SolrInputDocument();
                   // doc1.addField("id", "1");
                   // doc1.addField("title", "云南xxx科技");
                   // doc1.addField("cat", "企业信息门户,元数据,数字沙盘,知识管理");
                   //
                   // SolrInputDocument doc2 = new SolrInputDocument();
                   // doc2.addField("id", "2");
                   // doc2.addField("title", "胡启稳");
                   // doc2.addField("cat", "知识管理,企业信息门户,云南,昆明");
                   //
                   // SolrInputDocument doc3 = new SolrInputDocument();
                   // doc3.addField("id", "3");
                   // doc3.addField("title", "liferay");
                   // doc3.addField("test_s", "这个内容能添加进去么?这是动态字段呀");

                   SolrInputDocument doc1 = new SolrInputDocument();
                   doc1.addField("ID".toUpperCase(), "50dc4fa4c9dce9e193e87170");
                  
                  
                  
                   Map<String, String > operation = new HashMap<String ,String >();
                   operation.put("set", "--------------------------");
                  
    //               doc1.addField("title".toUpperCase(), "云南xxx科技");
                   doc1.addField("CONTENT".toUpperCase(), operation);
    //               doc1.addField("ANALYKEYWORDLIST".toUpperCase(), "企业信息门户  云南  元数据  数字沙盘  知识管理");

                   // SolrInputDocument doc2 = new SolrInputDocument();
                   // doc2.addField("id".toUpperCase(), "2");
                   // doc2.addField("title".toUpperCase(), "胡启稳");
                   // doc2.addField("content".toUpperCase(), "知识管理  企业信息门户 云南  昆明");
                   //
                   // SolrInputDocument doc3 = new SolrInputDocument();
                   // doc3.addField("id".toUpperCase(), "3");
                   // doc3.addField("title".toUpperCase(), "liferay");
                   // doc3.addField("content".toUpperCase(),
                   // "这个内容能添加进去么  云南  这是动态字段呀");

                   List docs = new ArrayList();
                   docs.add(doc1);
                   // docs.add(doc2);
                   // docs.add(doc3);
    //
    //               UpdateRequest req = new UpdateRequest();
    //              
    //               UpdateRequest reqSuc = req.add(doc1);
    //              
    //               req.process(server);
    //              
    //              
    //               System.out.println(reqSuc);
    //               UpdateResponse updateResponse = server.
                   server.add(docs);
                   server.commit();
              } catch (SolrServerException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              }

         }
     
     附加代码:
    TestSolr.java
    package com.sekk.kk.util.search.solr.test;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.apache.lucene.index.Term;
    import org.apache.lucene.search.BooleanClause;
    import org.apache.lucene.search.BooleanQuery;
    import org.apache.lucene.search.NumericRangeQuery;
    import org.apache.lucene.search.WildcardQuery;
    import org.apache.solr.client.solrj.SolrQuery;
    import org.apache.solr.client.solrj.SolrQuery.ORDER;
    import org.apache.solr.client.solrj.SolrServer;
    import org.apache.solr.client.solrj.SolrServerException;
    import org.apache.solr.client.solrj.impl.CloudSolrServer;
    import org.apache.solr.client.solrj.impl.HttpSolrServer;
    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.SolrDocumentList;
    import org.apache.solr.common.SolrInputDocument;
    import org.apache.solr.common.params.MapSolrParams;
    import org.apache.solr.common.params.SolrParams;
    
    import com.sekk.kk.util.search.solr.SolrManager;
    import com.linktong.util.format.DateFormat;
    import com.linktong.util.validate.Validate;
    
    /**
     */
    public class TestSolr {
        public static void main(String[] args) {
            // getSolrServer();
    
             update();
            // query();
            // delete();
            // multiQuery();
    
            // conditionQuery();
    
            // deleteIndex4bbsUrl();
    //        multiThreadDeleteIndex4bbsUrl();
        }
    
        public static void update() {
            try {
                String url = "http://192.168.0.237:8983/solr/weibo";
                SolrServer server = new HttpSolrServer(url);
    
                // String zkHost = "192.168.0.237:2181/solr";
                // CloudSolrServer server = new CloudSolrServer(zkHost);
                // server.setDefaultCollection("weibo");
    
                // SolrInputDocument doc1 = new SolrInputDocument();
                // doc1.addField("id", "1");
                // doc1.addField("title", "云南xxx科技");
                // doc1.addField("cat", "企业信息门户,元数据,数字沙盘,知识管理");
                //
                // SolrInputDocument doc2 = new SolrInputDocument();
                // doc2.addField("id", "2");
                // doc2.addField("title", "胡启稳");
                // doc2.addField("cat", "知识管理,企业信息门户,云南,昆明");
                //
                // SolrInputDocument doc3 = new SolrInputDocument();
                // doc3.addField("id", "3");
                // doc3.addField("title", "liferay");
                // doc3.addField("test_s", "这个内容能添加进去么?这是动态字段呀");
                
                SolrInputDocument doc1 = new SolrInputDocument();
                doc1.addField("ID".toUpperCase(), "111");
                // doc1.addField("title".toUpperCase(), "云南xxx科技");
                doc1.addField("CONTENT".toUpperCase(), "企业信息门户  云南  元数据  数字沙盘  知识管理");
                doc1.addField("ANALYKEYWORDLIST".toUpperCase(), "企业信息门户  云南  元数据  数字沙盘  知识管理");
    
                // 局部更新
                SolrInputDocument doc2 = new SolrInputDocument();
                doc2.addField("ID".toUpperCase(), "50fdd2d7c9dc111541755740");
                // doc1.addField("title".toUpperCase(), "云南xxx科技");
                
                Map<String, String> operationMap = new HashMap<String, String>();
                operationMap.put("set", "adasdasdsad");
                
                doc2.addField("CONTENT".toUpperCase(), operationMap);
                
    //            doc2.addField("ANALYKEYWORDLIST".toUpperCase(), "企业信息门户  云南  元数据  数字沙盘  知识管理");
    
                // SolrInputDocument doc2 = new SolrInputDocument();
                // doc2.addField("id".toUpperCase(), "2");
                // doc2.addField("title".toUpperCase(), "胡启稳");
                // doc2.addField("content".toUpperCase(), "知识管理  企业信息门户 云南  昆明");
                //
                // SolrInputDocument doc3 = new SolrInputDocument();
                // doc3.addField("id".toUpperCase(), "3");
                // doc3.addField("title".toUpperCase(), "liferay");
                // doc3.addField("content".toUpperCase(),
                // "这个内容能添加进去么  云南  这是动态字段呀");
    
                List docs = new ArrayList();
                // docs.add(doc1);
                docs.add(doc2);
                // docs.add(doc3);
    
                UpdateResponse updateResponse = server.add(docs);
                System.out.println("updateResponse=" + updateResponse);
                server.commit();
                
                server.shutdown();
            } catch (SolrServerException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
        
        public static void query() {
            String url = "http://192.168.0.237:8983/solr";
            SolrServer server = new HttpSolrServer(url);
    
            SolrQuery query = new SolrQuery("云南");
            Map<String, String> map = new HashMap<String, String>();
            // map.put(FacetParams.FACET_DATE, "manufacturedate_dt");
            // map.put(FacetParams.FACET_DATE_START, "2004-01-01T00:00:00Z");
            // map.put(FacetParams.FACET_DATE_END, "2010-01-01T00:00:00Z");
            // map.put(FacetParams.FACET_DATE_GAP, "+1YEAR");
            // map.put("indent", "on");
            map.put("wt", "xml");
            // map.put("hl.fl", "name");
            SolrParams params = new MapSolrParams(map);
            query.add(params);
            query.setHighlight(true);
            try {
                QueryResponse response = server.query(query);
                SolrDocumentList docs = response.getResults();
    
                System.out.println("文档个数:" + response);
                System.out.println("文档个数:" + docs.getNumFound());
                System.out.println("查询时间:" + response.getQTime());
                System.out.println(docs);
                for (SolrDocument doc : docs) {
                    System.out.println(doc);
                    System.out.println("id: " + doc.getFieldValue("id"));
                    System.out.println("title: " + doc.getFieldValue("title"));
                    System.out.println("cat: " + doc.getFieldValue("cat"));
                    System.out.println("test_s: " + doc.getFieldValue("test_s"));
                    System.out.println();
                }
    
            } catch (Exception e) {
                // TODO: handle exception
            }
        }
    
        public static void conditionQuery() {
            // test lucene expression
            BooleanQuery bQuery = new BooleanQuery();
    
            // test range expression
    
            // // +LPUBLISHTIME1:{1 TO 3}
            // NumericRangeQuery numRangeQuery1 =
            // NumericRangeQuery.newIntRange("lpublishtime1".toUpperCase(), 1, 3,
            // false, false);
            // bQuery.add(numRangeQuery1, BooleanClause.Occur.MUST);
            // System.out.println(bQuery);
            //
            // // +LPUBLISHTIME2:[1 TO 3}
            // NumericRangeQuery numRangeQuery2 =
            // NumericRangeQuery.newIntRange("lpublishtime2".toUpperCase(), 1, 3,
            // true, false);
            // bQuery.add(numRangeQuery2, BooleanClause.Occur.MUST);
            // System.out.println(bQuery);
            //
            // // +LPUBLISHTIME2:[1 TO 3]
            // NumericRangeQuery numRangeQuery3 =
            // NumericRangeQuery.newIntRange("lpublishtime2".toUpperCase(), 1, 3,
            // true, true);
            // bQuery.add(numRangeQuery3, BooleanClause.Occur.MUST);
            // System.out.println(bQuery);
    
            String url = "http://61.152.33.19:8983/solr/weibo";
            // String url = "http://192.168.0.237:8983/solr/weibo";
            // String url = "http://192.168.0.237:8983/solr/weibo";
            // SolrServer server = new HttpSolrServer(url);
            HttpSolrServer server = new HttpSolrServer(url);
            StringBuilder q = new StringBuilder();
    
            // "股市 OR( 股票 AND 股市) OR 股市"
    
            // q.append(" +");
            // q.append("股市 OR( 股票 AND 股市) OR 股市");
    
            // q.append("ANALYKEYWORDLIST:云南");
    
            q.append("*:*");
    
            // q.append(" +");
            // q.append("URL:-http*");
    
            // q.append(" +");
            // q.append("ACCOUNT:dsfewfwefpink");
    
            // q.append(" +");
            // q.append("LPUBLISHTIME:[1356577413000 TO 1356577413001}");
            // q.append("LPUBLISHTIME:[1356577413000 TO 1356577413000]");
    
            SolrQuery query = new SolrQuery();
            // Map<String, String> map = new HashMap<String, String>();
            // map.put("wt", "xml");
            // query.set("wt", "xml");
    
            // query.add("fq", "-URL:http://*");
    
            // "云南"
    
            // map.put("hl.fl", "name");
            // SolrParams params = new MapSolrParams(map);
            // query.add(params);
            // query.setHighlight(true);
    
            int start = 0;
            int rows = 10;
            query.setStart(start);
            query.setRows(rows);
    
            query.setQuery(q.toString());
            // Date parseDate = null;
            // try {
            // parseDate = DateFormat.parseDate("2013-01-15 00:00:00");
            // } catch (Exception e1) {
            // // TODO Auto-generated catch block
            // e1.printStackTrace();
            // }
            // query.set("fq", "lpublishtime".toUpperCase() + ":[" +
            // parseDate.getTime() + " TO *]");
            // query.addSortField("lpublishtime".toUpperCase(), ORDER.desc);
            try {
                // query.setHighlight(true)
                // // 设置开头
                // .addHighlightField("CONTENT") // 高亮字段
                // .setHighlightSimplePre("<span class=’highlight’>").setHighlightSimplePost("</span>")
                // // 设置结尾
                // .setStart(0).setRows(10);// 设置行数
                //
                // // 设置高亮的哪些区域
                // query.setParam("hl.fl", "CONTENT");
    
                QueryResponse response = server.query(query);
                SolrDocumentList docs = response.getResults();
    
                // SolrDocumentList list = response.getResults();
                //
                // System.out.println("高亮显示:");
                // for (SolrDocument sd : list) {
                // String id = (String) sd.getFieldValue("ID");
                // if (response.getHighlighting().get(id) != null) {
                // System.out.println(response.getHighlighting().get(id).get("CONTENT"));
                //
                // }
                // }
    
                System.out.println("文档个数:" + response);
                System.out.println("文档个数:" + docs.getNumFound());
                System.out.println("查询时间:" + response.getQTime());
                System.out.println(docs);
                for (SolrDocument doc : docs) {
                    System.out.println(doc);
                    System.out.println("id: " + doc.getFieldValue("ID"));
                    System.out.println("title: " + doc.getFieldValue("title"));
                    System.out.println("CONTENT: " + doc.getFieldValue("CONTENT"));
                    System.out.println("test_s: " + doc.getFieldValue("test_s"));
                    System.out.println();
                }
    
            } catch (Exception e) {
                e.printStackTrace();
                // TODO: handle exception
            }
    
            server.shutdown();
        }
    
        public static void multiQuery() {
            try {
                // String url = "http://localhost:80/solr";
                // SolrServer server = new HttpSolrServer(url);
    
                String zkHost = "192.168.0.237:2181/solr";
                SolrServer server = new CloudSolrServer(zkHost);
    
                // String url = "http://localhost:80/solr";
    
                SolrQuery query = new SolrQuery("云南");
                // SolrQuery query = new SolrQuery();
                // Map<String, String> map = new HashMap<String, String>();
                // // map.put(FacetParams.FACET_DATE, "manufacturedate_dt");
                // // map.put(FacetParams.FACET_DATE_START, "2004-01-01T00:00:00Z");
                // // map.put(FacetParams.FACET_DATE_END, "2010-01-01T00:00:00Z");
                // // map.put(FacetParams.FACET_DATE_GAP, "+1YEAR");
                // // map.put("indent", "on");
                // map.put("wt", "xml");
                // // map.put("hl.fl", "name");
                // SolrParams params = new MapSolrParams(map);
                // query.add(params);
                // query.setHighlight(true);
    
                String shards = "localhost:80/solr,localhost:80/solr/weibo";
    
                Map<String, String> map = new HashMap<String, String>();
                map.put("q", "*:*");
                map.put("collection", "weibo");
                // map.put("shards", shards);
    
                // SolrParams params = new MapSolrParams(map);
                // query.add(params);
    
                SolrParams solrParams = new MapSolrParams(map);
    
                // ModifiableSolrParams solrParams = new ModifiableSolrParams();
                // solrParams.set("q", "*:*");
                // solrParams.set("shards", shards);
    
                // String shards = "localhost:8983/solr,localhost:7574/solr";
                // StringBuffer request = new StringBuffer();
                // request.append("&q=" + query);
                // request.append("&shards=" + shards);
                // SolrParams solrParams =
                // SolrRequestParsers.parseQueryString(request.toString());
    
                QueryResponse response = server.query(solrParams);
                // QueryResponse response = server.query(query);
                SolrDocumentList docs = response.getResults();
    
                System.out.println("文档个数:" + response);
                System.out.println("文档个数:" + docs.getNumFound());
                System.out.println("查询时间:" + response.getQTime());
                System.out.println(docs);
                for (SolrDocument doc : docs) {
                    System.out.println(doc);
                    System.out.println("id: " + doc.getFieldValue("id"));
                    System.out.println("title: " + doc.getFieldValue("title"));
                    System.out.println("content: " + doc.getFieldValue("content"));
                    System.out.println("test_s: " + doc.getFieldValue("test_s"));
                    System.out.println();
                }
    
                // release the resource
                server.shutdown();
    
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    
        public static void delete() {
            try {
                // 不指定core,solr会采用默认配置collection1
                String url = "http://61.152.33.19:8983/solr/bbs";
                // String url = "http://192.168.0.237:8983/solr/weibo";
                // // String url = "http://localhost:80/solr/weibo";
                // SolrServer server = new HttpSolrServer(url);
    
                // String zkHost = "192.168.0.237:2181/solr";
                // CloudSolrServer server = new CloudSolrServer(zkHost);
                // server.setDefaultCollection("weibo");
                HttpSolrServer server = new HttpSolrServer(url);
                Map<String, String> map = new HashMap<String, String>();
                map.put("q", "*:*");
                map.put("collection", "weibo");
    
                SolrParams solrParams = new MapSolrParams(map);
    
                // UpdateResponse updateResponse = server.deleteByQuery(solrParams);
                // UpdateResponse updateResponse = server.deleteByQuery("*:*");
                // UpdateResponse updateResponse = server.deleteByQuery("*:*");
                // System.out.println(updateResponse);
                // 不提交不会生效
                // updateResponse = server.commit();
                // System.out.println(updateResponse);
    
                server.shutdown();
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
        }
    
        static final String solrUrl89 = "http://61.152.33.19:8983/solr";
        static final String solrUrl35 = "http://61.159.33.33:8983/solr";
        static final String solrUrl34 = "http://61.122.116.44:8983/solr";
        
        public static void multiThreadDeleteIndex4bbsUrl() {
            
            final String url1 = solrUrl35 + "/bbs";
            final String url2 = solrUrl34 + "/bbs";
            final String url3 = solrUrl89 + "/bbs";
            
            String keyword = "*:*";
    //        String keyword = "我要检测 OR 我要 OR 我要检测管理 OR 您点击 OR 要检测";
            
            new DeleteSolrIndexTool4BBSUrl(url1, keyword).start();
    //        new DeleteSolrIndexTool4BBSUrl(url2, keyword).start();
    //        new DeleteSolrIndexTool4BBSUrl(url3, keyword).start();
        }
        
        public static void deleteIndex4bbsUrl() {
    
            int dataCount = 0, deleteCount = 0, deleteSuccCount = 0;
            int start = 0;
            int rows = 100;
    
            
            // 不指定core,solr会采用默认配置collection1
            String url = "http://61.152.33.19:8983/solr/bbs";
            // String url = "http://192.168.0.237:8983/solr/weibo";
            // // String url = "http://localhost:80/solr/weibo";
            // SolrServer server = new HttpSolrServer(url);
    
            // String zkHost = "192.168.0.237:2181/solr";
            // CloudSolrServer server = new CloudSolrServer(zkHost);
            // server.setDefaultCollection("weibo");
            HttpSolrServer server = new HttpSolrServer(url);
    
            boolean isDelete = true;
            while (isDelete) {
                try {
    
                    // Map<String, String> map = new HashMap<String, String>();
                    // map.put("q", "*:*");
                    // map.put("collection", "weibo");
    
                    SolrQuery query = new SolrQuery();
    
                    query.setStart(start);
                    query.setRows(rows);
                    query.add("fl", "ID,LPUBLISHTIME,SITE,URL");
    
                    // query.setQuery("*:*");
                    query.setQuery("我要检测 OR 我要 OR 我要检测管理 OR 您点击 OR 要检测");
    
                    System.out.println("开始查询..." + query);
    
                    QueryResponse response = server.query(query);
                    SolrDocumentList docs = response.getResults();
    
                    if (Validate.isEmpty(docs)) {
                        System.out.println("查询为空! " + query);
                        break;
                    }
    
                    System.out.println("文档个数:" + docs.getNumFound() + ",查询时间:" + response.getQTime());
    //                System.out.println(docs);
                    for (SolrDocument doc : docs) {
                        dataCount++;
                        // System.out.println(doc);
                        System.out.println("id: " + doc.getFieldValue("id".toUpperCase()));
    
                        String id = (String) doc.getFieldValue("id".toUpperCase());
                        String dataUrl = (String) doc.getFieldValue("url".toUpperCase());
    
                        if (dataUrl.indexOf("http://") == -1) {
                            deleteCount++;
                            System.out.println("delete " + id + " start...");
                            try {
                                UpdateResponse updateResponse = server.deleteByQuery("ID:" + id);
                                // 不提交不会生效
                                updateResponse = server.commit();
    
                                deleteSuccCount++;
    
                                System.out.println("delete " + updateResponse);
                            } catch (Exception e) {
                                System.out.println("delete " + id + " error");
                                e.printStackTrace();
                            }
                            System.out.println("delete " + id + " end");
                        }
    
                        // System.out.println("title: " +
                        // doc.getFieldValue("title"));
                        // System.out.println("content: " +
                        // doc.getFieldValue("content"));
                        // System.out.println("test_s: " +
                        // doc.getFieldValue("test_s"));
                        // System.out.println();
                    }
    
                    // SolrParams solrParams = new MapSolrParams(map);
    
                    // UpdateResponse updateResponse =
                    // server.deleteByQuery(solrParams);
                    // UpdateResponse updateResponse = server.deleteByQuery("*:*");
                    // UpdateResponse updateResponse = server.deleteByQuery("*:*");
                    // System.out.println(updateResponse);
                    // // 不提交不会生效
                    // updateResponse = server.commit();
                    // System.out.println(updateResponse);
    
                } catch (Exception e) {
                    System.out.println("deleteIndex4bbsUrl handle error:" + e.getMessage());
                    // TODO: handle exception
                    e.printStackTrace();
                }
    
                start += rows;
                System.out.println("start=" + start + ",rows=" + rows + ",dataCount=" + dataCount + ",deleteCount=" + deleteCount + ",deleteSuccCount=" + deleteSuccCount);
            }
            
            
            System.out.println("运行完毕~!");
            System.out.println("start=" + start + ",rows=" + rows + ",dataCount=" + dataCount + ",deleteCount=" + deleteCount + ",deleteSuccCount=" + deleteSuccCount);
            
            try {
                server.shutdown();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        public static void getSolrServer() {
            SolrManager solrManager = new SolrManager();
            // String coreName = "collection1";
            String coreName = "weibo";
            try {
                SolrServer solrServer = solrManager.getSolrServer(coreName);
                System.out.println(solrServer);
                // Use solrServer operation
            } catch (SolrServerException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    
    
    class DeleteSolrIndexTool4BBSUrl extends Thread {
        
        private String url;
        private String logName;
        private String keyword;
        
        
        public DeleteSolrIndexTool4BBSUrl(String url, String keyword) {
            super();
            this.url = url;
            this.keyword = keyword;
        }
    
        public void run() {
            this.logName = Thread.currentThread().getName();
            
            int dataCount = 0, deleteCount = 0, deleteSuccCount = 0;
            int start = 0;
            int rows = 100;
    
            // 不指定core,solr会采用默认配置collection1
    
            HttpSolrServer server = new HttpSolrServer(url);
    
            boolean isDelete = true;
            while (isDelete) {
                try {
    
                    SolrQuery query = new SolrQuery();
    
                    query.setStart(start);
                    query.setRows(rows);
                    query.add("fl", "ID,LPUBLISHTIME,SITE,URL");
    
                    // query.setQuery("*:*");
                    
    //                query.setQuery("我要检测 OR 我要 OR 我要检测管理 OR 您点击 OR 要检测");
                    query.setQuery(keyword);
    
                    System.out.println(logName + " " + "开始查询..." + query);
    
                    QueryResponse response = server.query(query);
                    SolrDocumentList docs = response.getResults();
    
                    if (Validate.isEmpty(docs)) {
                        System.out.println(logName + " " + "查询为空! " + query);
                        break;
                    }
    
                    System.out.println(logName + " " + "文档个数:" + docs.getNumFound() + ",查询时间:" + response.getQTime());
                    // System.out.println(docs);
                    for (SolrDocument doc : docs) {
                        dataCount++;
                        // System.out.println(doc);
                        System.out.println(logName + " " + "id: " + doc.getFieldValue("id".toUpperCase()));
    
                        String id = (String) doc.getFieldValue("id".toUpperCase());
                        String dataUrl = (String) doc.getFieldValue("url".toUpperCase());
    
                        if (dataUrl.indexOf("http://") == -1) {
                            deleteCount++;
                            System.out.println(logName + " " + "delete " + id + " start...");
                            try {
                                UpdateResponse updateResponse = server.deleteByQuery("ID:" + id);
                                // 不提交不会生效
                                updateResponse = server.commit();
    
                                deleteSuccCount++;
    
                                System.out.println(logName + " " + "delete " + updateResponse);
                            } catch (Exception e) {
                                System.out.println(logName + " " + "delete " + id + " error");
                                e.printStackTrace();
                            }
                            System.out.println(logName + " " + "delete " + id + " end");
                        }
                    }
    
                } catch (Exception e) {
                    System.out.println(logName + " " + "deleteIndex4bbsUrl handle error:" + e.getMessage());
                    // TODO: handle exception
                    e.printStackTrace();
                }
    
                start += rows;
                System.out.println(logName + " " + "start=" + start + ",rows=" + rows + ",dataCount=" + dataCount + ",deleteCount=" + deleteCount + ",deleteSuccCount=" + deleteSuccCount);
            }
    
            System.out.println(logName + " " + "运行完毕~!");
            System.out.println(logName + " " + "start=" + start + ",rows=" + rows + ",dataCount=" + dataCount + ",deleteCount=" + deleteCount + ",deleteSuccCount=" + deleteSuccCount);
    
            try {
                server.shutdown();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    }
    View Code
     
  • 相关阅读:
    JS判断数组中是否有重复元素的方法
    根据类名找到元素
    JS获取页面元素并修改
    JS实现会动的小车
    动态规划------最长公共子串(连续)
    动态规划------最长递增子序列
    买卖股票的最佳时期
    操作系统清华大学版笔记(十一)死锁、银行家算法和进程间通信(直接通信、间接通信)
    128 最长连续序列
    链表------删除有序单链表中重复的节点
  • 原文地址:https://www.cnblogs.com/svennee/p/4083052.html
Copyright © 2011-2022 走看看