List of usage examples for org.apache.solr.client.solrj SolrQuery setFilterQueries
public SolrQuery setFilterQueries(String... fq)
From source file:at.pagu.soldockr.core.QueryParser.java
License:Apache License
private void appendFilterQuery(SolrQuery solrQuery, List<FilterQuery> filterQueries) { if (CollectionUtils.isEmpty(filterQueries)) { return;// w ww . java 2s . c om } List<String> filterQueryStrings = getFilterQueryStrings(filterQueries); if (!filterQueryStrings.isEmpty()) { solrQuery.setFilterQueries(convertStringListToArray(filterQueryStrings)); } }
From source file:bamboo.trove.rule.RuleChangeUpdateManager.java
License:Apache License
private SolrQuery createQuery(String query) { SolrQuery q = new SolrQuery("*:*"); // TODO: Should we add a request handler to the solr cluster to get metrics // on the volume and/or performance of these searches in their own bucket? q.setFilterQueries(query); q.setFields(SOLR_FIELDS);//w w w . j a va2s . co m q.setSort(SortClause.asc(SolrEnum.ID.toString())); q.setRows(solrReadSize); return q; }
From source file:com.comm.sr.service.solr.SolrQueryGenerator.java
@Override public SolrQuery generateFinalQuery(CommonQuery query) { SolrQuery solrQuery = new SolrQuery(); StringBuilder queryStr = new StringBuilder(); StringBuilder filterQueryStr = new StringBuilder(); int pageNum = query.getPageNum(); if (pageNum < 1) { // default first page pageNum = 1;//www . j a va 2s. c om } else { pageNum = query.getPageNum(); } List<QueryItem> queryItems = query.getQueryItems(); if (queryItems == null) { queryItems = Lists.newArrayList(); } List<SortItem> sortItems = query.getSortItems(); if (sortItems == null) { sortItems = Lists.newArrayList(); } for (QueryItem queryItem : queryItems) { if (queryItem.isIsFilterType()) { String temp = generateQueryStrFromQueryItem(queryItem); if (temp != null) { filterQueryStr.append(temp + " AND "); } } if (!queryItem.isIsFilterType()) { String temp = generateQueryStrFromQueryItem(queryItem); if (temp != null) { queryStr.append(temp + " AND "); } } } for (String functionQueryString : query.getFunctionQuerysList()) { queryStr.append("_query_:\"{!func}" + functionQueryString + "\"" + " AND "); } // check if final queryStr is empty if (queryStr.toString().trim().length() == 0) { queryStr.append("*:*"); } // delete last AND if (queryStr.toString().contains("AND")) { int and = queryStr.lastIndexOf("AND"); queryStr.replace(and, and + 3, ""); } if (filterQueryStr.toString().contains("AND")) { int and = filterQueryStr.lastIndexOf("AND"); filterQueryStr.replace(and, and + 3, ""); } for (SortItem sortItem : sortItems) { String fieldName = sortItem.getFieldName(); String order = sortItem.getSort(); if (order == null) { LOGGER.info("ingore sort fieldName:" + fieldName + ", please configure it."); continue; } if (order.trim().equals("asc")) { solrQuery.setSort(fieldName, SolrQuery.ORDER.asc); } if (order.trim().equals("desc")) { solrQuery.addSort(fieldName, SolrQuery.ORDER.desc); } } solrQuery.setQuery(queryStr.toString()); if (filterQueryStr.toString().length() != 0) { solrQuery.setFilterQueries(filterQueryStr.toString()); } LOGGER.debug("final queryStr is:" + queryStr.toString() + ""); LOGGER.debug("filter queryStr is:" + filterQueryStr.toString() + ""); // //only response userID,score // solrQuery.setFields("userID","score"); for (String fl : query.getFls()) { solrQuery.addField(fl); } int pageSize = query.getPageSize(); solrQuery.add("start", String.valueOf((pageNum - 1) * pageSize)); solrQuery.add("rows", String.valueOf(pageSize)); // if have distance query // fq=_query_:%22{!geofilt}%22&sfield=location&pt=45.15,-93.85&d=50000&sort=geodist()%20asc&fl=score,geodist(),location String location = query.getLocationPoint(); Double distance = query.getDistance(); if (location != null && distance != null) { solrQuery.add("d", distance.toString()); solrQuery.add("pt", location); solrQuery.add("sfield", "location"); solrQuery.add("fq", "_query_:{!geofilt}"); solrQuery.addSort("geodist()", SolrQuery.ORDER.asc); } return solrQuery; }
From source file:com.frank.search.solr.core.DefaultQueryParser.java
License:Apache License
/** * Set filter filter queries for//w w w .j a va 2 s . c o m * {@link org.apache.solr.client.solrj.SolrQuery} * * @param solrQuery * @param filterQueries */ protected void appendFilterQuery(SolrQuery solrQuery, List<FilterQuery> filterQueries) { if (CollectionUtils.isEmpty(filterQueries)) { return; } List<String> filterQueryStrings = getFilterQueryStrings(filterQueries); if (!filterQueryStrings.isEmpty()) { solrQuery.setFilterQueries(convertStringListToArray(filterQueryStrings)); } }
From source file:com.googlecode.solrgeonames.server.GeoServlet.java
License:Open Source License
/** * Prepare a 'suggest' query response// w ww. j a v a2 s . c o m * * @param request The incoming request * @param response The response object * @throws IOException If errors found */ private QueryResponse runQuery(String query, int start, int rows, String fields, String filter, String[] facets, int facetLimit) throws Exception { SolrQuery q = new SolrQuery(); q.setQuery(query); q.setStart(start); q.setRows(rows); q.setFields(fields); if (filter != null) { q.setFilterQueries(filter); } if (facets != null) { q.setFacet(true); q.setFacetLimit(facetLimit); q.addFacetField(facets); } else { q.setFacet(false); } return solrServer.query(q); }
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 ww . j a v a 2 s . c om*/ return queryException; }
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. j ava 2s . co 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());//from w ww.j a va2 s . c o m 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.mmj.app.lucene.solr.utils.BaseSolrQueryConvert.java
License:Open Source License
protected static SolrQuery createSearchQuery(List<String> params, List<String> fiters, SearchQuery searchQuery, String... searchHandler) { SolrQuery solrQuery = new SolrQuery(); String query = null;//from w w w .j a va 2 s . c o m if (Argument.isEmpty(params)) { query = ("*:*"); } else { query = StringUtils.join(params, " AND "); if (!StringUtils.join(params.toArray()).contains("*")) { if (Argument.isNotEmptyArray(searchHandler)) { solrQuery.setRequestHandler( StringUtils.isEmpty(searchHandler[0]) ? "/select" : searchHandler[0]); } } } if (Argument.isNotEmpty(fiters)) { solrQuery.setFilterQueries(StringUtils.join(fiters, " AND ")); } solrQuery.setQuery(query); solrQuery.setStart(searchQuery.getStart()); solrQuery.setRows(searchQuery.getRows()); if (StringUtils.isNotBlank(searchQuery.getSortFiled())) { solrQuery.addSort(searchQuery.getSortFiled(), searchQuery.getOrderBy()); } return solrQuery; }
From source file:com.ssavr.solr.service.impl.IceCreamLocalServiceImpl.java
License:Open Source License
public List<IceCream> searchIceCreams(String name, String flavor, String text, int start, int rows, String orderByCol, String orderByType) throws PortalException, SystemException { if (_log.isDebugEnabled()) { _log.debug("searchIceCreams()"); }//from w ww . j a va 2 s.c om List<IceCream> iceCreams = new ArrayList<IceCream>(); String activeServerURL = SolrUtil.getActiveSolrServer(); try { CommonsHttpSolrServer server = new CommonsHttpSolrServer(activeServerURL); SolrQuery query = new SolrQuery(); query.setQuery(getQuery()); List<String> filterQueries = getFilterQueries(name, flavor, text); for (String fq : filterQueries) { query.setFilterQueries(fq); } query.setStart(start); query.setRows(rows); QueryResponse response = server.query(query); List<SolrResponse> searchResults = response.getBeans(SolrResponse.class); for (SolrResponse result : searchResults) { String iceCreamId = result.getEntryClassPK(); IceCream iceCream = iceCreamPersistence.findByPrimaryKey(Long.parseLong(iceCreamId)); iceCreams.add(iceCream); } } catch (MalformedURLException e) { if (_log.isDebugEnabled()) { _log.debug(e.getMessage()); } throw new SystemException(e); } catch (SolrServerException e) { if (_log.isDebugEnabled()) { _log.debug(e.getMessage()); } throw new SystemException(e); } return iceCreams; }