List of usage examples for org.apache.lucene.search.highlight QueryTermExtractor getTerms
public static WeightedTerm[] getTerms(Query query, boolean prohibited, String fieldName)
From source file:com.liferay.portal.search.lucene31.LuceneHelperImpl.java
License:Open Source License
public String[] getQueryTerms(Query query) { String[] fieldNames = new String[] { Field.CONTENT, Field.DESCRIPTION, Field.PROPERTIES, Field.TITLE, Field.USER_NAME };/*from ww w . j av a 2s . c o m*/ WeightedTerm[] weightedTerms = null; for (String fieldName : fieldNames) { weightedTerms = QueryTermExtractor.getTerms(query, false, fieldName); if (weightedTerms.length > 0) { break; } } Set<String> queryTerms = new HashSet<String>(); for (WeightedTerm weightedTerm : weightedTerms) { queryTerms.add(weightedTerm.getTerm()); } return queryTerms.toArray(new String[queryTerms.size()]); }
From source file:de.innovationgate.wgpublisher.lucene.LuceneManager.java
License:Open Source License
public Highlighter createHighlighter(String itemOrMeta, Query query, Formatter formatter) { if (itemOrMeta == null) { return null; }/* ww w . ja va 2 s .c om*/ if (query == null) { return null; } // create scorer // use only terms for this item and terms for allcontent for scoring List terms = new ArrayList(); WeightedTerm[] termsForThisItem = QueryTermExtractor.getTerms(query, false, itemOrMeta); if (termsForThisItem != null) { for (int i = 0; i < termsForThisItem.length; i++) { terms.add(termsForThisItem[i]); } } WeightedTerm[] termsForAllContent = QueryTermExtractor.getTerms(query, false, LuceneManager.INDEXFIELD_ALLCONTENT); if (termsForAllContent != null) { for (int i = 0; i < termsForAllContent.length; i++) { terms.add(termsForAllContent[i]); } } WeightedTerm[] termsArray = new WeightedTerm[terms.size()]; for (int i = 0; i < terms.size(); i++) { WeightedTerm term = (WeightedTerm) terms.get(i); termsArray[i] = term; } QueryTermScorer scorer = new QueryTermScorer(termsArray); // create highlighter Highlighter highlighter = new Highlighter(formatter, scorer); return highlighter; }
From source file:it.unibz.instasearch.indexing.Searcher.java
License:Open Source License
/** * Extracts search terms and their weights * @param query/*from w ww .j av a 2 s . c o m*/ * @return */ private static Map<String, Float> extractTerms(Query query) { WeightedTerm[] weightedTerms = QueryTermExtractor.getTerms(query, false, Field.CONTENTS.toString()); Map<String, Float> terms = new HashMap<String, Float>(weightedTerms.length); for (WeightedTerm weightedTerm : weightedTerms) terms.put(weightedTerm.getTerm(), weightedTerm.getWeight()); return terms; }