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

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

Introduction

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

Prototype

public SolrQuery setQuery(String query) 

Source Link

Usage

From source file:com.idealista.solrmeter.model.service.impl.QueryServiceSolrJImpl.java

License:Apache License

protected SolrQuery createQuery(String q, String fq, String qt, boolean highlight, String facetFields,
        String sort, String sortOrder, Integer rows, Integer start, String otherParams) throws QueryException {
    SolrQuery query = new SolrQuery();
    if (q != null) {
        query.setQuery(q);
    }//from  www  . ja va 2  s. c o m
    if (fq != null) {
        List<String> filterQueries = this.getFilterQueries(fq);
        for (String filterQuery : filterQueries) {
            query.addFilterQuery(filterQuery);
        }
    }

    query.setHighlight(highlight);
    if (facetFields == null || "".equals(facetFields)) {
        query.setFacet(false);
    } else {
        query.setFacet(true);
        List<String> facets = this.getFacets(facetFields);
        for (String facet : facets) {
            query.addFacetField(facet);
        }
    }
    if (sort != null && !"".equals(sort)) {
        query.setSort(sort, ORDER.valueOf(sortOrder));
    }
    if (rows != null && rows < 0) {
        throw new QueryException("Rows can't be less than 0");
    } else if (rows != null) {
        query.setRows(rows);
    }
    if (start != null && start < 0) {
        throw new QueryException("Rows can't be less than 0");
    } else if (start != null) {
        query.setStart(start);
    }

    if (otherParams != null) {
        List<String> params = this.getOtherParams(otherParams);
        for (String param : params) {
            query.add(getParamName(param), getParamValue(param));
        }
    }
    return query;
}

From source file:com.idealista.solrmeter.statistic.QueryLogStatisticTestCase.java

License:Apache License

private QueryException createQueryException() {
    QueryException queryException = new QueryException();
    SolrQuery query = new SolrQuery();
    query.setQuery("test");
    query.setFilterQueries("field=value");
    query.addFacetQuery("filterQuery=value");
    queryException.setQuery(query);/*from w  w w  .  j a va2 s . c o m*/
    return queryException;
}

From source file:com.ir.qa.QueryProcessor.SpellCorrector.java

License:Apache License

public String topSuggestion(String spelling) throws SolrServerException {
    HttpSolrServer solr = new HttpSolrServer("http://localhost:8983/solr");
    SolrQuery query = new SolrQuery();
    query.setFields("name");
    query.setRows(50);//from ww w .ja  va 2  s .c  o  m
    query.setQuery("wordNGram:" + spelling); //<co id="co.dym.field"/>
    QueryResponse response = solr.query(query);
    SolrDocumentList results = response.getResults();
    Levenshtein levenshtein = new Levenshtein();
    float maxDistance = 0;
    float distance = 0;
    String suggestion = null;
    List<String> nameList = new ArrayList<String>();

    for (int i = 0; i < results.size(); i++) {
        // System.out.println(results.get(i));
        SolrDocument doc = results.get(i);

        nameList = (List<String>) doc.getFieldValue("name");
        for (String name_suggestions : nameList) {
            distance = levenshtein.getSimilarity(name_suggestions, spelling);
            System.out.println(name_suggestions);

            System.out.println(distance);

            if (distance > maxDistance) {
                maxDistance = distance;
                suggestion = name_suggestions;
            }
        }

        if (maxDistance > threshold) { //<co id="co.dym.threshold"/>

            return suggestion;
        }
    }

    return null;
}

From source file:com.lanacion.adminsiteln.config.SolrConnection.java

public int countDocuments(String UserQuery) throws SolrServerException {
    SolrQuery query = new SolrQuery();
    if (UserQuery.length() > 0) {
        query.setQuery(UserQuery);
    } else {//from  www.  j  av a  2 s.  c o  m
        query.setQuery("*:*");
    }
    //query.addFilterQuery("cat:electronics","store:amazon.com");
    query.setFields("titulo", "cuerpo");
    query.setStart(0);
    query.setRows(10000);
    query.set("defType", "edismax");

    QueryResponse response = solrCore.query(query);
    SolrDocumentList results = response.getResults();

    return results.size();
}

