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

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

Introduction

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

Prototype

public SolrQuery() 

Source Link

Usage

From source file:de.kp.ames.web.core.search.SearcherImpl.java

License:Open Source License

public String search(String request, String start, String limit) throws Exception {

    /*/*from   ww w. j  a  va2s . co m*/
     * Build Apache Solr query
     */
    JSONObject jQuery = new JSONObject(request);
    String term = jQuery.has(JsonConstants.J_TERM) ? jQuery.getString(JsonConstants.J_TERM) : "*";

    String fp = setFacets(jQuery);
    SolrQuery query = new SolrQuery();

    if (fp != null)
        query.addFilterQuery(fp);

    /* 
     * Paging support from Apache Solr
     */
    int s = Integer.valueOf(start);
    int r = Integer.valueOf(limit);

    query.setStart(s);
    query.setRows(r);

    String qs = term + " OR " + SearchConstants.TERMS_FIELD + ":" + term;
    query.setQuery(qs);

    QueryResponse response = solrProxy.executeQuery(query);
    SolrDocumentList docs = response.getResults();

    long total = docs.getNumFound();

    /*
     * Sort search result
     */
    StringCollector collector = new StringCollector();

    Iterator<SolrDocument> iter = docs.iterator();
    while (iter.hasNext()) {

        int pos = -1;

        SolrDocument doc = iter.next();
        JSONObject jDoc = new JSONObject();

        /* 
         * Identifier
         */
        String id = (String) doc.getFieldValue(SearchConstants.S_ID);
        jDoc.put(JsonConstants.J_ID, id);

        /* 
         * Name
         */
        String name = (String) doc.getFieldValue(SearchConstants.S_NAME);
        jDoc.put(JsonConstants.J_NAME, name);

        /* 
         * Source
         */
        String source = (String) doc.getFieldValue(SearchConstants.S_FACET);
        pos = source.lastIndexOf(":");

        jDoc.put(JsonConstants.J_FACET, source.substring(pos + 1));

        /* 
         * Description
         */
        String desc = (String) doc.getFieldValue(SearchConstants.S_DESC);
        desc = (desc == null) ? FncMessages.NO_DESCRIPTION_DESC : desc;

        jDoc.put(JsonConstants.J_DESC, desc);
        collector.put(name, jDoc);

    }

    /*
     * Render result
     */
    JSONArray jArray = new JSONArray(collector.values());
    return renderer.createGrid(jArray, total);

}

From source file:de.kp.ames.web.core.search.SearcherImpl.java

License:Open Source License

public String suggest(String request, String start, String limit) throws Exception {

    /*//w  ww.  j a v  a2 s  .  c  o m
     * Retrieve terms
     */
    SolrQuery query = new SolrQuery();

    query.setParam(CommonParams.QT, "/terms");
    query.setParam(TermsParams.TERMS, true);

    query.setParam(TermsParams.TERMS_LIMIT, SearchConstants.TERMS_LIMIT);

    query.setParam(TermsParams.TERMS_FIELD, SearchConstants.TERMS_FIELD);
    query.setParam(TermsParams.TERMS_PREFIX_STR, request);

    QueryResponse response = solrProxy.executeQuery(query);
    NamedList<Object> terms = getTerms(response);

    JSONArray jTerms = getTermValues(SearchConstants.TERMS_FIELD, terms);

    /*
     * Render result for DataSource
     */
    return jTerms.toString();

}

From source file:de.qaware.spark.ExportHandlerRddTest.java

License:Apache License

public static void main(String[] args) throws IOException {

    final String solrZkHost = "192.168.1.100:2181";
    //final String sparkMasterUrl = "local[*]";
    final String sparkMasterUrl = "spark://192.168.1.100:7077";

    SparkConf conf = new SparkConf().setMaster(sparkMasterUrl).setAppName("SparkSolrCsvAnayzer");

    try (JavaSparkContext context = new JavaSparkContext(conf)) {
        context.addJar("./build/libs/spark-solr-csv-analyzer-1.0-SNAPSHOT-all.jar");

        // make sure executors are up an running
        context.parallelize(new ArrayList<String>(), 20).map(n -> n);

        Date start = new Date();

        // SolrQuery contains the query and all required parameters for using the /export handler.
        SolrQuery solrQuery = new SolrQuery();
        solrQuery.set("q", "metric:*");

        // required parameters for the /export request handler are fl and sort
        solrQuery.set("fl", "date,metric,host,process,value");
        solrQuery.set("sort", "date asc");
        solrQuery.set("qt", "/export");

        // this does a parallel standard cursor based deep query
        SolrRDD simpleRdd = new SolrRDD(solrZkHost, "ekgdata2", context.sc(), new Some<>("/export"),
                Some.empty(), Some.empty(), Some.empty(), Some.empty(), Some.empty(), new Some<>(solrQuery));

        long exportedDocs = simpleRdd.count();

        Date end = new Date();
        long duration = end.getTime() - start.getTime();

        System.out//  www  . jav a2  s .co  m
                .println("Result: " + exportedDocs + " SolrDocuments read in Spark in " + (duration) + " ms.");

        simpleRdd.query(solrQuery);
        System.out.println(Arrays.deepToString((Object[]) simpleRdd.take(5)));

    } finally {
        //noinspection ThrowFromFinallyBlock,ResultOfMethodCallIgnored
        System.in.read();

    }
}

