Author: bpoussin Date: 2011-02-23 13:26:47 +0100 (Wed, 23 Feb 2011) New Revision: 722 Url: http://nuiton.org/repositories/revision/wikitty/722 Log: trace time of all solr query (if log level ask it) Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/Restriction2Solr.java trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java =================================================================== --- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java 2011-02-23 12:15:14 UTC (rev 721) +++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/AttachmentInTree.java 2011-02-23 12:26:47 UTC (rev 722) @@ -162,6 +162,7 @@ * * @param id TreeNode id * @param attId attachment id + * @since 3.0.5 */ public void add(String id, String attId) { if (attId != null) { @@ -189,6 +190,7 @@ * * @param doc TreeNode document representation * @param restriction la liste accepte de wikitty a ajouter + * @since 3.0.5 */ public void add(SolrDocument doc, Set<String> restriction) { String id = (String)doc.getFieldValue(WikittySolrConstant.SOLR_ID); Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/Restriction2Solr.java =================================================================== --- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/Restriction2Solr.java 2011-02-23 12:15:14 UTC (rev 721) +++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/Restriction2Solr.java 2011-02-23 12:26:47 UTC (rev 722) @@ -204,7 +204,7 @@ query.setRows(MAX_SUBQUERY_RESULT); QueryResponse resp = null; try { - resp = solr.query(query); + resp = SolrUtil.executeQuery(solr, query); } catch (SolrServerException e) { throw new WikittyException("Unable to execute associative query on " + associated.getElement().getName(), e); } Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java =================================================================== --- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java 2011-02-23 12:15:14 UTC (rev 721) +++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java 2011-02-23 12:26:47 UTC (rev 722) @@ -41,6 +41,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import org.nuiton.util.TimeLog; import org.nuiton.wikitty.entities.WikittyTreeNode; import static org.nuiton.wikitty.storage.solr.WikittySolrConstant.SOLR_ID; @@ -64,7 +65,8 @@ public class SolrUtil { /** to use log facility, just put in your code: log.info(\"...\"); */ - static private Log log = LogFactory.getLog(SolrUtil.class); + final static private Log log = LogFactory.getLog(SolrUtil.class); + final static private TimeLog timeLog = new TimeLog(SolrUtil.class); /** * Recherche tous les TreeNode auquel appartient en Attachment l'objet passe @@ -167,7 +169,7 @@ request += ")"; SolrQuery query = new SolrQuery(request); - QueryResponse response = solrServer.query(query); + QueryResponse response = executeQuery(solrServer, query); SolrDocumentList results = response.getResults(); for (SolrDocument doc : results) { String id = (String) doc.getFieldValue(SOLR_ID); @@ -181,6 +183,27 @@ } /** + * Execute SolrQuery on specified SolrServer and return the result + * + * @param solrServer + * @param query + * @return + * @throws SolrServerException + */ + static public QueryResponse executeQuery(SolrServer solrServer, SolrQuery query) + throws SolrServerException { + long start = TimeLog.getTime(); + QueryResponse result = solrServer.query(query); + + long numGet = result.getResults().size(); + long numfound = result.getResults().getNumFound(); + timeLog.log(start, "executeQuery", String.format( + "nb result %s/%s query was '%s'", numGet, numfound, query)); + + return result; + } + + /** * if you change this method, change * {@link TypeFieldModifer#convertToField(org.nuiton.wikitty.services.WikittyTransaction, java.lang.String)} * too Modified: trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java =================================================================== --- trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-02-23 12:15:14 UTC (rev 721) +++ trunk/wikitty-solr-impl/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-02-23 12:26:47 UTC (rev 722) @@ -688,7 +688,7 @@ if(log.isDebugEnabled()) { log.debug(String.format("Try to execute query %s", query)); } - QueryResponse resp = solrServer.query(query); + QueryResponse resp = SolrUtil.executeQuery(solrServer, query); SolrDocumentList solrResults = resp.getResults(); Map<String, List<FacetTopic>> facets = new HashMap<String, List<FacetTopic>>(); @@ -778,7 +778,7 @@ String queryString = restriction2Solr.toSolr( treeCriteria.getRestriction(), solrServer); SolrQuery query = new SolrQuery(SOLR_QUERY_PARSER + queryString); - QueryResponse resp = solrServer.query(query); + QueryResponse resp = SolrUtil.executeQuery(solrServer, query); SolrDocumentList solrResults = resp.getResults(); Map<String, Integer> counts = new HashMap<String, Integer>(); Modified: trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java =================================================================== --- trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java 2011-02-23 12:15:14 UTC (rev 721) +++ trunk/wikitty-solr-impl/src/test/java/org/nuiton/wikitty/storage/solr/SolrServerTest.java 2011-02-23 12:26:47 UTC (rev 722) @@ -30,21 +30,15 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; -import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument; -import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.core.CoreContainer; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; -import org.nuiton.wikitty.storage.solr.SolrUtil; -import org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr; -import org.nuiton.wikitty.storage.solr.WikittySolrConstant; /** * Test behaviour SolrServer embedded.