From source file:com.liferay.portal.search.solr.internal.SolrIndexSearcher.java

License:Open Source License

protected QueryResponse doSearch(SearchContext searchContext, Query query, int start, int end, boolean count)
        throws Exception {

    QueryConfig queryConfig = query.getQueryConfig();

    SolrQuery solrQuery = new SolrQuery();

    if (!count) {
        addFacets(solrQuery, searchContext);
        addHighlights(solrQuery, queryConfig);
        addPagination(solrQuery, start, end);
        addSelectedFields(solrQuery, queryConfig);
        addSort(solrQuery, searchContext.getSorts());

        solrQuery.setIncludeScore(queryConfig.isScoreEnabled());
    } else {//from  w w w .ja  va  2s.  c  o m
        solrQuery.setRows(0);
    }

    String queryString = translateQuery(query, searchContext);

    solrQuery.setQuery(queryString);

    String filterQuery = _filterTranslator.translate(query.getPreBooleanFilter(), searchContext);

    solrQuery.setFilterQueries(filterQuery);

    QueryResponse queryResponse = executeSearchRequest(solrQuery);

    if (_log.isInfoEnabled()) {
        _log.info("The search engine processed " + solrQuery.getQuery() + " in "
                + queryResponse.getElapsedTime() + " ms");
    }

    return queryResponse;
}

From source file:com.liferay.portal.search.solr.internal.SolrQuerySuggester.java

License:Open Source License

@Override
public String[] suggestKeywordQueries(SearchContext searchContext, int max) throws SearchException {

    SolrQuery solrQuery = new SolrQuery();

    solrQuery.setFilterQueries(getFilterQueries(searchContext, SuggestionConstants.TYPE_QUERY_SUGGESTION));

    StringBundler sb = new StringBundler(6);

    sb.append("start");

    String keywords = searchContext.getKeywords();

    sb.append(keywords.length());//w  w  w  .j  a  v  a  2s . com

    sb.append(StringPool.COLON);
    sb.append(StringPool.QUOTE);
    sb.append(keywords);
    sb.append(StringPool.QUOTE);

    solrQuery.setQuery(sb.toString());

    solrQuery.setRows(max);

    try {
        QueryResponse queryResponse = _solrServer.query(solrQuery);

        SolrDocumentList solrDocumentList = queryResponse.getResults();

        String[] querySuggestions = new String[solrDocumentList.size()];

        for (int i = 0; i < solrDocumentList.size(); i++) {
            SolrDocument solrDocument = solrDocumentList.get(i);

            querySuggestions[i] = (String) solrDocument.getFieldValue(Field.KEYWORD_SEARCH);
        }

        return querySuggestions;
    } catch (Exception e) {
        if (_log.isDebugEnabled()) {
            _log.debug("Unable to execute Solr query", e);
        }

        throw new SearchException(e.getMessage());
    }
}

From source file:com.liferay.portal.search.solr.internal.suggest.NGramQueryBuilderImpl.java

License:Open Source License

@Override
public SolrQuery getNGramQuery(String input) throws SearchException {
    SolrQuery solrQuery = new SolrQuery();

    if (_nGramHolderBuilder == null) {
        return solrQuery;
    }//from   ww w .  j ava2  s  . c om

    StringBundler sb = new StringBundler(10);

    NGramHolder nGramHolder = _nGramHolderBuilder.buildNGramHolder(input);

    Map<String, List<String>> nGrams = nGramHolder.getNGrams();

    addNGramsListQuery(sb, nGrams);

    if (!nGrams.isEmpty()) {
        addOrQuerySeparator(sb);
    }

    Map<String, String> nGramEnds = nGramHolder.getNGramEnds();

    addNGramsQuery(sb, nGramEnds);

    if (!nGramEnds.isEmpty()) {
        addOrQuerySeparator(sb);
    }

    Map<String, String> nGramStarts = nGramHolder.getNGramStarts();

    addNGramsQuery(sb, nGramStarts);

    if (!nGramStarts.isEmpty()) {
        addOrQuerySeparator(sb);
    }

    sb.append(Field.SPELL_CHECK_WORD);
    sb.append(StringPool.COLON);
    sb.append(input);

    solrQuery.setQuery(sb.toString());

    return solrQuery;
}

