List of usage examples for org.apache.solr.client.solrj SolrQuery setQuery
public SolrQuery setQuery(String query)
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; }