From source file:de.qaware.spark.StreamHandlerRddTest.java

License:Apache License

public static void main(String[] args) throws IOException {

    final String solrZkHost = "192.168.1.100:2181";
    //final String sparkMasterUrl = "local[*]";
    final String sparkMasterUrl = "spark://192.168.1.100:7077";

    SparkConf conf = new SparkConf().setMaster(sparkMasterUrl).setAppName("SparkSolrCsvAnayzer");

    try (JavaSparkContext context = new JavaSparkContext(conf)) {
        context.addJar("./build/libs/spark-solr-csv-analyzer-1.0-SNAPSHOT-all.jar");

        String expr = "search(ekgdata2, " + " q=\"metric:*used\"," + " fl=\"date,metric,value,host,process\","
                + " sort=\"date asc\"," + " qt=\"/export\")";

        SolrQuery solrQuery = new SolrQuery();
        solrQuery.set("expr", expr);

        SolrRDD streamExprRDD = new SolrRDD(solrZkHost, "ekgdata2", context.sc(), new Some<>("/stream"),
                Some.empty(), Some.empty(), Some.empty(), Some.empty(), Some.empty(), new Some<>(solrQuery));

        SolrJavaRDD rdd = new SolrJavaRDD(streamExprRDD);

        System.out.println("Result: " + rdd.count() + " Documents streamed.");

        JavaRDD<SolrDocument> docs = rdd.query("");

        List<SolrDocument> d = docs.take(10);
        System.out.println(Arrays.deepToString(d.toArray()));

    } finally {//from   ww  w  .  j  a  va 2s  .  c om
        //noinspection ThrowFromFinallyBlock,ResultOfMethodCallIgnored
        System.in.read();

    }
}

From source file:de.unidue.inf.is.ezdl.dlwrapper.wrappers.AbstractSolrWrapper.java

License:Open Source License

@Override
public final StoredDocumentList process(DocumentQuery documentQuery) {
    String solrQueryString = queryConverter.convert(documentQuery.getQuery());

    getLogger().info("Query is: " + solrQueryString);

    SolrQuery query = new SolrQuery();
    query.setIncludeScore(true);/*from   w  w w  . j  a  va2  s .  c  om*/
    query.setRows(getMaxNumberOfResults());
    query.setQuery(solrQueryString);

    try {
        QueryResponse response = server.query(query);
        SolrDocumentList hits = response.getResults();
        StoredDocumentList result = new StoredDocumentList();
        for (int i = 0; (i < hits.size()) && !isHalted(); i++) {
            SolrDocument doc = hits.get(i);
            StoredDocument stored = readDocumentFromSolrIndex(doc);
            result.add(stored);
        }
        if (!isHalted()) {
            return result;
        } else {
            return new StoredDocumentList();
        }
    } catch (SolrServerException e) {
        getLogger().error(e.getMessage(), e);
    }
    return new StoredDocumentList();
}

From source file:de.unidue.inf.is.ezdl.dlwrapper.wrappers.AbstractSolrWrapper.java

License:Open Source License

/**
 * Retrieves Solr document by its id./*from w  ww  . ja va2s.com*/
 * 
 * @param id
 *            The id
 * @param field
 *            The id field
 * @return The Solr document with the specified id
 */
protected final SolrDocument retrieveSolrDocumentForId(String id, Field field) {
    SolrQuery query = new SolrQuery();
    query.setIncludeScore(true);
    query.setRows(1);
    QueryNodeCompare queryNodeCompare = new QueryNodeCompare(field, Predicate.EQ, id);
    query.setQuery(queryConverter.convert(new DefaultQuery(queryNodeCompare)));
    QueryResponse response;
    try {
        response = server.query(query);
        SolrDocumentList hits = response.getResults();
        if (hits.size() == 1) {
            return hits.get(0);
        }
    } catch (SolrServerException e) {
        getLogger().error(e.getMessage(), e);
    }
    return null;
}

From source file:dhbw.clippinggorilla.external.solr.SOLR.java

public static Article getArticle(int id) {
    if (client == null) {
        setServer();/*  ww w.j av a2 s.  c  om*/
    }
    String q = "id:\"" + Integer.toString(id) + "\"";
    SolrQuery query = new SolrQuery();
    query.setQuery(q);

    try {
        QueryResponse queryResponse = client.query(query);
        List<Article> beans = queryResponse.getBeans(Article.class);
        if (!beans.isEmpty()) {
            return beans.get(0);
        }
    } catch (SolrServerException | IOException e) {
        Log.error("Solr: Can't Query", e);
    }
    return null;
}