From source file:com.liferay.portal.search.solr.NGramQueryBuilderImpl.java

License:Open Source License

@Override
public SolrQuery getNGramQuery(String input) throws SearchException {
    SolrQuery solrQuery = new SolrQuery();

    StringBundler sb = new StringBundler(10);

    NGramHolder nGramHolder = NGramHolderBuilderUtil.buildNGramHolder(input);

    Map<String, List<String>> nGrams = nGramHolder.getNGrams();

    addNGramsListQuery(sb, nGrams);/*from   w  w w  .j a  va  2 s .c om*/

    if (!nGrams.isEmpty()) {
        addOrQuerySeparator(sb);
    }

    Map<String, String> nGramEnds = nGramHolder.getNGramEnds();

    addNGramsQuery(sb, nGramEnds);

    if (!nGramEnds.isEmpty()) {
        addOrQuerySeparator(sb);
    }

    Map<String, String> nGramStarts = nGramHolder.getNGramStarts();

    addNGramsQuery(sb, nGramStarts);

    if (!nGramStarts.isEmpty()) {
        addOrQuerySeparator(sb);
    }

    sb.append(Field.SPELL_CHECK_WORD);
    sb.append(StringPool.COLON);
    sb.append(input);

    solrQuery.setQuery(sb.toString());

    return solrQuery;
}

From source file:com.liferay.portal.search.solr.SolrIndexSearcher.java

License:Open Source License

protected void translateQuery(SolrQuery solrQuery, SearchContext searchContext, Query query) throws Exception {

    QueryTranslatorUtil.translateForSolr(query);

    String queryString = query.toString();

    StringBundler sb = new StringBundler(6);

    sb.append(queryString);//from  w  ww.  j a  v  a 2  s.c  o m
    sb.append(StringPool.SPACE);
    sb.append(StringPool.PLUS);
    sb.append(Field.COMPANY_ID);
    sb.append(StringPool.COLON);
    sb.append(searchContext.getCompanyId());

    SolrPostProcesor solrPostProcesor = new SolrPostProcesor(sb.toString(), searchContext.getKeywords());

    solrQuery.setQuery(solrPostProcesor.postProcess());
}

From source file:com.liferay.portal.search.solr.SolrIndexSearcherImpl.java

License:Open Source License

protected SolrQuery translateQuery(long companyId, Query query, Sort[] sorts, int start, int end)
        throws Exception {

    QueryTranslatorUtil.translateForSolr(query);

    String queryString = query.toString();

    QueryConfig queryConfig = query.getQueryConfig();

    SolrQuery solrQuery = new SolrQuery();

    solrQuery.setHighlight(queryConfig.isHighlightEnabled());
    solrQuery.setHighlightFragsize(queryConfig.getHighlightFragmentSize());
    solrQuery.setHighlightSnippets(queryConfig.getHighlightSnippetSize());
    solrQuery.setIncludeScore(queryConfig.isScoreEnabled());
    solrQuery.setQuery(queryString);

    if ((start == QueryUtil.ALL_POS) && (end == QueryUtil.ALL_POS)) {
        solrQuery.setRows(0);//from   w  ww.j a va  2  s .  co m
    } else {
        solrQuery.setRows(end - start);
        solrQuery.setStart(start);
    }

    if ((sorts != null) && (sorts.length > 0)) {
        for (Sort sort : sorts) {
            if (sort == null) {
                continue;
            }

            String sortFieldName = sort.getFieldName();

            if (ArrayUtil.contains(PortletPropsValues.SOLR_SORTABLE_TEXT_FIELDS, sortFieldName)) {

                sortFieldName = GetterUtil.getString(
                        PortletProps.get(PortletPropsKeys.SOLR_COPY_FIELDS, new Filter(sortFieldName)));
            }

            ORDER order = ORDER.asc;

            if (sortFieldName == null) {
                sortFieldName = "score";

                order = ORDER.desc;
            } else if (sort.isReverse()) {
                order = ORDER.desc;
            }

            solrQuery.addSortField(sortFieldName, order);
        }
    }

    return solrQuery;
}