Author: ssthkjer Date: 2007-02-13 15:30:34 +0100 (Tue, 13 Feb 2007) New Revision: 4433
Modified: trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java Log: https://jira.sesam.no/jira/browse/SEARCH-1524 - Mangler dager i datonavigatoren Modified: trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java =================================================================== --- trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java 2007-02-13 11:29:45 UTC (rev 4432) +++ trunk/core-api/src/main/java/no/schibstedsok/searchportal/mode/command/NewsSearchCommand.java 2007-02-13 14:30:34 UTC (rev 4433) @@ -75,7 +75,6 @@ filterBuilder = new StringBuilder(super.getAdditionalFilter()); if ("se".equals(getSearchConfiguration().getProject())) { - // Add filter to retrieve all documents. if (containsJustThePrefix() || getTransformedQuery().equals("")) { filterBuilder.append(FAST_SIZE_HACK); @@ -99,18 +98,57 @@ filterBuilder.append(" +newscountry:"+ newsCountry); } } + // need a date clause in the query to get the last 50 dates for the lastnews navigator + } else if ("lastnews".equals(getSearchConfiguration().getProject())) { + GregorianCalendar calendar = new java.util.GregorianCalendar(); + calendar.add( java.util.Calendar.DATE, -49 ); + final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + String newsdate = formatter.format(calendar.getTime()); + + final String contentSource = getParameter("contentsource"); + final String newsCountry = getParameter("newscountry"); + final String newsSource = getParameter("newssource"); + + if (!contentSource.equals("Mediearkivet")) { + if (contentSource != null && !contentSource.equals("")) { + if (contentSource.equals("Norske nyheter")) { + filterBuilder.append(" AND newscountry:Norge"); + } else { + filterBuilder.append(" AND contentsource:\""+ contentSource + "\""); + } + } else { + if (newsCountry != null && !newsCountry.equals("")) + filterBuilder.append(" AND newscountry:\""+ newsCountry + "\""); + else // for newscount navigator + filterBuilder.append(" AND newscountry:Norge"); + } + filterBuilder.append(" ANDNOT meta.collection:mano"); + filterBuilder.append(" AND docdatetime:>" + newsdate); + + // PAPERNEWS: + } else { + filterBuilder.append(" AND contentsource:" + contentSource); + filterBuilder.append(" AND docdatetime:>" + newsdate); + } + } else { + final String nav_newsdateOnly = getParameter("nav_newsdateOnly2"); GregorianCalendar calendar = new java.util.GregorianCalendar(); - calendar.add( java.util.Calendar.MONTH, -24 ); final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + if (nav_newsdateOnly.equals("newsdatenavigator")) { + calendar.add( java.util.Calendar.DATE, -49 ); + } else { + calendar.add( java.util.Calendar.MONTH, -24 ); + } + String newsdate = formatter.format(calendar.getTime()); if (!getSearchConfiguration().isIgnoreNavigation()) { final String contentSource = getParameter("contentsource"); final String newsCountry = getParameter("newscountry"); - final String newsSource = getParameter("newssource"); - + final String newsSource = getParameter("newssource"); + // general rule is to display news fresher than 2 years, but with exceptions for: // "norske papiraviser" -> display for all years // certain newssources (as listed below) -> display for all years @@ -131,13 +169,16 @@ filterBuilder.append(" AND newscountry:Norge"); } filterBuilder.append(" ANDNOT meta.collection:mano"); - filterBuilder.append(" AND ( docdatetime:>" + newsdate); - filterBuilder.append(" OR newssource:Digi.no"); - filterBuilder.append(" OR newssource:DinSide"); - filterBuilder.append(" OR newssource:ITavisen"); - filterBuilder.append(" OR newssource:iMarkedet"); - filterBuilder.append(" OR newssource:Propaganda )"); - + if (nav_newsdateOnly.equals("newsdatenavigator")) { + filterBuilder.append(" AND docdatetime:>" + newsdate); + } else { + filterBuilder.append(" AND ( docdatetime:>" + newsdate); + filterBuilder.append(" OR newssource:Digi.no"); + filterBuilder.append(" OR newssource:DinSide"); + filterBuilder.append(" OR newssource:ITavisen"); + filterBuilder.append(" OR newssource:iMarkedet"); + filterBuilder.append(" OR newssource:Propaganda )"); + } // PAPERNEWS: } else { filterBuilder.append(" AND contentsource:" + contentSource); _______________________________________________ Kernel-commits mailing list [email protected] http://sesat.no/mailman/listinfo/kernel-commits
