Example usage for org.apache.solr.client.solrj SolrQuery getQuery

List of usage examples for org.apache.solr.client.solrj SolrQuery getQuery

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery getQuery.

Prototype

public String getQuery() 

Source Link

Usage

From source file:ddf.catalog.source.solr.SolrFilterDelegateTest.java

License:Open Source License

@Test
public void testDatePropertyLessThanOrEqualTo() {
    stub(mockResolver.getField("created", AttributeFormat.DATE, false)).toReturn("created_date");

    String expectedQuery = " created_date:[ * TO 1995-11-24T23:59:56.765Z ] ";
    SolrQuery temporalQuery = toTest.propertyIsLessThanOrEqualTo(Metacard.CREATED, getCannedTime());
    assertThat(temporalQuery.getQuery(), is(expectedQuery));
}

From source file:ddf.catalog.source.solr.SolrFilterDelegateTest.java

License:Open Source License

@Test
public void testDatePropertyIsBetween() {
    stub(mockResolver.getField("created", AttributeFormat.DATE, false)).toReturn("created_date");

    String expectedQuery = " created_date:[ 1995-11-24T23:59:56.765Z TO 1995-11-27T04:59:56.765Z ] ";
    SolrQuery temporalQuery = toTest.propertyIsBetween(Metacard.CREATED, getCannedTime(),
            getCannedTime(1995, Calendar.NOVEMBER, 27, 4));
    assertThat(temporalQuery.getQuery(), is(expectedQuery));
}

From source file:ddf.catalog.source.solr.SolrMetacardClient.java

License:Open Source License

protected SolrQuery getSolrQuery(QueryRequest request, SolrFilterDelegate solrFilterDelegate)
        throws UnsupportedQueryException {
    solrFilterDelegate.setSortPolicy(request.getQuery().getSortBy());
    SolrQuery query = filterAdapter.adapt(request.getQuery(), solrFilterDelegate);

    // Solr does not support outside parenthesis in certain queries and throws EOF exception.
    String queryPhrase = query.getQuery().trim();
    if (queryPhrase.matches("\\(\\s*\\{!.*\\)")) {
        query.setQuery(queryPhrase.replaceAll("^\\(\\s*|\\s*\\)$", ""));
    }//from w  w w. j  a  v a 2  s .  c  o m

    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Prepared Query: {}", query.getQuery());
        if (query.getFilterQueries() != null && query.getFilterQueries().length > 0) {
            LOGGER.debug("Filter Queries: {}", Arrays.toString(query.getFilterQueries()));
        }
    }

    if (request.getQuery().getPageSize() < 1) {
        query.setRows(Integer.MAX_VALUE);
    } else {
        query.setRows(request.getQuery().getPageSize());
    }

    /* Start Index */
    if (request.getQuery().getStartIndex() < 1) {
        throw new UnsupportedQueryException("Start index must be greater than 0");
    }

    // Solr is 0-based
    query.setStart(request.getQuery().getStartIndex() - 1);

    return query;
}

From source file:ddf.catalog.source.solr.SolrMetacardClientImpl.java

License:Open Source License

protected SolrQuery postAdapt(QueryRequest request, SolrFilterDelegate filterDelegate, SolrQuery query)
        throws UnsupportedQueryException {
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Prepared Query: {}", query.getQuery());
        if (query.getFilterQueries() != null && query.getFilterQueries().length > 0) {
            LOGGER.debug("Filter Queries: {}", Arrays.toString(query.getFilterQueries()));
        }//from   w w  w . j a  v  a2s  . com
    }

    if (request.getQuery().getPageSize() < 1) {
        //TODO: Needs to pass in something else.
        query.setRows(Integer.MAX_VALUE);
    } else {
        query.setRows(request.getQuery().getPageSize());
    }

    /* Start Index */
    if (request.getQuery().getStartIndex() < 1) {
        throw new UnsupportedQueryException("Start index must be greater than 0");
    }

    // Solr is 0-based
    query.setStart(request.getQuery().getStartIndex() - 1);

    setSortProperty(request, query, filterDelegate);

    return query;
}

From source file:ddf.catalog.source.solr.TestSolrFilterDelegate.java

License:Open Source License

