List of usage examples for org.apache.solr.client.solrj SolrQuery SolrQuery
public SolrQuery(String q)
From source file:com.yaotrue.learn.solr.SolrjTest.java
License:Apache License
@Test public void testFacet() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery("*:*"); solrQuery.setFacet(true);/*from w w w. j av a 2s .c om*/ solrQuery.addFacetQuery("sale_price:[0 TO 200]"); solrQuery.addFacetQuery("sale_price:[201 TO 300]"); solrQuery.addFacetQuery("sale_price:[300 TO 400]"); solrQuery.setFacetSort("count"); solrQuery.addFacetField("code"); solrQuery.setFacetMinCount(0); solrQuery.setFacetLimit(-1); QueryResponse response = solrClient.query(solrQuery); if (response != null) { List<FacetField> facetFields = response.getFacetFields(); for (FacetField facetField : facetFields) { List<Count> countList = null; if (facetField != null) { countList = facetField.getValues(); if (countList != null) { for (Count count : countList) { System.out.println(count.getName() + count.getCount()); } } } } Map<String, Integer> map = response.getFacetQuery(); for (String key : map.keySet()) { System.out.println(key + ":" + map.get(key)); } } }
From source file:com.yaotrue.learn.solr.SolrjTest.java
License:Apache License
@Test public void testGroup() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery("*:*"); solrQuery.set(GroupParams.GROUP, true); solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, true); solrQuery.set(GroupParams.GROUP_LIMIT, 12); solrQuery.set(GroupParams.GROUP_FORMAT, "grouped"); solrQuery.set(GroupParams.GROUP_FACET, true); solrQuery.set(GroupParams.GROUP_FIELD, "style"); QueryResponse queryResponse = solrClient.query(solrQuery); GroupResponse groupResponse = queryResponse.getGroupResponse(); if (null != groupResponse) { List<GroupCommand> groupCommandList = groupResponse.getValues(); for (GroupCommand groupCommand : groupCommandList) { int matches = groupCommand.getMatches(); String name = groupCommand.getName(); Integer ngroups = groupCommand.getNGroups(); List<Group> groupList = groupCommand.getValues(); for (Group group : groupList) { SolrDocumentList solrDocumentList = group.getResult(); ListIterator<SolrDocument> listIterator = solrDocumentList.listIterator(); while (listIterator.hasNext()) { SolrDocument solrDocument = listIterator.next(); System.out.println(solrDocument.get("code")); }/*from w w w.j av a2 s .c o m*/ } } } }
From source file:com.yaotrue.learn.solr.SolrTest.java
License:Apache License
@Test public void testSeach() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery("*:*"); QueryResponse queryResponse = solrClient.query(solrQuery); SolrDocumentList documentList = queryResponse.getResults(); for (SolrDocument solrDocument : documentList) { System.out.println(solrDocument.getFieldValue("id")); }// ww w. j a v a 2 s . c om }
From source file:cz.incad.vdkcommon.solr.Indexer.java
License:Open Source License
public void removeAllWanted() throws Exception { SolrQuery query = new SolrQuery("chci:[* TO *]"); query.addField("code"); SolrDocumentList docs = IndexerQuery.query(query); long numFound = docs.getNumFound(); Iterator<SolrDocument> iter = docs.iterator(); while (iter.hasNext()) { if (jobData.isInterrupted()) { LOGGER.log(Level.INFO, "INDEXER INTERRUPTED"); break; }/*w ww . j av a2 s. c om*/ StringBuilder sb = new StringBuilder(); SolrDocument resultDoc = iter.next(); String docCode = (String) resultDoc.getFieldValue("code"); sb.append("<add><doc>"); sb.append("<field name=\"code\">").append(docCode).append("</field>"); sb.append("<field name=\"md5\">").append(docCode).append("</field>"); sb.append("<field name=\"chci\" update=\"set\" null=\"true\" />"); sb.append("</doc></add>"); SolrIndexerCommiter.postData(sb.toString()); SolrIndexerCommiter.postData("<commit/>"); } query.setQuery("nechci:[* TO *]"); query.addField("code"); docs = IndexerQuery.query(query); iter = docs.iterator(); while (iter.hasNext()) { if (jobData.isInterrupted()) { LOGGER.log(Level.INFO, "INDEXER INTERRUPTED"); break; } StringBuilder sb = new StringBuilder(); SolrDocument resultDoc = iter.next(); String docCode = (String) resultDoc.getFieldValue("code"); sb.append("<add><doc>"); sb.append("<field name=\"code\">").append(docCode).append("</field>"); sb.append("<field name=\"md5\">").append(docCode).append("</field>"); sb.append("<field name=\"nechci\" update=\"set\" null=\"true\" />"); sb.append("</doc></add>"); SolrIndexerCommiter.postData(sb.toString()); SolrIndexerCommiter.postData("<commit/>"); } numFound += docs.getNumFound(); if (numFound > 0 && !jobData.isInterrupted()) { removeAllWanted(); } }
From source file:cz.incad.vdkcommon.solr.Indexer.java
License:Open Source License
public void removeAllOffers() throws Exception { SolrQuery query = new SolrQuery("nabidka:[* TO *]"); query.addField("code"); SolrDocumentList docs = IndexerQuery.query(query); Iterator<SolrDocument> iter = docs.iterator(); while (iter.hasNext()) { if (jobData.isInterrupted()) { LOGGER.log(Level.INFO, "INDEXER INTERRUPTED"); break; }//from w w w . j a v a2 s. c om StringBuilder sb = new StringBuilder(); SolrDocument resultDoc = iter.next(); String docCode = (String) resultDoc.getFieldValue("code"); sb.append("<add><doc>"); sb.append("<field name=\"code\">").append(docCode).append("</field>"); sb.append("<field name=\"md5\">").append(docCode).append("</field>"); sb.append("<field name=\"nabidka\" update=\"set\" null=\"true\" />"); sb.append("<field name=\"nabidka_ext\" update=\"set\" null=\"true\" />"); sb.append("<field name=\"nabidka_datum\" update=\"set\" null=\"true\" />"); sb.append("</doc></add>"); SolrIndexerCommiter.postData(sb.toString()); SolrIndexerCommiter.postData("<commit/>"); } long numFound = docs.getNumFound(); if (numFound > 0 && !jobData.isInterrupted()) { removeAllOffers(); } }
From source file:cz.incad.vdkcommon.solr.Indexer.java
License:Open Source License
public void removeAllDemands() throws Exception { SolrQuery query = new SolrQuery("poptavka:[* TO *]"); query.addField("code"); query.setRows(1000);/*from ww w . ja v a2 s. c om*/ SolrDocumentList docs = IndexerQuery.query(query); long numFound = docs.getNumFound(); Iterator<SolrDocument> iter = docs.iterator(); while (iter.hasNext()) { if (jobData.isInterrupted()) { LOGGER.log(Level.INFO, "INDEXER INTERRUPTED"); break; } StringBuilder sb = new StringBuilder(); SolrDocument resultDoc = iter.next(); String docCode = (String) resultDoc.getFieldValue("code"); sb.append("<add><doc>"); sb.append("<field name=\"code\">").append(docCode).append("</field>"); sb.append("<field name=\"md5\">").append(docCode).append("</field>"); sb.append("<field name=\"poptavka\" update=\"set\" null=\"true\" />"); sb.append("<field name=\"poptavka_ext\" update=\"set\" null=\"true\" />"); sb.append("</doc></add>"); SolrIndexerCommiter.postData(sb.toString()); SolrIndexerCommiter.postData("<commit/>"); LOGGER.log(Level.INFO, "Demands for {0} removed.", docCode); } if (numFound > 0 && !jobData.isInterrupted()) { removeAllDemands(); } }
From source file:cz.incad.vdkcommon.solr.Indexer.java
License:Open Source License
public void reindexDocByIdentifier(String identifier) throws Exception { LOGGER.log(Level.INFO, "----- Reindexing doc {0} ...", identifier); SolrQuery query = new SolrQuery("id:\"" + identifier + "\""); query.addField("id,code"); query.setRows(1000);// w w w .j a v a 2 s .co m SolrDocumentList docs = IndexerQuery.query(opts.getString("solrIdCore", "vdk_id"), query); Iterator<SolrDocument> iter = docs.iterator(); while (iter.hasNext()) { SolrDocument resultDoc = iter.next(); String uniqueCode = (String) resultDoc.getFieldValue("code"); reindexDoc(uniqueCode, identifier); } }
From source file:cz.incad.vdkcommon.solr.Indexer.java
License:Open Source License
public void reindexDoc(String uniqueCode, String identifier) throws Exception { SolrQuery query = new SolrQuery("id:\"" + identifier + "\""); query.addField("id,code"); query.setRows(1000);//from ww w .j a v a2s .c o m SolrDocumentList docs = IndexerQuery.query(query); Iterator<SolrDocument> iter = docs.iterator(); if (iter.hasNext()) { SolrDocument resultDoc = iter.next(); String oldUniqueCode = (String) resultDoc.getFieldValue("code"); if (oldUniqueCode != null && !oldUniqueCode.equals(uniqueCode)) { LOGGER.log(Level.INFO, "Cleaning doc {0} from index...", oldUniqueCode); String s = "<delete><query>code:" + oldUniqueCode + "</query></delete>"; SolrIndexerCommiter.postData(s); indexDoc(oldUniqueCode); } } LOGGER.log(Level.INFO, "Cleaning doc {0} from index...", uniqueCode); String s = "<delete><query>code:" + uniqueCode + "</query></delete>"; SolrIndexerCommiter.postData(s); indexDoc(uniqueCode); }
From source file:cz.incad.vdkcommon.solr.Indexer.java
License:Open Source License
public void indexDoc(String uniqueCode) throws Exception { try {/*w ww . j a v a2 s . c o m*/ LOGGER.log(Level.FINE, "Indexace doc {0}...", uniqueCode); StringBuilder sb = new StringBuilder(); sb.append("<add><doc>"); sb.append("<field name=\"code\">").append(uniqueCode).append("</field>"); sb.append(""); SolrQuery query = new SolrQuery("code:\"" + uniqueCode + "\""); query.addField("id,code,code_type,xml,bohemika,zdroj"); query.setRows(1000); SolrDocumentList docs = IndexerQuery.query(opts.getString("solrIdCore", "vdk_id"), query); Iterator<SolrDocument> iter = docs.iterator(); String codeType = ""; String md5 = ""; boolean bohemika = false; int docsNum = 0; while (iter.hasNext()) { if (jobData.isInterrupted()) { LOGGER.log(Level.INFO, "INDEXER INTERRUPTED"); break; } SolrDocument resultDoc = iter.next(); if (resultDoc.getFieldValue("bohemika") != null) { bohemika = (Boolean) resultDoc.getFieldValue("bohemika"); } else { bohemika = Bohemika.isBohemika((String) resultDoc.getFieldValue("xml")); } codeType = (String) resultDoc.getFieldValue("code_type"); sb.append(transformXML((String) resultDoc.getFieldValue("xml"), uniqueCode, (String) resultDoc.getFieldValue("code_type"), (String) resultDoc.getFieldValue("id"), bohemika, (String) resultDoc.getFieldValue("zdroj"))); sb.append(getDocOffers(uniqueCode)); docsNum++; total++; } sb.append("<field name=\"code_type\">").append(codeType).append("</field>"); sb.append("<field name=\"md5\">").append(md5).append("</field>"); sb.append("<field name=\"bohemika\">").append(bohemika).append("</field>"); sb.append("<field name=\"pocet_doc\">").append(docsNum).append("</field>"); sb.append("</doc></add>"); SolrIndexerCommiter.postData(sb.toString()); //removeDocOffers(uniqueCode); //indexDocOffers(uniqueCode); //SolrIndexerCommiter.postData("<commit/>"); //logger.log(Level.INFO, "Doc indexed. Total docs: {0}", total); } catch (Exception ex) { LOGGER.log(Level.SEVERE, "Error in reindex", ex); } }
From source file:cz.incad.vdkcommon.solr.Indexer.java
License:Open Source License
private boolean isInDemandsCache(String code) { if (demandsCache == null) { try {/*from ww w . ja v a2 s . c o m*/ SolrQuery query = new SolrQuery("poptavka_ext:[* TO *]"); query.addField("id,code,poptavka_ext,title"); query.setRows(1000); demandsCache = new HashMap<>(); SolrDocumentList docs = IndexerQuery.query(query); Iterator<SolrDocument> iter = docs.iterator(); while (iter.hasNext()) { SolrDocument doc = iter.next(); demandsCache.put((String) doc.getFieldValue("code"), doc); } } catch (SolrServerException | IOException ex) { LOGGER.log(Level.SEVERE, null, ex); } } return demandsCache.containsKey(code); }