public TopScoreDocCollector search(String queryString, int lucHits, String fieldName, Analyzer analyzer) { queryString = QueryParser.escape(queryString.trim()); if(queryString.equalsIgnoreCase("")) return null; Query query = null; try { QueryParser queryParser = new QueryParser(Version.LUCENE_36, fieldName, analyzer); query = queryParser.parse(queryString); } catch (ParseException e) { e.printStackTrace(); } return search(query, lucHits); }
public TopScoreDocCollector multiFieldSearch(String[] queryStrings, String[] fields, BooleanClause.Occur[] flags, Analyzer analyzer, int lucHits){ escapeStrings(queryStrings); Query query = null; try { query = MultiFieldQueryParser.parse(Version.LUCENE_36, queryStrings, fields, flags, analyzer); } catch (ParseException e) { e.printStackTrace(); } return search(query, lucHits); }
/** * 组装Lucene Query * 处理关键字紧凑搜索 * @param elements * @return */ private Query luceneQueryParse(String fieldName , String keyword){ //截取头部^尾部$ keyword = keyword.substring(1 , keyword.length() - 1); String luceneExp = fieldName + ":\"" + keyword + "\""; QueryParser luceneQueryParser = new QueryParser(Version.LUCENE_30 , "" ,new IKAnalyzer()); try { Query lucenceQuery = luceneQueryParser.parse(luceneExp); return lucenceQuery; } catch (ParseException e) { e.printStackTrace(); } return null; }
pe.printStackTrace(); searchResults.setMessage("Sorry, but there was an error. Please try another search"); } catch (Exception e) {