solrj 等价sql查询

来源:互联网 发布:qq飞车莱瑟xa数据 编辑:程序博客网 时间:2024/06/06 00:48

solrj 等价sql查询

除日期类型数据需要进行特殊解析外,其它类型直接使用;

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat sdfIn = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");// Preparing Solr query        SolrQuery query = new SolrQuery("*:*");        // 设置返回哪些的列        query.addField("*");        // 设定开始序号        query.setStart(0);        // 设定返回的行数        query.setRows(5);        // 设置排序        query.setSort(new SortClause("BIRTHDAY", "desc"));        // 等价sql: SEXCODE=2        query.addFilterQuery("SEXCODE:2");        // 等价sql: PERSONNAME like '王%'        query.addFilterQuery("PERSONNAME:王*");        // 等价sql:SL >= 20        query.addFilterQuery("SL:[20 TO *]");        // 等价sql:SL > 20        query.addFilterQuery("SL:{20 TO *]");        // 等价sql:SL <= 100        query.addFilterQuery("SL:[* TO 100]");        // 等价sql:SL < 100        query.addFilterQuery("SL:[* TO 100}");        try {            // 等价sql:BIRTHDAY="1965-06-14"            // 日期类型数据解析            // query.addFilterQuery("BIRTHDAY:\"1965-06-14T00:00:00Z\"");            query.addFilterQuery("BIRTHDAY:\"" + sdfIn.format(sdf.parse("1965-06-14")) + "\"");        } catch (ParseException e1) {            e1.printStackTrace();        }        // Executing the query        QueryResponse solrRes = client.query(query);        System.out.println("Response:" + solrRes.getResponse());        System.out.println("ResponseHeader:" + solrRes.getResponseHeader());        // Storing the results of the query        SolrDocumentList docs = solrRes.getResults();        // 返回匹配的结果总数        System.out.println("numFound:" + docs.getNumFound());        // 返回当前的结果数        System.out.println("docs.size():" + docs.size());        for (SolrDocument doc : docs) {            System.out.print(doc.get("IDCARD") + "\t");            System.out.print(doc.get("PERSONNAME") + "\t");            System.out.print(sdf.format(doc.get("BIRTHDAY")) + "\t");        }
原创粉丝点击