[
https://issues.apache.org/jira/browse/LUCENE-495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Miller resolved LUCENE-495.
--------------------------------
Resolution: Fixed
Both the span and standard Highlighters have support for MultiPhraseQuery at
this point.
> Suggested Patches to MultiPhraseQuery and QueryTermExtractor (for use with
> HighLighter)
> ---------------------------------------------------------------------------------------
>
> Key: LUCENE-495
> URL: https://issues.apache.org/jira/browse/LUCENE-495
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Search
> Affects Versions: 1.9
> Environment: All
> Reporter: Michael Harhen
> Priority: Minor
>
> I encountered a problem with the Highlighter, where it was not recognizing
> MultiPhraseQuery.
> To fix this, I developed the following two patches:
> =====================================================
> 1. Addition to org.apache.lucene.search.MultiPhraseQuery:
> Add the following method:
> /** Returns the set of terms in this phrase. */
> public Term[] getTerms() {
> ArrayList allTerms = new ArrayList();
> Iterator iterator = termArrays.iterator();
> while (iterator.hasNext()) {
> Term[] terms = (Term[])iterator.next();
> for (int i = 0, n = terms.length; i < n; ++i) {
> allTerms.add(terms[i]);
> }
> }
> return (Term[])allTerms.toArray(new Term[0]);
> }
> =====================================================
> 2. Patch to org.apache.lucene.search.highlight.QueryTermExtractor:
> a) Add the following import:
> import org.apache.lucene.search.MultiPhraseQuery;
> b) Add the following code to the end of the getTerms(...) method:
> else if(query instanceof MultiPhraseQuery)
> getTermsFromMultiPhraseQuery((MultiPhraseQuery) query, terms,
> fieldName);
> }
> c) Add the following method:
> private static final void getTermsFromMultiPhraseQuery(MultiPhraseQuery
> query, HashSet terms, String fieldName)
> {
> Term[] queryTerms = query.getTerms();
> int i;
> for (i = 0; i < queryTerms.length; i++)
> {
> if((fieldName==null)||(queryTerms[i].field()==fieldName))
> {
> terms.add(new WeightedTerm(query.getBoost(),queryTerms[i].text()));
> }
> }
> }
> =====================================================
> Can the team update the repository?
> Thanks
> Michael Harhen
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]