List of usage examples for org.apache.solr.client.solrj SolrQuery add
public ModifiableSolrParams add(String name, String... val)
From source file:com.frank.search.solr.core.DefaultQueryParser.java
License:Apache License
private void processGroupOptions(SolrQuery solrQuery, Query query) { GroupOptions groupOptions = query.getGroupOptions(); if (groupOptions == null || (CollectionUtils.isEmpty(groupOptions.getGroupByFields()) && CollectionUtils.isEmpty(groupOptions.getGroupByFunctions()) && CollectionUtils.isEmpty(groupOptions.getGroupByQueries()))) { return;/*from w ww. j a v a 2 s. c o m*/ } solrQuery.set(GroupParams.GROUP, true); solrQuery.set(GroupParams.GROUP_MAIN, groupOptions.isGroupMain()); solrQuery.set(GroupParams.GROUP_FORMAT, "grouped"); if (!CollectionUtils.isEmpty(groupOptions.getGroupByFields())) { for (Field field : groupOptions.getGroupByFields()) { solrQuery.add(GroupParams.GROUP_FIELD, field.getName()); } } if (!CollectionUtils.isEmpty(groupOptions.getGroupByFunctions())) { for (Function function : groupOptions.getGroupByFunctions()) { String functionFragment = createFunctionFragment(function, 0); setObjectNameOnGroupQuery(query, function, functionFragment); solrQuery.add(GroupParams.GROUP_FUNC, functionFragment); } } if (!CollectionUtils.isEmpty(groupOptions.getGroupByQueries())) { for (Query groupQuery : groupOptions.getGroupByQueries()) { String queryFragment = getQueryString(groupQuery); setObjectNameOnGroupQuery(query, groupQuery, queryFragment); solrQuery.add(GroupParams.GROUP_QUERY, queryFragment); } } if (groupOptions.getSort() != null) { for (Order order : groupOptions.getSort()) { solrQuery.add(GroupParams.GROUP_SORT, order.getProperty().trim() + " " + (order.isAscending() ? ORDER.asc : ORDER.desc)); } } if (groupOptions.getCachePercent() > 0) { solrQuery.add(GroupParams.GROUP_CACHE_PERCENTAGE, String.valueOf(groupOptions.getCachePercent())); } if (groupOptions.getLimit() != null && groupOptions.getLimit() >= 0) { solrQuery.set(GroupParams.GROUP_LIMIT, groupOptions.getLimit()); } if (groupOptions.getOffset() != null && groupOptions.getOffset() >= 0) { solrQuery.set(GroupParams.GROUP_OFFSET, groupOptions.getOffset()); } solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, groupOptions.isTotalCount()); solrQuery.set(GroupParams.GROUP_FACET, groupOptions.isGroupFacets()); solrQuery.set(GroupParams.GROUP_TRUNCATE, groupOptions.isTruncateFacets()); }
From source file:com.frank.search.solr.core.DefaultQueryParser.java
License:Apache License
/** * Append highlighting parameters to// w ww . j av a2 s . co m * {@link org.apache.solr.client.solrj.SolrQuery} * * @param solrQuery * @param query */ protected void processHighlightOptions(SolrQuery solrQuery, HighlightQuery query) { if (query.hasHighlightOptions()) { HighlightOptions highlightOptions = query.getHighlightOptions(); solrQuery.setHighlight(true); if (!highlightOptions.hasFields()) { solrQuery.addHighlightField(HighlightOptions.ALL_FIELDS.getName()); } else { for (Field field : highlightOptions.getFields()) { solrQuery.addHighlightField(field.getName()); } for (FieldWithHighlightParameters fieldWithHighlightParameters : highlightOptions .getFieldsWithHighlightParameters()) { addPerFieldHighlightParameters(solrQuery, fieldWithHighlightParameters); } } for (HighlightParameter option : highlightOptions.getHighlightParameters()) { addOptionToSolrQuery(solrQuery, option); } if (highlightOptions.hasQuery()) { solrQuery.add(HighlightParams.Q, getQueryString(highlightOptions.getQuery())); } } }
From source file:com.frank.search.solr.core.DefaultQueryParser.java
License:Apache License
private void addOptionToSolrQuery(SolrQuery solrQuery, QueryParameter option) { if (option != null && StringUtils.isNotBlank(option.getName())) { solrQuery.add(option.getName(), conversionService.convert(option.getValue(), String.class)); }/*from www. ja v a 2 s.c om*/ }
From source file:com.frank.search.solr.core.DefaultQueryParser.java
License:Apache License
private void addFieldSpecificParameterToSolrQuery(SolrQuery solrQuery, Field field, QueryParameter option) { if (option != null && field != null && StringUtils.isNotBlank(option.getName())) { if (option.getValue() == null) { solrQuery.add(createPerFieldOverrideParameterName(field, option.getName()), (String) null); } else {/*from w ww . j a v a2 s.c o m*/ String value = option.getValue().toString(); if (conversionService.canConvert(option.getValue().getClass(), String.class)) { value = conversionService.convert(option.getValue(), String.class); } solrQuery.add(createPerFieldOverrideParameterName(field, option.getName()), value); } } }
From source file:com.frank.search.solr.core.QueryParserBase.java
License:Apache License
/** * Set request handler parameter for// www . ja v a 2 s. c o m * {@link org.apache.solr.client.solrj.SolrQuery} * * @param solrQuery * @param requestHandler */ protected void appendRequestHandler(SolrQuery solrQuery, String requestHandler) { if (StringUtils.isNotBlank(requestHandler)) { solrQuery.add(CommonParams.QT, requestHandler); } }
From source file:com.gisgraphy.domain.geoloc.service.fulltextsearch.spell.SpellCheckerIndexer.java
License:Open Source License
public boolean buildIndex(SpellCheckerDictionaryNames spellCheckerDictionaryName) { if (!SpellCheckerConfig.isEnabled()) { return false; }//from w ww .j a va2 s .c om SolrQuery solrQuery = new SolrQuery(); solrQuery.setQueryType(Constants.SolrQueryType.spellcheck.toString()); solrQuery.add(Constants.SPELLCHECKER_DICTIONARY_NAME_PARAMETER, spellCheckerDictionaryName.toString()); solrQuery.add(Constants.SPELLCHECKER_BUILD_PARAMETER, "true"); solrQuery.add(Constants.SPELLCHECKER_ENABLED_PARAMETER, "true"); solrQuery.setQuery("spell"); try { QueryResponse response = solrClient.getServer().query(solrQuery); if (response.getStatus() != 0) { logger.error("Indexing dictionary " + spellCheckerDictionaryName.name() + " fails"); return false; } logger.info("Successfully indexing dictionary " + spellCheckerDictionaryName.name()); return true; } catch (Exception e) { logger.error( "An error has occured when indexing spellchecker " + spellCheckerDictionaryName + " : " + e); return false; } }
From source file:com.gisgraphy.domain.geoloc.service.fulltextsearch.spell.SpellCheckerIndexerTest.java
License:Open Source License
@Test public void testThatSpellCheckerShouldNotAcceptAnInexistingSpellCheckerDictionaryName() { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQueryType(Constants.SolrQueryType.spellcheck.toString()); solrQuery.add(Constants.SPELLCHECKER_DICTIONARY_NAME_PARAMETER, "notExistingInSolrConfig.xml"); solrQuery.add(Constants.SPELLCHECKER_BUILD_PARAMETER, "true"); solrQuery.add(Constants.SPELLCHECKER_ENABLED_PARAMETER, "true"); solrQuery.setQuery("spell"); try {//from w w w .j a v a 2 s . c o m QueryResponse response = solrClient.getServer().query(solrQuery); if (response.getStatus() != 0) { fail("Status should not be 0 when the name of the dictionnary name is not defined in solrConfig.xml"); } fail("dictionnary name that are not defined in solrConfig.xml should not be accepted"); } catch (Exception e) { logger.error(e); } }
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);/*www . ja va 2s.co 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.liferay.portal.search.solr.internal.SolrIndexSearcher.java
License:Open Source License
protected void addFacets(SolrQuery solrQuery, SearchContext searchContext) { Map<String, Facet> facets = searchContext.getFacets(); for (Facet facet : facets.values()) { if (facet.isStatic()) { continue; }// ww w . j a v a2 s. com FacetConfiguration facetConfiguration = facet.getFacetConfiguration(); _facetProcessor.processFacet(solrQuery, facet); String facetSort = FacetParams.FACET_SORT_COUNT; String order = facetConfiguration.getOrder(); if (order.equals("OrderValueAsc")) { facetSort = FacetParams.FACET_SORT_INDEX; } solrQuery.add("f." + facetConfiguration.getFieldName() + ".facet.sort", facetSort); } solrQuery.setFacetLimit(-1); }
From source file:com.odoko.solrcli.actions.CrawlPostAction.java
License:Apache License
@Override public void go() { SolrServer server = new HttpSolrServer("http://localhost:8983/solr"); try {/*from w w w. j a va 2 s . com*/ SolrQuery query = new SolrQuery(); query.setQuery(querystring); query.setFields(StringUtils.join(fieldlist, ",")); for (String name : params.keySet()) { query.add(name, params.get(name)); } QueryResponse response = server.query(query); if (!omitHeader) { printHeader(query, response); } query.add("fl", "id"); for (SolrDocument doc : response.getResults()) { List<String>values = new ArrayList<String>(); for (String fieldname : parseFieldList(query.get("fl"))) { values.add(toString(doc.getFieldValue(fieldname))); } System.out.println(StringUtils.join(values, "\t")); } } catch (SolrServerException e) { throw new RuntimeException(e); } }