List of usage examples for org.apache.solr.client.solrj SolrQuery setQuery
public SolrQuery setQuery(String query)
From source file:org.hoteia.qalingo.core.solr.service.StoreSolrService.java
License:Apache License
public StoreResponseBean searchStore(String searchBy, String searchText, List<String> facetFields, List<String> cities, List<String> countries) throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); if (StringUtils.isEmpty(searchBy)) { throw new IllegalArgumentException("SearchBy field can not be Empty or Blank!"); }//from ww w . j av a 2s. co m if (StringUtils.isEmpty(searchText)) { solrQuery.setQuery(searchBy + ":*"); } else { solrQuery.setQuery(searchBy + ":" + searchText + "*"); } if (facetFields != null && facetFields.size() > 0) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(30); for (String facetField : facetFields) { solrQuery.addFacetField(facetField); } } if (cities != null && cities.size() > 0) { StringBuilder fq = new StringBuilder("city:("); for (int i = 0; i < cities.size(); i++) { String city = cities.get(i); fq.append('"' + city + '"'); if (i < cities.size() - 1) { fq.append(" OR "); } } fq.append(")"); solrQuery.addFilterQuery(fq.toString()); } if (countries != null && countries.size() > 0) { StringBuilder fq = new StringBuilder("countrycode:("); for (int i = 0; i < countries.size(); i++) { String country = countries.get(i); fq.append('"' + country + '"'); if (i < countries.size() - 1) { fq.append(" OR "); } } fq.append(")"); solrQuery.addFilterQuery(fq.toString()); } logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(storeSolrServer.request(request), storeSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<StoreSolr> solrList = response.getBeans(StoreSolr.class); StoreResponseBean storeResponseBean = new StoreResponseBean(); storeResponseBean.setStoreSolrList(solrList); if (facetFields != null && facetFields.size() > 0) { List<FacetField> solrFacetFieldList = response.getFacetFields(); storeResponseBean.setStoreSolrFacetFieldList(solrFacetFieldList); } return storeResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.StoreSolrService.java
License:Apache License
public StoreResponseBean searchStore() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", ROWS_DEFAULT_VALUE); solrQuery.setQuery("*"); solrQuery.setFacet(true);//from www .j av a 2s . c o m solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("name"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(storeSolrServer.request(request), storeSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<StoreSolr> solrList = response.getBeans(StoreSolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); StoreResponseBean storeResponseBean = new StoreResponseBean(); storeResponseBean.setStoreSolrList(solrList); storeResponseBean.setStoreSolrFacetFieldList(solrFacetFieldList); return storeResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.UserSolrService.java
License:Apache License
public UserResponseBean searchUser(final String searchQuery, final List<String> facetFields, final List<String> filterQueries, final SolrParam solrParam) throws IllegalArgumentException, SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); if (solrParam != null) { if (solrParam.get("rows") != null) { solrQuery.setParam("rows", (String) solrParam.get("rows")); } else {//from ww w. j a v a 2s . c om solrQuery.setParam("rows", getMaxResult()); } if (solrParam.get("sortField") != null) { SortField sortField = (SortField) solrParam.get("sortField"); for (Iterator<String> iterator = sortField.keySet().iterator(); iterator.hasNext();) { String field = (String) iterator.next(); solrQuery.addSortField(field, sortField.get(field)); } } } if (StringUtils.isEmpty(searchQuery)) { throw new IllegalArgumentException("SearchQuery field can not be Empty or Blank!"); } solrQuery.setQuery(searchQuery); if (facetFields != null && !facetFields.isEmpty()) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); for (String facetField : facetFields) { solrQuery.addFacetField(facetField); } } logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(userSolrServer.request(request), userSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<UserSolr> solrList = response.getBeans(UserSolr.class); UserResponseBean userResponseBean = new UserResponseBean(); userResponseBean.setUserSolrList(solrList); if (facetFields != null && !facetFields.isEmpty()) { List<FacetField> solrFacetFieldList = response.getFacetFields(); userResponseBean.setUserSolrFacetFieldList(solrFacetFieldList); } return userResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.UserSolrService.java
License:Apache License
@Deprecated public UserResponseBean searchUser(String searchBy, String searchText, List<String> facetFields) throws IllegalArgumentException, SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", getMaxResult()); if (StringUtils.isEmpty(searchBy)) { throw new IllegalArgumentException("SearchBy field can not be Empty or Blank!"); }/*from w w w . j a v a2 s . co m*/ if (StringUtils.isEmpty(searchText)) { solrQuery.setQuery(searchBy + ":*"); } else { solrQuery.setQuery(searchBy + ":" + searchText + "*"); } if (facetFields != null && !facetFields.isEmpty()) { solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); for (String facetField : facetFields) { solrQuery.addFacetField(facetField); } } logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(userSolrServer.request(request), userSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<UserSolr> solrList = response.getBeans(UserSolr.class); UserResponseBean userResponseBean = new UserResponseBean(); userResponseBean.setUserSolrList(solrList); if (facetFields != null && !facetFields.isEmpty()) { List<FacetField> solrFacetFieldList = response.getFacetFields(); userResponseBean.setUserSolrFacetFieldList(solrFacetFieldList); } return userResponseBean; }
From source file:org.hoteia.qalingo.core.solr.service.UserSolrService.java
License:Apache License
public UserResponseBean searchUser() throws IllegalArgumentException, SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam("rows", getMaxResult()); solrQuery.setQuery("*"); solrQuery.setFacet(true);/*from w ww . j a va 2s. c o m*/ solrQuery.setFacetMinCount(1); solrQuery.addFacetField("lastname"); logger.debug("QueryRequest solrQuery: " + solrQuery); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); QueryResponse response = new QueryResponse(userSolrServer.request(request), userSolrServer); logger.debug("QueryResponse Obj: " + response.toString()); List<UserSolr> solrList = response.getBeans(UserSolr.class); List<FacetField> solrFacetFieldList = response.getFacetFields(); UserResponseBean userResponseBean = new UserResponseBean(); userResponseBean.setUserSolrList(solrList); userResponseBean.setUserSolrFacetFieldList(solrFacetFieldList); return userResponseBean; }
From source file:org.intermine.api.searchengine.solr.SolrKeywordSearchHandler.java
License:GNU General Public License
private QueryResponse performSearch(InterMineAPI im, String queryString, Map<String, String> facetValues, List<Integer> ids, int offSet, int rowSize) { SolrClient solrClient = SolrClientManager.getClientInstance(im.getObjectStore()); QueryResponse resp = null;//from ww w. j a v a2 s .c o m KeywordSearchPropertiesManager keywordSearchPropertiesManager = KeywordSearchPropertiesManager .getInstance(im.getObjectStore()); Vector<KeywordSearchFacetData> facets = keywordSearchPropertiesManager.getFacets(); Map<ClassDescriptor, Float> classBoost = keywordSearchPropertiesManager.getClassBoost(); List<String> fieldNames = getFieldNamesFromSolrSchema(solrClient); try { SolrQuery newQuery = new SolrQuery(); newQuery.setQuery(queryString); newQuery.setStart(offSet); newQuery.setRows(rowSize); newQuery.addField("score"); newQuery.addField("id"); newQuery.add("defType", "edismax"); for (KeywordSearchFacetData keywordSearchFacetData : facets) { newQuery.addFacetField("facet_" + keywordSearchFacetData.getField()); } // add faceting selections for (Map.Entry<String, String> facetValue : facetValues.entrySet()) { if (facetValue != null) { newQuery.addFilterQuery(facetValue.getKey() + ":" + facetValue.getValue()); } } //limiting the query based on search bag if (ids != null && !ids.isEmpty()) { for (int id : ids) { newQuery.addFilterQuery("id", Integer.toString(id)); } } String boostQuery = ""; for (Map.Entry<ClassDescriptor, Float> boostValue : classBoost.entrySet()) { if (boostValue != null) { boostQuery += "classname:" + boostValue.getKey().getUnqualifiedName() + "^" + boostValue.getValue() + " "; } } LOG.info("BoostQuery : " + boostQuery); String fieldListQuery = ""; for (String field : fieldNames) { fieldListQuery = fieldListQuery + field; if (field.endsWith("_raw")) { fieldListQuery = fieldListQuery + "^2.0"; } fieldListQuery = fieldListQuery + " "; } LOG.info("Field List Query : " + fieldListQuery); newQuery.add("bq", boostQuery); newQuery.add("qf", fieldListQuery); resp = solrClient.query(newQuery, SolrRequest.METHOD.POST); return resp; } catch (SolrServerException e) { LOG.error("Query performed on solr failed for search term : " + queryString, e); e.printStackTrace(); } catch (IOException e) { LOG.error("Query performed on solr failed for search term : " + queryString, e); e.printStackTrace(); } return resp; }
From source file:org.intermine.web.autocompletion.AutoCompleter.java
License:GNU General Public License
/** * Returns n search results//from www . j a va 2s. c o m * @param query is the string used for search * @param field is the field in which you like to search (e.g. name) * @param className is the class in which you like to search (e.g. SOTerm) * @param n number of the first n search results * @return string array with search results and an error flag at position 0 */ public String[] getFastList(String query, String field, String className, int n) { String status = "true"; String[] stringResults = null; SolrClient solrClient = SolrClientHandler.getClientInstance(this.propertiesManager.getSolrUrl()); QueryResponse resp = null; if (!"".equals(query) && !query.trim().startsWith("*")) { if (query.endsWith(" ")) { query = query.substring(0, query.length() - 1); } String[] tmp; if (query.contains(" ")) { tmp = query.replaceAll(" +", " ").trim().split(" "); query = new String(); for (int i = 0; i < tmp.length; i++) { query += tmp[i]; if (i < tmp.length - 1) { query += "* AND " + field + ":"; } } } try { SolrQuery newQuery = new SolrQuery(); newQuery.setQuery(field + ":" + query + "*"); //adding a wildcard in the end newQuery.setRequestHandler("select"); newQuery.setRows(n); // FIXME: hardcoded maximum newQuery.setFilterQueries(CLASSNAME_FIELD + ":" + className); resp = solrClient.query(newQuery); SolrDocumentList results = resp.getResults(); stringResults = new String[results.size() + 1]; for (int i = 1; i < results.size() + 1; i++) { try { SolrDocument document = results.get(i - 1); stringResults[i] = ((ArrayList<String>) document.getFieldValue(field)).get(0); } catch (Exception e) { status = "No results! Please try again."; } } stringResults[0] = status; return stringResults; } catch (SolrServerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); status = "Please type in more characters to get results."; stringResults = new String[1]; stringResults[0] = status; } return stringResults; } return null; }
From source file:org.kimios.kernel.controller.impl.SolrSearchController.java
License:Open Source License
private SearchResponse quickSearchIds(Session session, String query, DMEntity entity, int start, int pageSize, String sortField, String sortDir) { String documentNameQuery = QueryBuilder.documentNameQuery(query); SolrQuery indexQuery = new SolrQuery(); ArrayList<String> filterQueries = new ArrayList<String>(); if (!getSecurityAgent().isAdmin(session.getUserName(), session.getUserSource())) { String aclQuery = QueryBuilder.buildAclQuery(session); filterQueries.add(aclQuery);// w w w.j a v a 2 s.c o m } if (entity != null) { DMEntity entityLoaded = dmsFactoryInstantiator.getDmEntityFactory().getEntity(entity.getUid()); String pathQuery = "DocumentParent:" + entityLoaded.getPath() + "/*"; filterQueries.add(pathQuery); } indexQuery.setFilterQueries(filterQueries.toArray(new String[] {})); if (sortField != null) { indexQuery.addSortField(sortField, SolrQuery.ORDER.valueOf((sortDir != null ? sortDir.toLowerCase() : "asc"))); } indexQuery.addSortField("score", SolrQuery.ORDER.desc); indexQuery.setQuery(documentNameQuery); if (start > -1 && pageSize > -1) { indexQuery.setStart(start); indexQuery.setRows(pageSize); } SearchResponse searchResponse = solrIndexManager.executeSolrQuery(indexQuery); return searchResponse; }
From source file:org.kimios.kernel.controller.impl.SolrSearchController.java
License:Open Source License
@Deprecated private SearchResponse advancedSearchIds(Session session, String xmlStream, DMEntity entity, String sortField, String sortDir) throws DataSourceException, ConfigException, IndexException, IOException, ParserConfigurationException, SAXException { SolrQuery indexQuery = new SolrQuery(); ArrayList<String> aclFilterQueries = new ArrayList<String>(); ArrayList<String> filterQueries = new ArrayList<String>(); if (!getSecurityAgent().isAdmin(session.getUserName(), session.getUserSource())) { String aclQuery = QueryBuilder.buildAclQuery(session); aclFilterQueries.add(aclQuery);/*from w w w . j a v a 2 s. com*/ } if (entity != null) { DMEntity entityLoaded = dmsFactoryInstantiator.getDmEntityFactory().getEntity(entity.getUid()); String pathQuery = "DocumentParent:" + entityLoaded.getPath() + "/*"; filterQueries.add(pathQuery); } //Parsing XML stream List<String> queries = new ArrayList<String>(); org.w3c.dom.Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder() .parse(new java.io.ByteArrayInputStream(xmlStream.getBytes("UTF-8"))); Element root = doc.getDocumentElement(); NodeList childNodes = root.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node node = childNodes.item(i); //Document name query if (node.getNodeName().equals("document-name")) { if (node.getTextContent() != null && !node.getTextContent().equals("")) { queries.add(QueryBuilder.documentNameQuery(node.getTextContent().toLowerCase())); } } //Document body query if (node.getNodeName().equals("text")) { if (node.getTextContent() != null && !node.getTextContent().equals("")) { String bodyQuery = ClientUtils.escapeQueryChars(node.getTextContent()); queries.add("DocumentBody:" + bodyQuery); } } //Document uid query if (node.getNodeName().equals("document-uid")) { if (node.getTextContent() != null && !node.getTextContent().equals("")) { filterQueries.add("DocumentUid:" + node.getTextContent()); } } //Document type query if (node.getNodeName().equals("document-type-uid")) { if (node.getTextContent() != null && !node.getTextContent().equals("")) { long dtUid = Long.parseLong(node.getTextContent()); List<DocumentType> items = dmsFactoryInstantiator.getDocumentTypeFactory() .getChildrenDocumentType(dtUid); List<DocumentType> documentTypeList = new ArrayList<DocumentType>(items); for (DocumentType it : items) { documentTypeList.addAll(dmsFactoryInstantiator.getDocumentTypeFactory() .getChildrenDocumentType(it.getUid())); } StringBuilder builder = new StringBuilder(); builder.append("DocumentTypeUid:(" + dtUid + (documentTypeList.size() > 0 ? " OR " : "")); int idx = 1; for (DocumentType dtIt : documentTypeList) { builder.append(dtIt.getUid()); idx++; if (idx < documentTypeList.size()) { builder.append(" OR "); } } builder.append(")"); filterQueries.add(builder.toString()); } } //Meta data queries if (node.getNodeName().equals("meta-value")) { Meta meta = dmsFactoryInstantiator.getMetaFactory() .getMeta(Long.parseLong(node.getAttributes().getNamedItem("uid").getTextContent())); if (meta != null) { if (meta.getMetaType() == MetaType.STRING) { if (node.getTextContent() != null && !node.getTextContent().equals("")) { String metaStringQuery = "MetaDataString_" + meta.getUid() + ":*" + ClientUtils.escapeQueryChars(node.getTextContent()) + "*"; queries.add(metaStringQuery); } } if (meta.getMetaType() == MetaType.NUMBER) { Double min = null; Double max = null; boolean toAdd = false; if (node.getAttributes().getNamedItem("number-from") != null && !node.getAttributes().getNamedItem("number-from").getTextContent().equals("")) { min = Double .parseDouble(node.getAttributes().getNamedItem("number-from").getTextContent()); toAdd = true; } if (node.getAttributes().getNamedItem("number-to") != null && !node.getAttributes().getNamedItem("number-to").getTextContent().equals("")) { max = Double .parseDouble(node.getAttributes().getNamedItem("number-to").getTextContent()); toAdd = true; } if (toAdd) { String metaNumberQuery = "MetaDataNumber_" + meta.getUid() + ":[" + (min != null ? min : "*") + " TO " + (max != null ? max : "*") + "]"; queries.add(metaNumberQuery); } } if (meta.getMetaType() == MetaType.DATE) { Date min = null; Date max = null; boolean toAdd = false; if (node.getAttributes().getNamedItem("date-from") != null && !node.getAttributes().getNamedItem("date-from").getTextContent().equals("")) { min = new Date(Long .parseLong(node.getAttributes().getNamedItem("date-from").getTextContent())); toAdd = true; } if (node.getAttributes().getNamedItem("date-to") != null && !node.getAttributes().getNamedItem("date-to").getTextContent().equals("")) { max = new Date( Long.parseLong(node.getAttributes().getNamedItem("date-to").getTextContent())); toAdd = true; } if (toAdd) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); df.setTimeZone(TimeZone.getTimeZone("UTC")); String metaDateQuery = "MetaDataDate_" + meta.getUid() + ":[" + (min != null ? df.format(min) : "*") + " TO " + (max != null ? df.format(max) : "*") + "]"; queries.add(metaDateQuery); } } if (meta.getMetaType() == MetaType.BOOLEAN) { if (node.getAttributes().getNamedItem("boolean-value") != null && !node.getAttributes() .getNamedItem("boolean-value").getTextContent().equals("")) { String metaBoolQuery = "MetaDataBoolean_" + meta.getUid() + ":" + Boolean.parseBoolean( node.getAttributes().getNamedItem("boolean-value").getTextContent()); queries.add(metaBoolQuery); } } } } } indexQuery.setFilterQueries(aclFilterQueries.toArray(new String[] {})); indexQuery.addSortField("score", SolrQuery.ORDER.desc); StringBuilder sQuery = new StringBuilder(); for (String q : queries) { sQuery.append("+"); sQuery.append(q); sQuery.append(" "); } if (queries.size() == 0) { /* Convert filter queries in query, to get result */ for (String q : filterQueries) { sQuery.append("+"); sQuery.append(q); sQuery.append(" "); } } log.debug("Solr Final Query: " + sQuery); indexQuery.setQuery(sQuery.toString()); SearchResponse response = solrIndexManager.executeSolrQuery(indexQuery); return response; }
From source file:org.kimios.kernel.controller.impl.SolrSearchController.java
License:Open Source License
private SolrQuery parseQueryFromListCriteria(Session session, int page, int pageSize, List<Criteria> criteriaList, String sortField, String sortDir) throws ParseException { SolrQuery indexQuery = new SolrQuery(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); sdf.setTimeZone(TimeZone.getTimeZone("UTC")); ArrayList<String> aclFilterQueries = new ArrayList<String>(); ArrayList<String> filterQueries = new ArrayList<String>(); ArrayList<String> queries = new ArrayList<String>(); if (!getSecurityAgent().isAdmin(session.getUserName(), session.getUserSource())) { String aclQuery = QueryBuilder.buildAclQuery(session); aclFilterQueries.add(aclQuery);/*ww w . ja va 2 s . co m*/ } for (Criteria c : criteriaList) { if (c.getQuery() != null && c.getQuery().trim().length() > 0 || c.getRangeMin() != null || c.getRangeMax() != null) { if (c.getFieldName().equals("DocumentName")) { queries.add(QueryBuilder.documentNameQuery(c.getQuery())); } else if (c.getFieldName().equals("DocumentBody")) { queries.add("DocumentBody:" + ClientUtils.escapeQueryChars(c.getQuery())); } else if (c.getFieldName().equals("DocumentUid")) { filterQueries.add("DocumentUid:" + c.getQuery()); } else if (c.getFieldName().equals("DocumentParent")) { filterQueries.add(QueryBuilder.documentParentQuery(c.getQuery())); } else if (c.getFieldName().equals("DocumentVersionUpdateDate")) { queries.add(QueryBuilder.documentUpdateDateQuery("DocumentVersionUpdateDate", c.getRangeMin(), c.getRangeMax())); } else if (c.getFieldName().equals("DocumentCreationDate")) { queries.add(QueryBuilder.documentUpdateDateQuery("DocumentCreationDate", c.getRangeMin(), c.getRangeMax())); } else if (c.getFieldName().equals("DocumentTypeUid")) { long dtUid = Long.parseLong(c.getQuery()); List<DocumentType> items = dmsFactoryInstantiator.getDocumentTypeFactory() .getChildrenDocumentType(dtUid); List<DocumentType> documentTypeList = new ArrayList<DocumentType>(items); for (DocumentType it : items) { documentTypeList.addAll(dmsFactoryInstantiator.getDocumentTypeFactory() .getChildrenDocumentType(it.getUid())); } StringBuilder builder = new StringBuilder(); builder.append("DocumentTypeUid:(" + dtUid + (documentTypeList.size() > 0 ? " OR " : "")); int idx = 0; for (DocumentType dtIt : documentTypeList) { builder.append(dtIt.getUid()); idx++; if (idx < documentTypeList.size()) { builder.append(" OR "); } } builder.append(")"); filterQueries.add(builder.toString()); } else if (c.getFieldName().startsWith("MetaData")) { Meta meta = dmsFactoryInstantiator.getMetaFactory().getMeta(c.getMetaId()); if (meta != null) { if (meta.getMetaType() == MetaType.STRING) { String metaStringQuery = "MetaDataString_" + meta.getUid() + ":*" + ClientUtils.escapeQueryChars(c.getQuery().toLowerCase()) + "*"; queries.add(metaStringQuery); } if (meta.getMetaType() == MetaType.NUMBER) { Double min = null; Double max = null; boolean toAdd = false; if (c.getRangeMin() != null && c.getRangeMin().trim().length() > 0) { min = Double.parseDouble(c.getRangeMin()); toAdd = true; } if (c.getRangeMax() != null && c.getRangeMax().trim().length() > 0) { max = Double.parseDouble(c.getRangeMax()); toAdd = true; } if (toAdd) { String metaNumberQuery = "MetaDataNumber_" + meta.getUid() + ":[" + (min != null ? min : "*") + " TO " + (max != null ? max : "*") + "]"; queries.add(metaNumberQuery); } } if (meta.getMetaType() == MetaType.DATE) { Date min = null; Date max = null; boolean toAdd = false; if (c.getRangeMin() != null && c.getRangeMin().trim().length() > 0) { try { min = sdf.parse(c.getRangeMin()); toAdd = true; } catch (Exception e) { toAdd = false; } } if (c.getRangeMax() != null && c.getRangeMax().trim().length() > 0) { try { max = sdf.parse(c.getRangeMax()); toAdd = true; } catch (Exception e) { toAdd = false; } } if (toAdd) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); df.setTimeZone(TimeZone.getTimeZone("UTC")); String metaDateQuery = QueryBuilder.documentUpdateDateQuery( "MetaDataDate_" + meta.getUid(), c.getRangeMin(), c.getRangeMax()); queries.add(metaDateQuery); } } if (meta.getMetaType() == MetaType.BOOLEAN) { String metaBoolQuery = "MetaDataBoolean_" + meta.getUid() + ":" + Boolean.parseBoolean(c.getQuery()); queries.add(metaBoolQuery); } } } } } indexQuery.setFilterQueries(filterQueries.toArray(new String[] {})); if (sortField != null) { indexQuery.addSortField(sortField, sortDir != null ? SolrQuery.ORDER.valueOf(sortDir.toLowerCase()) : SolrQuery.ORDER.asc); } indexQuery.addSortField("score", SolrQuery.ORDER.desc); StringBuilder sQuery = new StringBuilder(); for (String q : queries) { sQuery.append("+"); sQuery.append(q); sQuery.append(" "); } if (queries.size() == 0) { /* Convert filter queries in query, to get result */ for (String q : filterQueries) { sQuery.append("+"); sQuery.append(q); sQuery.append(" "); } } else { filterQueries.addAll(aclFilterQueries); indexQuery.setFilterQueries(filterQueries.toArray(new String[] {})); } log.debug("Solr Final Query: " + sQuery); indexQuery.setQuery(sQuery.toString()); if (pageSize > -1 && page > -1) { indexQuery.setRows(pageSize); indexQuery.setStart(page); } else { indexQuery.setRows(Integer.MAX_VALUE); } return indexQuery; }