From source file:dhbw.clippinggorilla.external.solr.SOLR.java

public static LinkedHashSet<Article> getArticlesFromSolr(Set<String> includedTagsSet,
        Set<String> excludedTagsSet, Map<Source, Boolean> sourcesMap, LocalDateTime date) {
    SolrQuery query = new SolrQuery();

    String include = "";
    String exclude;//from   ww  w  .j a  va 2 s .c  o m
    String sources = "source:\"";

    List<String> includedTags = new ArrayList<>(includedTagsSet);
    if (includedTags.size() > 0) {
        include = "(" + replaceWhitespaces(includedTags.get(0), true) + ")";
        for (int i = 1; i < includedTags.size(); i++) {
            include += " OR " + "(" + replaceWhitespaces(includedTags.get(i), true) + ")";
        }
    }

    List<String> excludedTags = new ArrayList<>(excludedTagsSet);
    if (excludedTags.size() > 0) {
        exclude = "-(" + replaceWhitespaces(excludedTags.get(0), false) + ")";
        for (int i = 1; i < excludedTags.size(); i++) {
            exclude += " AND " + "-(" + replaceWhitespaces(excludedTags.get(i), false) + ")";
        }
        query.addFilterQuery(exclude);
    }

    for (Map.Entry<Source, Boolean> entry : sourcesMap.entrySet()) {
        if (entry.getValue()) {
            sources = sources.concat(entry.getKey().getId() + "\" OR \"");
        }
    }
    sources = sources.substring(0, sources.length() - 5);

    query.setQuery(include);
    query.set("qf", "title^3 description^2 body");
    query.addFilterQuery("publishedAt:[" + date.toString() + " TO NOW]");
    query.addFilterQuery(sources);

    if (client == null) {
        setServer();
    }

    try {
        QueryResponse queryResponse = client.query(query);
        List<Article> response = queryResponse.getBeans(Article.class);
        return new LinkedHashSet<>(response);
    } catch (SolrServerException | IOException e) {
        Log.error("Solr: Can't Query", e);
        return new LinkedHashSet<>();
    }
}

From source file:digicom.pot.nlp.OpenNLPUtilTest.java

License:Apache License

@Test
public void testFilters() {
    List<String> queryList = new ArrayList<String>();
    queryList.add("CHEFS knife set");
    queryList.add("CHEFS kitchen towels");
    queryList.add("CHEFS red bath towels");
    queryList.add("bowl set CHEFS 6 pcs");
    queryList.add("U Tops");
    queryList.add("U white Tops");
    queryList.add("U red Tops under 10$");
    queryList.add("U pink Tops less than 10$");
    queryList.add("U pink Tops less than 10  usd");
    queryList.add("red Kitchen Towels");
    queryList.add("red Kitchen Towels under 15$");
    queryList.add("silver Platinum Pets toys");
    queryList.add("red Progear towel");
    queryList.add("red Progear towel under 18$");
    queryList.add("Dickies blue pant");
    queryList.add("Dickies kids clothes");
    queryList.add("black Dickies thermal inner");
    queryList.add("Onyx U sweater");
    queryList.add("Onyx sweater");
    ColorHelper colorHelper = new ColorHelper();
    BrandHelper bhelper = new BrandHelper();
    PriceHelper pricehelper = new PriceHelper();

    SearchQueryProcessor sqp = new SearchQueryProcessor();
    SolrQuery query = new SolrQuery();
    String queryString = null;/*from   ww  w  .  j  av  a2s.co m*/
    for (String document : queryList) {
        System.out.println("=================================================");
        /*
         * System.out.println("Colors : " + colorHelper.getColors(document,
         * extractor)); System.out.println("Brand : " +
         * bhelper.getBrands(document, extractor));
         * System.out.println("Price : " + pricehelper.parseString(document,
         * extractor));
         */
        sqp.applyColorFilter(document, extractor, query);
        sqp.applyBrandFilter(document, extractor, query);
        queryString = sqp.applyPriceFilter(document, extractor, query);
        query.setQuery(queryString);
        System.out.println(query);

    }

}

From source file:edu.cmu.lti.f12.hw2.hw2_team01.retrieval.SimpleSolrWrapper.java

License:Apache License

public SolrDocumentList runQuery(String q, int results) throws SolrServerException {
    SolrQuery query = new SolrQuery();
    query.setQuery(escapeQuery(q));//from  ww  w  . j  a  v  a2  s. c om
    query.setRows(results);
    query.setFields("*", "score");
    System.out.println(query.toString());

    QueryResponse rsp = server.query(query);
    return rsp.getResults();
}