Package org.sonar.server.search

Examples of org.sonar.server.search.QueryContext


    return findByKey(RuleKey.of(repositoryKey, key));
  }

  @Override
  public final org.sonar.api.rules.Rule find(org.sonar.api.rules.RuleQuery query) {
    Result<Rule> result = index.search(toQuery(query), new QueryContext());
    if (!result.getHits().isEmpty()) {
      return toRule(result.getHits().get(0));
    } else {
      return null;
    }
View Full Code Here


  }

  @Override
  public final Collection<org.sonar.api.rules.Rule> findAll(org.sonar.api.rules.RuleQuery query) {
    List<org.sonar.api.rules.Rule> rules = newArrayList();
    for (Rule rule : index.search(toQuery(query), new QueryContext()).getHits()) {
      rules.add(toRule(rule));
    }
    return rules;
  }
View Full Code Here

  @Override
  public void handle(Request request, Response response) {
    ActivityQuery query = logService.newActivityQuery();
    SearchOptions searchOptions = SearchOptions.create(request);
    QueryContext queryContext = mapping.newQueryOptions(searchOptions);

    Result<Activity> results = logService.search(query, queryContext);

    JsonWriter json = response.newJsonWriter().beginObject();
    searchOptions.writeStatistics(json, results);
View Full Code Here

    }
  }

  public void executeQueries() {
    long start = System.currentTimeMillis();
    Result<Issue> result = issueIndex.search(IssueQuery.builder().build(), new QueryContext());
    LOGGER.info("Search for all issues : returned {} issues in {} ms", result.getTotal(), System.currentTimeMillis() - start);

    start = System.currentTimeMillis();
    ComponentDto project = componentsByProject.keySet().iterator().next();
    result = issueIndex.search(IssueQuery.builder().projectUuids(newArrayList(project.uuid())).build(), new QueryContext());
    LOGGER.info("Search for issues from one project : returned {} issues in {} ms", result.getTotal(), System.currentTimeMillis() - start);

    start = System.currentTimeMillis();
    ComponentDto file = componentsByProject.get(project).get(0);
    result = issueIndex.search(IssueQuery.builder().componentUuids(newArrayList(file.uuid())).build(), new QueryContext());
    LOGGER.info("Search for issues from one file : returned {} issues in {} ms", result.getTotal(), System.currentTimeMillis() - start);
  }
View Full Code Here

    return QueryContext.MAX_LIMIT;
  }

  @VisibleForTesting
  static QueryContext toContext(Map<String, Object> props) {
    QueryContext context = new QueryContext();
    Integer pageIndex = RubyUtils.toInteger(props.get(IssueFilterParameters.PAGE_INDEX));
    Integer pageSize = RubyUtils.toInteger(props.get(IssueFilterParameters.PAGE_SIZE));
    if (pageSize != null && pageSize < 0) {
      context.setMaxLimit();
    } else {
      context.setPage(pageIndex != null ? pageIndex : 1, pageSize != null ? pageSize : 100);
    }
    return context;
  }
View Full Code Here

  BulkChangeResult bulkActivate(RuleQuery ruleQuery, String profileKey, @Nullable String severity) {
    BulkChangeResult result = new BulkChangeResult();
    RuleIndex ruleIndex = index.get(RuleIndex.class);
    DbSession dbSession = db.openSession(false);
    try {
      Result<Rule> ruleSearchResult = ruleIndex.search(ruleQuery, new QueryContext().setScroll(true)
        .setFieldsToReturn(Arrays.asList(RuleNormalizer.RuleField.KEY.field())));
      Iterator<Rule> rules = ruleSearchResult.scroll();
      while (rules.hasNext()) {
        Rule rule = rules.next();
        try {
View Full Code Here

  BulkChangeResult bulkDeactivate(RuleQuery ruleQuery, String profile) {
    DbSession dbSession = db.openSession(false);
    try {
      RuleIndex ruleIndex = index.get(RuleIndex.class);
      BulkChangeResult result = new BulkChangeResult();
      Result<Rule> ruleSearchResult = ruleIndex.search(ruleQuery, new QueryContext().setScroll(true)
        .setFieldsToReturn(Arrays.asList(RuleNormalizer.RuleField.KEY.field())));
      Iterator<Rule> rules = ruleSearchResult.scroll();
      while (rules.hasNext()) {
        try {
          Rule rule = rules.next();
View Full Code Here

    return result;
  }

  private List<Issue> getByKeysForUpdate(List<String> issueKeys) {
    // Load from index to check permission
    List<Issue> authorizedIndexIssues = issueService.search(IssueQuery.builder().issueKeys(issueKeys).build(), new QueryContext().setMaxLimit()).getHits();
    List<String> authorizedIssueKeys = newArrayList(Iterables.transform(authorizedIndexIssues, new Function<Issue, String>() {
      @Override
      public String apply(@Nullable Issue input) {
        return input != null ? input.key() : null;
      }
View Full Code Here

  public Set<String> supportedFields() {
    return mappers.keySet();
  }

  public QueryContext newQueryOptions(SearchOptions options) {
    QueryContext result = new QueryContext();
    result.setPage(options.page(), options.pageSize());
    List<String> optionFields = options.fields();
    if (optionFields != null) {
      for (String optionField : optionFields) {
        result.addFieldsToReturn(indexFieldsByWsFields.get(optionField));
      }
    }
    return result;
  }
View Full Code Here

  @Override
  public void handle(Request request, Response response) {
    RuleQuery query = createRuleQuery(ruleService.newRuleQuery(), request);
    SearchOptions searchOptions = SearchOptions.create(request);
    QueryContext queryContext = mapping.newQueryOptions(searchOptions);
    Boolean facets = request.paramAsBoolean(PARAM_FACETS);
    if (facets != null && facets) {
      queryContext.addFacets(Arrays.asList("languages", "repositories", "tags"));
    }

    Result<Rule> results = ruleService.search(query, queryContext);

    JsonWriter json = response.newJsonWriter().beginObject();
    searchOptions.writeStatistics(json, results);
    writeRules(results, json, searchOptions);
    if (searchOptions.hasField("actives")) {
      activeRuleCompleter.completeSearch(query, results.getHits(), json);
    }
    if (queryContext.isFacet()) {
      writeFacets(results, json);
    }
    json.endObject().close();
  }
View Full Code Here

TOP

Related Classes of org.sonar.server.search.QueryContext

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.