@Test
public void reservedSpecialCharactersIsLike() {
    // given a tokenized text property
    stub(mockResolver.getField("testProperty", AttributeFormat.STRING, false))
            .toReturn("testProperty_txt_index");
    stub(mockResolver.getCaseSensitiveField("testProperty_txt_index"))
            .toReturn("testProperty_txt_index_tokenized");

    // when searching for like reserved characters
    SolrQuery likeQuery = toTest.propertyIsLike("testProperty", "+ - && || ! ( ) { } [ ] ^ \" ~ : \\*?", true);

    // then return escaped special characters in the query
    assertThat(likeQuery.getQuery(), is(
            "testProperty_txt_index_tokenized:(\\+ \\- \\&& \\|| \\! \\( \\) \\{ \\} \\[ \\] \\^ \\\" \\~ \\: \\*?)"));
}

From source file:ddf.catalog.source.solr.TestSolrFilterDelegate.java

License:Open Source License

@Test
public void testPropertyIsLikeWildcard() {
    String searchPhrase = "abc-123*";
    String expectedQuery = SolrFilterDelegate.WHITESPACE_TOKENIZED_METADATA_FIELD + ":(abc\\-123*)";
    boolean isCaseSensitive = false;

    SolrQuery isLikeQuery = toTest.propertyIsLike(Metacard.ANY_TEXT, searchPhrase, isCaseSensitive);

    assertThat(isLikeQuery.getQuery(), is(expectedQuery));

}

From source file:ddf.catalog.source.solr.TestSolrFilterDelegate.java

License:Open Source License

@Test
public void testPropertyIsLikeWildcardNoTokens() {
    String searchPhrase = "title*";
    String expectedQuery = SolrFilterDelegate.WHITESPACE_TOKENIZED_METADATA_FIELD + ":(title*)";
    boolean isCaseSensitive = false;

    SolrQuery isLikeQuery = toTest.propertyIsLike(Metacard.ANY_TEXT, searchPhrase, isCaseSensitive);

    assertThat(isLikeQuery.getQuery(), is(expectedQuery));

}

From source file:ddf.catalog.source.solr.TestSolrFilterDelegate.java

License:Open Source License

@Test
public void testPropertyIsLikeMultipleTermsWithWildcard() {
    String searchPhrase = "abc 123*";
    String expectedQuery = SolrFilterDelegate.WHITESPACE_TOKENIZED_METADATA_FIELD + ":(abc 123*)";

    SolrQuery isLikeQuery = toTest.propertyIsLike(Metacard.ANY_TEXT, searchPhrase, false);

    assertThat(isLikeQuery.getQuery(), is(expectedQuery));

}

From source file:ddf.catalog.source.solr.TestSolrFilterDelegate.java

License:Open Source License

@Test
public void testPropertyIsLikeCaseSensitiveWildcard() {
    String searchPhrase = "abc-123*";
    String expectedQuery = SolrFilterDelegate.WHITESPACE_TOKENIZED_METADATA_FIELD + SchemaFields.HAS_CASE
            + ":(abc\\-123*)";

    SolrQuery isLikeQuery = toTest.propertyIsLike(Metacard.ANY_TEXT, searchPhrase, true);

    assertThat(isLikeQuery.getQuery(), is(expectedQuery));
}

From source file:de.qaware.chronix.storage.solr.ChronixSolrCloudStorage.java

License:Apache License

/**
 * Fetches a stream of time series only from a single node with CloudSolrStream.
 *
 * @param zkHost//  w  ww. j  ava 2s  . c om
 * @param collection
 * @param shardUrl
 * @param query
 * @param converter
 * @return
 * @throws IOException
 */
private Stream<MetricTimeSeries> streamWithCloudSolrStream(String zkHost, String collection, String shardUrl,
        SolrQuery query, TimeSeriesConverter<MetricTimeSeries> converter) throws IOException {

    Map params = new HashMap();
    params.put("q", query.getQuery());
    params.put("sort", "id asc");
    params.put("shards", extractShardIdFromShardUrl(shardUrl));

    params.put("fl", Schema.DATA + ", " + Schema.ID + ", " + Schema.START + ", " + Schema.END
            + ", metric, host, measurement, process, ag, group");
    params.put("qt", "/export");
    params.put("distrib", false);

    CloudSolrStream solrStream = new CloudSolrStream(zkHost, collection, params);
    solrStream.open();
    SolrTupleStreamingService tupStream = new SolrTupleStreamingService(solrStream, converter);
    return StreamSupport.stream(Spliterators.spliteratorUnknownSize(tupStream, Spliterator.SIZED), false);
}