From: <sp...@us...> - 2010-02-27 06:10:32
|
Revision: 5795 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=5795&view=rev Author: sppigot Date: 2010-02-27 06:10:24 +0000 (Sat, 27 Feb 2010) Log Message: ----------- Place a configurable limit on the number of hits in the search result set that will be examined to build a summary of keywords (sorted by frequency) returned with the result set. For large result sets with many keywords this improves the time taken to return the first page of search results to the user. Modified Paths: -------------- sandbox/BlueNetMEST/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-sru.xml sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config.xml sandbox/BlueNetMEST/web/geonetwork/loc/en/xml/strings.xml Modified: sandbox/BlueNetMEST/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java =================================================================== --- sandbox/BlueNetMEST/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2010-02-24 23:07:27 UTC (rev 5794) +++ sandbox/BlueNetMEST/src/org/fao/geonet/kernel/csw/services/getrecords/CatalogSearcher.java 2010-02-27 06:10:24 UTC (rev 5795) @@ -75,6 +75,7 @@ private Element _summaryConfig; private Map<String, Boolean> _isTokenizedField = new HashMap<String, Boolean>(); private Hits _hits; + private int _maxRecordsInKeywordSummary = 1000; // default for fast processing public CatalogSearcher(File summaryConfig) { try { @@ -387,8 +388,8 @@ // Only compute GeoNetwork summary on results_with_summary option if (resultType == ResultType.RESULTS_WITH_SUMMARY) { summary = LuceneSearcher.makeSummary(_hits, _hits.length(), - _summaryConfig, resultType.toString(), - Integer.MAX_VALUE, context.getLanguage()); + _summaryConfig, resultType.toString(), Integer.MAX_VALUE, + _maxRecordsInKeywordSummary, context.getLanguage()); summary.setName("Summary"); summary.setNamespace(Csw.NAMESPACE_GEONET); } Modified: sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java =================================================================== --- sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2010-02-24 23:07:27 UTC (rev 5794) +++ sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneSearcher.java 2010-02-27 06:10:24 UTC (rev 5795) @@ -106,6 +106,7 @@ private Element _elSummary; private int _maxSummaryKeys; + private int _maxRecordsInKeywordSummary; private int _numHits; private String _resultType; private String _language; @@ -236,6 +237,10 @@ private void computeQuery(ServiceContext srvContext, Element request, ServiceConfig config) throws Exception { + String sMaxRecordsInKeywordSummary = request.getChildText("maxRecordsInKeywordSummary"); + if (sMaxRecordsInKeywordSummary == null) sMaxRecordsInKeywordSummary = config.getValue("maxRecordsInKeywordSummary", "1000"); + _maxRecordsInKeywordSummary = Integer.parseInt(sMaxRecordsInKeywordSummary); + String sMaxSummaryKeys = request.getChildText("maxSummaryKeys"); if (sMaxSummaryKeys == null) sMaxSummaryKeys = config.getValue("maxSummaryKeys", "10"); _maxSummaryKeys = Integer.parseInt(sMaxSummaryKeys); @@ -392,7 +397,7 @@ if (_elSummary == null) { - _elSummary = makeSummary(_hits, getSize(), _summaryConfig, _resultType, _maxSummaryKeys, _language); + _elSummary = makeSummary(_hits, getSize(), _summaryConfig, _resultType, _maxSummaryKeys, _maxRecordsInKeywordSummary, _language); } setValid(true); @@ -553,7 +558,7 @@ //-------------------------------------------------------------------------------- - public static Element makeSummary(Hits hits, int count, Element summaryConfig, String resultType, int maxSummaryKeys, String langCode) throws Exception + public static Element makeSummary(Hits hits, int count, Element summaryConfig, String resultType, int maxSummaryKeys, int maxRecordsInKeywordSummary, String langCode) throws Exception { Element elSummary = new Element("summary"); @@ -586,7 +591,7 @@ SortOption sortOption = SortOption.parse(order); SummaryComparator summaryComparator = new SummaryComparator(sortOption, Type.parse(type), langCode, summaryConfig.getChild("typeConfig")); - summarize(elSummary, hits, key, count, plural, name, summaryComparator, max); + summarize(elSummary, hits, key, Math.min(maxRecordsInKeywordSummary, count), plural, name, summaryComparator, max); } return elSummary; } Modified: sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml =================================================================== --- sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml 2010-02-24 23:07:27 UTC (rev 5794) +++ sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-portal.xml 2010-02-27 06:10:24 UTC (rev 5795) @@ -9,6 +9,7 @@ <service name="portal.search"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="10" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="portal-search.xsl" contentType="text/xml; charset=UTF-8"/> </service> @@ -25,6 +26,7 @@ <service name="portal.search.keywords"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="1000" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="thesaurus-keywordlist.xsl" contentType="text/xml; charset=UTF-8"/> </service> @@ -34,6 +36,7 @@ <service name="portal.search.credits"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="1000" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="thesaurus-creditlist.xsl" contentType="text/xml; charset=UTF-8"/> </service> @@ -43,6 +46,7 @@ <service name="portal.search.titles"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="1000" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="thesaurus-titlelist.xsl" contentType="text/xml; charset=UTF-8"/> </service> @@ -52,6 +56,7 @@ <service name="portal.search.dataparams"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="1000" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="thesaurus-dataparamlist.xsl" contentType="text/xml; charset=UTF-8"/> </service> @@ -69,6 +74,7 @@ <service name="portal.search.present"> <class name=".services.main.SearchResult"> <param name="maxSummaryKeys" value="10" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> <param name="range" value="all" /> </class> @@ -134,6 +140,7 @@ <service name="pdf.search"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="1000" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="portal-present-fop.xsl" file="true" contentType="application/pdf"> Modified: sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-sru.xml =================================================================== --- sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-sru.xml 2010-02-24 23:07:27 UTC (rev 5794) +++ sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config-sru.xml 2010-02-27 06:10:24 UTC (rev 5795) @@ -8,6 +8,7 @@ <service name="portal.sru"> <class name="org.fao.geonet.services.main.SRUSearch"> <param name="maxSummaryKeys" value="10" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="portal-srusearch.xsl" contentType="text/xml; charset=UTF-8"/> </service> Modified: sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config.xml =================================================================== --- sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config.xml 2010-02-24 23:07:27 UTC (rev 5794) +++ sandbox/BlueNetMEST/web/geonetwork/WEB-INF/config.xml 2010-02-27 06:10:24 UTC (rev 5795) @@ -172,6 +172,7 @@ <service name="main.search.embedded"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="10" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output forward="main.present.embedded" /> @@ -208,6 +209,7 @@ <service name="search.external"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="10" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output forward="present.external" /> @@ -945,6 +947,7 @@ <service name="rss.search"> <class name=".services.main.Search"> <param name="maxSummaryKeys" value="10" /> + <param name="maxRecordsInKeywordSummary" value="1000" /> </class> <output sheet="rss-search.xsl" contentType="application/rss+xml; charset=UTF-8"> <call name="rssItems" class=".services.main.Result" /> Modified: sandbox/BlueNetMEST/web/geonetwork/loc/en/xml/strings.xml =================================================================== --- sandbox/BlueNetMEST/web/geonetwork/loc/en/xml/strings.xml 2010-02-24 23:07:27 UTC (rev 5794) +++ sandbox/BlueNetMEST/web/geonetwork/loc/en/xml/strings.xml 2010-02-27 06:10:24 UTC (rev 5795) @@ -614,7 +614,7 @@ <timeoutChoice value="10">after 10 seconds</timeoutChoice> <timeoutChoice value="20">after 20 seconds</timeoutChoice> <timeoutChoice value="30">after 30 seconds</timeoutChoice> - <title>BlueNet MEST Version 1.3 091209 - svn revision 5593</title> + <title>BlueNet MEST Version 1.3 100210 - svn revision ????</title> <to>To</to> <tools>Tools</tools> <tooltips>Tooltips</tooltips> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |