Exemplo n.º 1
0
    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;
    }
Exemplo n.º 2
0
  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);
  }
Exemplo n.º 3
0
  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);
  }