Example usage for org.apache.lucene.search.highlight QueryTermExtractor getTerms

List of usage examples for org.apache.lucene.search.highlight QueryTermExtractor getTerms

Introduction

In this page you can find the example usage for org.apache.lucene.search.highlight QueryTermExtractor getTerms.

Prototype

public static WeightedTerm[] getTerms(Query query, boolean prohibited, String fieldName) 

Source Link

Document

Extracts all terms texts of a given Query into an array of WeightedTerms

Usage

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;
}