protected Filter createBaseFilter(QueryProcessor q, String suffix) { if (q.wantPlaces() && q.wantTimes()) { TermsFilter timeFilter = new TermsFilter(); if (q.isTime_key()) timeFilter.addTerm(new Term(Config.S_HAS_TIME_POINTS_KEY + suffix, "true")); else timeFilter.addTerm( new Term(Config.S_HAS_ANY_TIME_POINT + suffix, "true")); // OPTAR POR DURACOES TermsFilter filterGeo = new TermsFilter(); filterGeo.addTerm(new Term(Config.S_GEO_INDEXED + suffix, "true")); Filter[] filterChain = new Filter[] {filterGeo, timeFilter}; int[] actionType = new int[] {SerialChainFilter.AND, SerialChainFilter.AND}; return new SerialChainFilter(filterChain, actionType); } else if (q.wantPlaces()) { TermsFilter filter = new TermsFilter(); filter.addTerm(new Term(Config.S_GEO_INDEXED + suffix, "true")); return filter; } else if (q.wantTimes()) { if (q.isTime_key()) { TermsFilter filter = new TermsFilter(); filter.addTerm(new Term(Config.S_HAS_YYYY_KEY + suffix, "true")); return filter; } else { TermsFilter filter = new TermsFilter(); filter.addTerm( new Term(Config.S_HAS_ANY_TIME_POINT + suffix, "true")); // OPTAR POR DURACOES return filter; } } else return null; }
private void addFilterQueries( QueryProcessor queryProcessor, QueryProcessor.QueryTarget queryTarget, StringBuilder finalQuery) { String queryPlaceRefsFilters = queryProcessor.getPlaceRefsFiltersAsQueries(queryTarget, Config.placeRefFactor); String queryPlaceBelongTosFilters = queryProcessor.getPlaceFiltersAsQueriesBelongTos(queryTarget, Config.belongTosFactor); String queryPlaceTypeFilters = queryProcessor.getPlaceTypeFiltersAsQueries(queryTarget); String queryTimeFiltersKeys = null; String queryTimeFiltersRelative = null; String queryTimeFiltersDuration = null; String queryTimeTypeFilters; if (queryProcessor.isTime_key()) { queryTimeFiltersKeys = queryProcessor.getTimeKeyPointsFiltersAsQueries(queryTarget, "1"); queryTimeTypeFilters = queryProcessor.getTimeKeyTypeFiltersAsQueries(queryTarget); } else { queryTimeFiltersKeys = queryProcessor.getTimeKeyPointsFiltersAsQueries(queryTarget, Config.keyTimeFactor); queryTimeFiltersRelative = queryProcessor.getTimeRelativePointsFiltersAsQueries( queryTarget, Config.relativeTimeFactor); // queryTimeFiltersDuration = // queryProcessor.getTimeDurationPointsFiltersAsQueries(queryTarget, // Config.durationTimeFactor); queryTimeTypeFilters = queryProcessor.getTimeTypeFiltersAsQueries(queryTarget); } // append FILTER QUERIES if (queryPlaceRefsFilters != null && queryPlaceRefsFilters.trim().length() > 0) finalQuery.append(" ").append(queryPlaceRefsFilters); if (usePlaceRefsBelongTosFiltersInQuery && queryPlaceBelongTosFilters != null && queryPlaceBelongTosFilters.trim().length() > 0) finalQuery.append(" ").append(queryPlaceBelongTosFilters); if (usePlaceRefsTypesFiltersInQuery && queryPlaceTypeFilters != null && queryPlaceTypeFilters.trim().length() > 0) finalQuery.append(" ").append(queryPlaceTypeFilters); if (queryTimeFiltersKeys != null && queryTimeFiltersKeys.trim().length() > 0) finalQuery.append(" ").append(queryTimeFiltersKeys); if (queryTimeFiltersRelative != null && queryTimeFiltersRelative.trim().length() > 0) finalQuery.append(" ").append(queryTimeFiltersRelative); if (queryTimeFiltersDuration != null && queryTimeFiltersDuration.trim().length() > 0) finalQuery.append(" ").append(queryTimeFiltersDuration); if (queryTimeTypeFilters != null && queryTimeTypeFilters.trim().length() > 0) finalQuery.append(" ").append(queryTimeTypeFilters); }
private void addTermQueries( QueryProcessor queryProcessor, QueryProcessor.QueryTarget queryTarget, StringBuilder finalQuery) { String queryTermsSentences = queryProcessor.getTermsQuery(queryTarget); String queryPlacesRef = queryProcessor.getPlacesRefQuery(queryTarget, Config.placeRefFactor); String queryPlacesBelongTos = queryProcessor.getPlacesBeolongTosQuery(queryTarget, Config.belongTosFactor); String queryTimesKeys; String queryTimesRelative = null; String queryTimesDuration = null; if (queryProcessor.isTime_key()) queryTimesKeys = queryProcessor.getTimesQueryKeyTimeExpressions(queryTarget, "1"); else { queryTimesKeys = queryProcessor.getTimesQueryKeyTimeExpressions(queryTarget, Config.keyTimeFactor); queryTimesRelative = queryProcessor.getTimesQueryRelativeTimeExpressions( queryTarget, Config.relativeTimeFactor); // queryTimesDuration = // queryProcessor.getTimesQueryDurationsTimeExpressions(queryTarget, // Config.durationTimeFactor); } finalQuery.append(queryTermsSentences); if (queryPlacesRef != null && queryPlacesRef.trim().length() > 0) finalQuery.append(" ").append(queryPlacesRef); if (queryPlacesBelongTos != null && queryPlacesBelongTos.trim().length() > 0) finalQuery.append(" ").append(queryPlacesBelongTos); if (queryTimesKeys != null && queryTimesKeys.trim().length() > 0) finalQuery.append(" ").append(queryTimesKeys); if (queryTimesRelative != null && queryTimesRelative.trim().length() > 0) finalQuery.append(" ").append(queryTimesRelative); if (queryTimesDuration != null && queryTimesDuration.trim().length() > 0) finalQuery.append(" ").append(queryTimesDuration); }