You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Mark Miller (JIRA)" <ji...@apache.org> on 2008/08/21 13:36:44 UTC
[jira] Resolved: (LUCENE-495) Suggested Patches to MultiPhraseQuery
and QueryTermExtractor (for use with HighLighter)
[ 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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org