zoukankan      html  css  js  c++  java
  • Solr简单测试

    import org.apache.solr.client.solrj.SolrClient;
    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;
    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.junit.Test;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class SolrInsertTest {
        //solr 服务器地址
        public static final String solrServerUrl = "http://localhost:8983/solr";
        //solrhome下的core
        public static final String solrCroeHome = "mycore";
    
        public static String[] docs = {"Solr是一个独立的企业级搜索应用服务器",
                "它对外提供类似于Web-service的API接口",
                "用户可以通过http请求",
                "向搜索引擎服务器提交一定格式的XML文件生成索引",
                "也可以通过Http Get操作提出查找请求",
                "并得到XML格式的返回结果"};
    
        public static void main(String[] args) {
            System.out.println("solr insert test");
    //        SolrClient client = new HttpSolrClient(solrServerUrl+"/" + solrCroeHome);
            SolrClient client = new HttpSolrClient.Builder(solrServerUrl + "/" + solrCroeHome).build();
    
            List<SolrInputDocument> solrDocs = new ArrayList<>();
            for (int i = 0; i < docs.length; i++) {
                SolrInputDocument doc = new SolrInputDocument();
                doc.addField("id", i);
                doc.addField("content_text", docs[i]);
                solrDocs.add(doc);
            }
    
            try {
                client.add(solrDocs);
                client.commit();
                System.out.println("Insert Done");
            } catch (SolrServerException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    client.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
        @Test
        public void testSolrQuery() throws IOException, SolrServerException {
            SolrClient client = new HttpSolrClient(solrServerUrl + "/" + solrCroeHome);
            SolrQuery query = new SolrQuery("content_text:类似");
    
            // 设置查询关键字
            /* query.setQuery("Content:* AND Spare3:1 "); */
            // 指定查询返回字段
            /* query.setParam("fl", "Content,IndexTime"); */
            // 设置高亮
    //        query.setHighlight(true).setHighlightSimplePre("<span class='red'>")
    //                .setHighlightSimplePost("</span>");
    //        query.setParam("hl.fl", "Content");//设置高亮字段
    //        query.setParam("fl", "ID,Published");
    
    
            //排除条件      - NOT
            //wbQuery.addFilterQuery("OriginType:wb -Spare3:0");
            //wbQuery.addFilterQuery("OriginType:wb NOT Spare3:0");
            // 时间条件过滤
            /* query.addFilterQuery("Content:超哥"); */
            /*
             * query.addFilterQuery(
             * "Published:[1995-12-31T23:59:59.999Z TO 2016-03-06T00:00:00Z]");
             **/
    
            // 实现分页的查询
            query.setStart(0);
            query.setRows(10);
    
    
            // 设定排序,如果需要对field进行排序就必须在schema.xml中对该field配置stored="true"属性
            //set会清空原来的sort条件,add不会清空原来的,会在原来的基础上添加 sort=Published asc,Author asc(多条件排序)
    //        query.setSort(IContentCommon.IndexField.Published.getName(),
    //                SolrQuery.ORDER.asc);
    //
    //        query.addSort(IContentCommon.IndexField.Published.getName(),
    //                SolrQuery.ORDER.asc);
    
            QueryResponse response = client.query(query);
            System.out.println(query);
            SolrDocumentList docs = response.getResults();
            System.out.println(docs.getNumFound());
            for(SolrDocument doc : docs){
                Object id = doc.get("id");
                System.out.println("id:" + id + ", content:" + doc.get("content_text"));
    
            }
            client.close();
    
        }
    
        @Test
        public void testSolrDelete() throws IOException, SolrServerException {
            SolrClient client = new HttpSolrClient.Builder(solrServerUrl + "/" + solrCroeHome)
                    .build();
    
            UpdateResponse response = client.deleteById("0");
            int status = response.getStatus();
            System.out.println("status:" + status);
            client.commit();
            client.close();
        }
    }
    
    
  • 相关阅读:
    ubuntu 制做samba
    《Programming WPF》翻译 第4章 前言
    《Programming WPF》翻译 第4章 3.绑定到数据列表
    《Programming WPF》翻译 第4章 4.数据源
    《Programming WPF》翻译 第5章 6.触发器
    《Programming WPF》翻译 第4章 2.数据绑定
    《Programming WPF》翻译 第4章 1.不使用数据绑定
    《Programming WPF》翻译 第5章 7.控件模板
    《Programming WPF》翻译 第5章 8.我们进行到哪里了?
    《Programming WPF》翻译 第5章 5.数据模板和样式
  • 原文地址:https://www.cnblogs.com/byxxw/p/6701527.html
Copyright © 2011-2022 走看看