List of usage examples for org.apache.solr.client.solrj SolrQuery setParam
public SolrQuery setParam(String name, boolean value)
From source file:gr.aueb.service.EmailService.java
public static List<Email> getEmails(List<String> keywords) { String query = getEmailServiceQuery(keywords); SolrQuery solrQuery; solrQuery = new SolrQuery(); if (query.startsWith(" AND")) { query = query.substring(4);//from www .ja v a 2 s . com } if (query.startsWith("AND")) { query = query.substring(3); } solrQuery.setQuery(query); if (!query.equals("")) { solrQuery.setHighlight(true).setHighlightSnippets(1).setHighlightSimplePost("</strong>") .setHighlightSimplePre("<strong>"); //set other params as needed solrQuery.setParam("hl.fl", "content_t"); solrQuery.setParam("hl.requireFieldMatch", "true"); } solrQuery.setRows(15); String urlString = "http://195.251.252.8:8983/solr/mail"; //SolrClient server = new HttpSolrClient.Builder(urlString).build(); SolrClient server = new HttpSolrClient(urlString); QueryResponse response = null; try { response = server.query(solrQuery); } catch (Exception e) { System.out.println(e); } SolrDocumentList rs = response.getResults(); long numFound = rs.getNumFound(); int numResultsDisplay = (int) numFound; ArrayList<Email> items = new ArrayList<Email>(); ListIterator<SolrDocument> iter = rs.listIterator(); while (iter.hasNext()) { SolrDocument doc = iter.next(); String id = doc.get("messageId").toString(); String from = doc.get("from").toString(); String sentDate = doc.get("sentDate").toString(); String subject = doc.get("subject").toString(); String content = doc.get("content").toString(); items.add(new Email(id, from, sentDate, subject, content)); } return items; }
From source file:gwap.search.DetailedSearch.java
License:Open Source License
@Override public SolrQuery generateQuery() { StringBuilder query = new StringBuilder(); //FIXME: alle Lucene Special chars escapen String language = localeSelector.getLanguage(); query.append(parseField(queryBean.getTags(), "tag_" + language)); query.append(parseField(queryBean.getArtist(), "artist")); query.append(parseField(queryBean.getTitle(), "title")); query.append(parseField(queryBean.getLocation(), "location_institution")); query.append(parseField(queryBean.getYear(), "datecreated")); log.info("Detailed search: #0", query.toString()); SolrQuery solrQuery = new SolrQuery(query.toString()); solrQuery.setParam("defType", "edismax"); return solrQuery; }
From source file:gwap.search.MitAlphabeticSearchBean.java
License:Open Source License
@Override public SolrQuery generateQuery() { if (isQueryEmpty()) { queryBean.setLetter("A"); }//from w w w. j a v a2s . c om String letter = queryBean.getLetter(); letter = letter.toUpperCase(); queryBean.setLetter(letter); if (!letter.matches("[a-zA-Z]")) { log.warn("Query by letter #0 not possible", letter); return null; } SolrQuery solrQuery = new SolrQuery("statement_untokenized:" + letter + "*"); solrQuery.setParam("defType", "edismax"); solrQuery.setParam("sort", "statement_untokenized asc"); return solrQuery; }
From source file:gwap.search.MitSearchBean.java
License:Open Source License
@Override public SolrQuery generateQuery() { if (isQueryEmpty()) return null; // 1. Parse queryString and look for locations and special characterization words (variable "specialWords") String[] queryArray = queryBean.getQueryString().split("\\s+"); String solrQueryString = ""; String solrBoostString = null; for (int i = 0; i < queryArray.length; i++) { boolean found = false; for (SearchSpecialParameter special : specialWords) { if (special.getWord().equals(queryArray[i])) { solrQueryString += special.getQueryReplacement() + " "; solrBoostString = special.getBoostFunction(); found = true;//from w w w. j a v a2s . c o m } } if (!found) solrQueryString += queryArray[i] + " "; } //TODO for locations SolrQuery solrQuery = new SolrQuery(solrQueryString); solrQuery.setParam("defType", "edismax"); solrQuery.setParam("qf", "statement standard highlighted location_name"); if (solrBoostString != null) solrQuery.setParam("bf", solrBoostString); return solrQuery; }
From source file:gwap.search.SolrSearchBean.java
License:Open Source License
/** * Override this method to change the query behaviour *///www . ja va2 s . co m public SolrQuery generateQuery() { if (isQueryEmpty()) return null; String language = localeSelector.getLanguage(); SolrQuery solrQuery = new SolrQuery(queryBean.getQueryString()); solrQuery.setParam("defType", "dismax"); String fields = "tag"; if (language != null && language.length() == 2) fields += "_" + language; fields += " title^2.0 artist^2.0 teaser^0.2 location institution datecreated"; solrQuery.setParam("qf", fields); return solrQuery; }
From source file:influent.server.search.SolrLinkSearch.java
License:MIT License
@Override public FL_SearchResults search(Map<String, List<FL_PropertyMatchDescriptor>> termMap, List<FL_OrderBy> orderBy, long start, long max, FL_LevelOfDetail levelOfDetail) throws AvroRemoteException { ArrayList<FL_SearchResult> results = new ArrayList<FL_SearchResult>(); SolrLinkSearchIterator ssr;//w ww . j av a2 s. c om try { List<String> ids = new ArrayList<String>(); // Collect all the ids, for mapping later for (Map.Entry<String, List<FL_PropertyMatchDescriptor>> entry : termMap.entrySet()) { List<FL_PropertyMatchDescriptor> termsByType = entry.getValue(); for (FL_PropertyMatchDescriptor term : termsByType) { // Find keys that are built in ID types for transactions if (term.getKey().equals(FL_RequiredPropertyKey.FROM.name()) || term.getKey().equals(FL_RequiredPropertyKey.TO.name()) || term.getKey().equals(FL_RequiredPropertyKey.ENTITY.name()) || term.getKey().equals(FL_RequiredPropertyKey.LINKED.name())) { // Strip out the native ID Object range = term.getRange(); if (range instanceof FL_SingletonRange) { String val = (String) SingletonRangeHelper.value(range); ids.add(val); } else if (range instanceof FL_ListRange) { List<Object> values = ((FL_ListRange) range).getValues(); List<Object> values2 = new ArrayList<Object>(); for (Object obj : values) { String val = (String) obj; values2.add(val); ids.add(val); } } } } } // Form the query String searchStr = SearchSolrHelper.toSolrQuery(termMap, getDescriptors(), getPropertyFieldProvider()); // issue the query SolrQuery query = new SolrQuery(); query.setQuery(searchStr); query.setFields("*", "score"); String solrGroupField = getDescriptors().getGroupField(); if (solrGroupField != null) { query.setParam("group", true); query.setParam("group.field", solrGroupField); query.setParam("group.limit", levelOfDetail == FL_LevelOfDetail.FULL ? "-1" : "3"); query.setParam("group.ngroups", true); } // form a union of sort by fields for all types orderBy = PropertyDescriptorHelper.mapOrderBy(orderBy, getDescriptors().getProperties(), termMap.keySet()); if (orderBy != null) { for (FL_OrderBy ob : orderBy) { String key = (ob.getPropertyKey().equals(FL_ReservedPropertyKey.MATCH.name())) ? "score" : ob.getPropertyKey(); query.addSortField(key, ob.getAscending() ? ORDER.asc : ORDER.desc); } } ssr = buildSolrLinkSearchIterator(getNamespaceHandler(), _solr, query, _config, levelOfDetail, _applicationConfiguration, getPropertyFieldProvider()); if (start >= 0) { ssr.setStartIndex((int) start); } if (max > 0) { ssr.setMaxResults((int) max); } // Add results from the matching documents while (ssr.hasNext()) { FL_SearchResult fsr = ssr.next(); results.add(fsr); } } catch (Exception e) { throw new AvroRemoteException(e); } return FL_SearchResults.newBuilder().setTotal((long) ssr.getTotalResults()).setResults(results) .setLevelOfDetail(levelOfDetail).build(); }
From source file:io.vertigo.dynamo.plugins.search.solr.SolrStatement.java
License:Apache License
private static SolrQuery createSolrQuery(final SearchQuery searchQuery, final IndexFieldNameResolver indexFieldNameResolver, final FacetedQuery filtersQuery, final int rowsPerQuery) { final SolrQuery solrQuery = new SolrQuery(); solrQuery.set(CommonParams.ROWS, rowsPerQuery); solrQuery.setFields(SolrDocumentCodec.URN, SolrDocumentCodec.FULL_RESULT); if (searchQuery.isSortActive()) { final DtField sortField = searchQuery.getIndexDefinition().getIndexDtDefinition() .getField(searchQuery.getSortField()); final String indexSortFieldName = indexFieldNameResolver.obtainIndexFieldName(sortField); solrQuery.addSortField(indexSortFieldName, searchQuery.getSortAsc() ? ORDER.asc : ORDER.desc); }//from w w w . j a va2s . c om //solrQuery.set(CommonParams.START, 0); //peut servir d'offset final StringBuilder query = new StringBuilder(); if (searchQuery.isBoostMostRecent()) { appendBoostMostRecent(searchQuery, query); } query.append(translateToSolr(searchQuery.getListFilter(), indexFieldNameResolver)); solrQuery.setQuery(query.toString()); for (final ListFilter facetQuery : filtersQuery.getListFilters()) { solrQuery.addFilterQuery(translateToSolr(facetQuery, indexFieldNameResolver)); } solrQuery.setHighlight(true); solrQuery.setParam("hl.fl", "*"); solrQuery.setHighlightSnippets(3); solrQuery.setParam("hl.mergeContiguous", true); //Ci dessous : pour avoir les facettes avec un compteur de doc 0 //Pour l'instant dsactiv car elles peuvent tre dduites des dfinitions de facettes sauf pour celles tires des mots du dictionnaires dont on ne maitrise pas la quantit //solrQuery.setParam("facet.missing", true); return solrQuery; }
From source file:kbSRU.kbSRU.java
License:Open Source License
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(XML_RESPONSE_HEADER); // Talkback happens in XML form. response.setCharacterEncoding("UTF-8"); // Unicode++ request.setCharacterEncoding("UTF-8"); PrintWriter out = null; // The talkback buffer. // handle startrecord Integer startRecord = 0;/*from w w w . j a v a 2s .c om*/ if (!(request.getParameter("startRecord") == null)) { try { startRecord = Integer.parseInt(request.getParameter("startRecord")) - 1; } catch (NumberFormatException e) { startRecord = 0; } } // maximumrecords Integer maximumRecords = Integer.parseInt(this.config.getProperty("default_maximumRecords")); if (!(request.getParameter("maximumRecords") == null)) { maximumRecords = Integer.parseInt(request.getParameter("maximumRecords")); } // operation String operation = request.getParameter("operation"); // x_collection String x_collection = request.getParameter("x-collection"); if (x_collection == null) x_collection = this.config.getProperty("default_x_collection"); if (x_collection == null) operation = null; // sortkeys String sortKeys = request.getParameter("sortKeys"); // sortorder String sortOrder = request.getParameter("sortOrder"); // recordschema String recordSchema = request.getParameter("recordSchema"); if (recordSchema == null) recordSchema = "dc"; if (recordSchema.equalsIgnoreCase("dcx")) { recordSchema = "dcx"; } if (recordSchema.equalsIgnoreCase("solr")) { recordSchema = "solr"; } // query request String query = request.getParameter("query"); String q = request.getParameter("q"); // who is requestor ? String remote_ip = request.getHeader("X-FORWARDED-FOR"); if (remote_ip == null) { remote_ip = request.getRemoteAddr().trim(); } else { remote_ip = request.getHeader("X-FORWARDED-FOR"); } // handle debug Boolean debug = Boolean.parseBoolean(request.getParameter("debug")); if (!debug) { out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF8"), true); } // handle query if ((query == null) && (q != null)) { query = q; } else { if ((query != null) && (q == null)) { q = query; } else { operation = null; } } // handle operation if (operation == null) { if (query != null) { operation = "searchRetrieve"; } else { operation = "explain"; } } // searchRetrieve if (operation.equalsIgnoreCase("searchRetrieve")) { if (query == null) { operation = "explain"; log.debug(operation + ":" + query); } } // start talking back. String[] sq = { "" }; String solrquery = ""; // facet String facet = null; List<FacetField> fct = null; if (request.getParameter("facet") != null) { facet = request.getParameter("facet"); log.debug("facet : " + facet); } if (operation == null) { operation = "searchretrieve"; } else { // explain response if (operation.equalsIgnoreCase("explain")) { log.debug("operation = explain"); out.write("<srw:explainResponse xmlns:srw=\"http://www.loc.gov/zing/srw/\">"); out.write("</srw:explainResponse>"); } else { // DEBUG routine operation = "searchretrieve"; String triplequery = null; if (query.matches(".*?\\[.+?\\].*?")) { // New symantic syntax triplequery = symantic_query(query); query = query.split("\\[")[0] + " " + triplequery; log.fatal(triplequery); solrquery = CQLtoLucene.translate(query, log, config); } else { solrquery = CQLtoLucene.translate(query, log, config); } log.debug(solrquery); if (debug == true) { response.setContentType(HTML_RESPONSE_HEADER); out = new PrintWriter(new OutputStreamWriter(response.getOutputStream(), "UTF8"), true); out.write("<html><body>\n\n"); out.write("'" + remote_ip + "'<br>\n"); out.write("<form action='http://www.kbresearch.nl/kbSRU'>"); out.write("<input type=text name=q value='" + query + "' size=120>"); out.write("<input type=hidden name=debug value=True>"); out.write("<input type=submit>"); out.write("<table border=1><tr><td>"); out.write("q</td><td>" + query + "</td></tr><tr>"); out.write("<td>query out</td><td>" + URLDecoder.decode(solrquery) + "</td></tr>"); out.write("<tr><td>SOLR_URL</td><td> <a href='" + this.config.getProperty("collection." + x_collection.toLowerCase() + ".solr_baseurl") + "/?q=" + solrquery + "'>" + this.config.getProperty("collection." + x_collection.toLowerCase() + ".solr_baseurl") + "/select/?q=" + solrquery + "</a><br>" + this.config.getProperty("solr_url") + solrquery + "</td></tr>"); out.write("<b>SOLR_QUERY</b> : <BR> <iframe width=900 height=400 src='" + this.config.getProperty("collection." + x_collection.toLowerCase() + ".solr_baseurl") + "/../?q=" + solrquery + "'></iframe><BR>"); out.write("<b>SRU_QUERY</b> : <BR> <a href=" + this.config.getProperty("baseurl") + "?q=" + query + "'>" + this.config.getProperty("baseurl") + "?q=" + query + "</a><br><iframe width=901 height=400 src='http://www.kbresearch.nl/kbSRU/?q=" + query + "'></iframe><BR>"); out.write("<br><b>JSRU_QUERY</b> : <BR><a href='http://jsru.kb.nl/sru/?query=" + query + "&x-collection=" + x_collection + "'>http://jsru.kb.nl/sru/?query=" + query + "&x-collection=GGC</a><br><iframe width=900 height=400 src='http://jsru.kb.nl/sru/?query=" + query + "&x-collection=GGC'></iframe>"); } else { // XML SearchRetrieve response String url = this.config .getProperty("collection." + x_collection.toLowerCase() + ".solr_baseurl"); String buffer = ""; CommonsHttpSolrServer server = null; server = new CommonsHttpSolrServer(url); log.fatal("URSING " + url); server.setParser(new XMLResponseParser()); int numfound = 0; try { SolrQuery do_query = new SolrQuery(); do_query.setQuery(solrquery); do_query.setRows(maximumRecords); do_query.setStart(startRecord); if ((sortKeys != null) && (sortKeys.length() > 1)) { if (sortOrder != null) { if (sortOrder.equals("asc")) { do_query.setSortField(sortKeys, SolrQuery.ORDER.asc); } if (sortOrder.equals("desc")) { do_query.setSortField(sortKeys, SolrQuery.ORDER.desc); } } else { for (String str : sortKeys.trim().split(",")) { str = str.trim(); if (str.length() > 1) { if (str.equals("date")) { do_query.setSortField("date_date", SolrQuery.ORDER.desc); log.debug("SORTORDERDEBUG | DATE! " + str + " | "); break; } else { do_query.setSortField(str + "_str", SolrQuery.ORDER.asc); log.debug("SORTORDERDEBUG | " + str + " | "); break; } } } } } if (facet != null) { if (facet.indexOf(",") > 1) { for (String str : facet.split(",")) { if (str.indexOf("date") > 1) { do_query.addFacetField(str); } else { do_query.addFacetField(str); } //do_query.setParam("facet.method", "enum"); } //q.setFacetSort(false); } else { do_query.addFacetField(facet); } do_query.setFacet(true); do_query.setFacetMinCount(1); do_query.setFacetLimit(-1); } log.fatal(solrquery); QueryResponse rsp = null; boolean do_err = false; boolean do_sugg = false; SolrDocumentList sdl = null; String diag = ""; StringBuffer suggest = new StringBuffer(""); String content = "1"; SolrQuery spellq = do_query; try { rsp = server.query(do_query); } catch (SolrServerException e) { String header = this.SRW_HEADER.replaceAll("\\$numberOfRecords", "0"); out.write(header); diag = this.SRW_DIAG.replaceAll("\\$error", e.getMessage()); do_err = true; rsp = null; } log.fatal("query done.."); if (!(do_err)) { // XML dc response SolrDocumentList docs = rsp.getResults(); numfound = (int) docs.getNumFound(); int count = startRecord; String header = this.SRW_HEADER.replaceAll("\\$numberOfRecords", Integer.toString(numfound)); out.write(header); out.write("<srw:records>"); Iterator<SolrDocument> iter = rsp.getResults().iterator(); while (iter.hasNext()) { count += 1; if (recordSchema.equalsIgnoreCase("dc")) { SolrDocument resultDoc = iter.next(); content = (String) resultDoc.getFieldValue("id"); out.write("<srw:record>"); out.write("<srw:recordPacking>xml</srw:recordPacking>"); out.write("<srw:recordSchema>info:srw/schema/1/dc-v1.1</srw:recordSchema>"); out.write( "<srw:recordData xmlns:srw_dc=\"info:srw/schema/1/dc-v1.1\" xmlns:mods=\"http://www.loc.gov/mods\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:dcx=\"http://krait.kb.nl/coop/tel/handbook/telterms.html\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:marcrel=\"http://www.loc.gov/loc.terms/relators/OTH\" xmlns:facets=\"info:srw/extension/4/facets\" >"); StringBuffer result = new StringBuffer(""); construct_lucene_dc(result, resultDoc); out.write(result.toString()); out.write("</srw:recordData>"); out.write("<srw:recordPosition>" + Integer.toString(count) + "</srw:recordPosition>"); out.write("</srw:record>"); } if (recordSchema.equalsIgnoreCase("solr")) { SolrDocument resultDoc = iter.next(); content = (String) resultDoc.getFieldValue("id"); out.write("<srw:record>"); out.write("<srw:recordPacking>xml</srw:recordPacking>"); out.write("<srw:recordSchema>info:srw/schema/1/solr</srw:recordSchema>"); out.write("<srw:recordData xmlns:expand=\"http://www.kbresearch.nl/expand\">"); StringBuffer result = new StringBuffer(""); construct_lucene_solr(result, resultDoc); out.write(result.toString()); out.write("</srw:recordData>"); out.write("<srw:recordPosition>" + Integer.toString(count) + "</srw:recordPosition>"); out.write("</srw:record>"); } if (recordSchema.equalsIgnoreCase("dcx")) { // XML dcx response out.write("<srw:record>"); out.write("<srw:recordPacking>xml</srw:recordPacking>"); out.write("<srw:recordSchema>info:srw/schema/1/dc-v1.1</srw:recordSchema>"); out.write( "<srw:recordData><srw_dc:dc xmlns:srw_dc=\"info:srw/schema/1/dc-v1.1\" xmlns:mods=\"http://www.loc.gov/mods\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:dcx=\"http://krait.kb.nl/coop/tel/handbook/telterms.html\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:marcrel=\"http://www.loc.gov/marc.relators/\" xmlns:expand=\"http://www.kbresearch.nl/expand\" xmlns:skos=\"http://www.w3.org/2004/02/skos/core#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" >"); SolrDocument resultDoc = iter.next(); content = (String) resultDoc.getFieldValue("id"); String dcx_data = helpers.getOAIdcx( "http://services.kb.nl/mdo/oai?verb=GetRecord&identifier=" + content, log); if (x_collection.equalsIgnoreCase("ggc-thes")) { dcx_data = helpers.getOAIdcx( "http://serviceso.kb.nl/mdo/oai?verb=GetRecord&identifier=" + content, log); } if (!(dcx_data.length() == 0)) { out.write(dcx_data); } else { // Should not do this!! out.write("<srw:record>"); out.write("<srw:recordPacking>xml</srw:recordPacking>"); out.write("<srw:recordSchema>info:srw/schema/1/dc-v1.1</srw:recordSchema>"); out.write( "<srw:recordData xmlns:srw_dc=\"info:srw/schema/1/dc-v1.1\" xmlns:mods=\"http://www.loc.gov/mods\" xmlns:dcterms=\"http://purl.org/dc/terms/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:dcx=\"http://krait.kb.nl/coop/tel/handbook/telterms.html\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:marcrel=\"http://www.loc.gov/loc.terms/relators/OTH\" >"); StringBuffer result = new StringBuffer(""); construct_lucene_dc(result, resultDoc); out.write(result.toString()); out.write("</srw:recordData>"); out.write("<srw:recordPosition>" + Integer.toString(count) + "</srw:recordPosition>"); out.write("</srw:record>"); } out.write("</srw_dc:dc>"); StringBuffer expand_data; boolean expand = false; if (content.startsWith("GGC-THES:AC:")) { String tmp_content = ""; tmp_content = content.replaceFirst("GGC-THES:AC:", ""); log.fatal("calling get"); expand_data = new StringBuffer( helpers.getExpand("http://www.kbresearch.nl/general/lod_new/get/" + tmp_content + "?format=rdf", log)); log.fatal("get finini"); if (expand_data.toString().length() > 4) { out.write( "<srw_dc:expand xmlns:srw_dc=\"info:srw/schema/1/dc-v1.1\" xmlns:expand=\"http://www.kbresearch.nl/expand\" xmlns:skos=\"http://www.w3.org/2004/02/skos/core#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" >"); out.write(expand_data.toString()); expand = true; } } else { expand_data = new StringBuffer(helpers .getExpand("http://www.kbresearch.nl/ANP.cgi?q=" + content, log)); if (expand_data.toString().length() > 0) { if (!expand) { out.write( "<srw_dc:expand xmlns:srw_dc=\"info:srw/schema/1/dc-v1.1\" xmlns:expand=\"http://www.kbresearch.nl/expand\" xmlns:skos=\"http://www.w3.org/2004/02/skos/core#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" >"); expand = true; } out.write(expand_data.toString()); } } if (expand) { out.write("</srw_dc:expand>"); } out.write("</srw:recordData>"); out.write("<srw:recordPosition>" + Integer.toString(count) + "</srw:recordPosition>"); out.write("</srw:record>"); } } } if ((do_err) || (numfound == 0)) { log.fatal("I haz suggestions"); try { spellq.setParam("spellcheck", true); spellq.setQueryType("/spell"); server = new CommonsHttpSolrServer(url); rsp = server.query(spellq); sdl = rsp.getResults(); SpellCheckResponse spell; spell = rsp.getSpellCheckResponse(); List<SpellCheckResponse.Suggestion> suggestions = spell.getSuggestions(); if (suggestions.isEmpty() == false) { suggest.append("<srw:extraResponseData>"); suggest.append("<suggestions>"); for (SpellCheckResponse.Suggestion sugg : suggestions) { suggest.append("<suggestionfor>" + sugg.getToken() + "</suggestionfor>"); for (String item : sugg.getSuggestions()) { suggest.append("<suggestion>" + item + "</suggestion>"); } suggest.append("</suggestions>"); suggest.append("</srw:extraResponseData>"); } do_sugg = true; } } catch (Exception e) { rsp = null; //log.fatal(e.toString()); } ; } ; if (!do_err) { if (facet != null) { try { fct = rsp.getFacetFields(); out.write("<srw:facets>"); for (String str : facet.split(",")) { out.write("<srw:facet>"); out.write("<srw:facetType>"); out.write(str); out.write("</srw:facetType>"); for (FacetField f : fct) { log.debug(f.getName()); //if (f.getName().equals(str+"_str") || (f.getName().equals(str+"_date")) ) { List<FacetField.Count> facetEnties = f.getValues(); for (FacetField.Count fcount : facetEnties) { out.write("<srw:facetValue>"); out.write("<srw:valueString>"); out.write(helpers.xmlEncode(fcount.getName())); out.write("</srw:valueString>"); out.write("<srw:count>"); out.write(Double.toString(fcount.getCount())); out.write("</srw:count>"); out.write("</srw:facetValue>"); // } } } out.write("</srw:facet>"); } out.write("</srw:facets>"); startRecord += 1; } catch (Exception e) { } //log.fatal(e.toString()); } } } else { out.write(diag); } out.write("</srw:records>"); // SearchRetrieve response footer String footer = this.SRW_FOOTER.replaceAll("\\$query", helpers.xmlEncode(query)); footer = footer.replaceAll("\\$startRecord", (startRecord).toString()); footer = footer.replaceAll("\\$maximumRecords", maximumRecords.toString()); footer = footer.replaceAll("\\$recordSchema", recordSchema); if (do_sugg) { out.write(suggest.toString()); } out.write(footer); } catch (MalformedURLException e) { out.write(e.getMessage()); } catch (IOException e) { out.write("TO ERR is Human"); } } } } out.close(); }
From source file:learning.SolrJTest.java
License:Mozilla Public License
@Test @Ignore("it used to work because segments were there. It shouldnt depend on that.") public void can_get_auto_complete_suggestions() throws Exception { add2Documents();//from w w w. j a v a 2 s.co m SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam(CommonParams.QT, "/suggest"); solrQuery.setParam(CommonParams.Q, "do"); List<String> suggestions = suggestionsOfQuery(solrQuery); assertThat(suggestions.size(), is(2)); }
From source file:learning.SolrJTest.java
License:Mozilla Public License
private QueryResponse createCoreWithName(String name) throws Exception { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam(CommonParams.QT, "/admin/cores"); solrQuery.setParam(CoreAdminParams.ACTION, CoreAdminParams.CoreAdminAction.CREATE.name()); solrQuery.setParam(CoreAdminParams.NAME, name); solrQuery.setParam(CoreAdminParams.INSTANCE_DIR, "./" + name); solrQuery.setParam(CoreAdminParams.CONFIG, solrHomeRelativePath + solrConfigHomeRelativePath); solrQuery.setParam(CoreAdminParams.SCHEMA, solrHomeRelativePath + solrSchemaHomeRelativePath); solrQuery.setParam(CoreAdminParams.DATA_DIR, "."); return solrServer.query(solrQuery); }