You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Michael Harhen <mi...@cox.net> on 2006/02/06 00:33:42 UTC
Suggested Patches to MultiPhraseQuery and QueryTermExtractor (for
use with HighLighter)
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
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org
Re: Suggested Patches to MultiPhraseQuery and QueryTermExtractor (for use with HighLighter)
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
Michael,
Would you please package this as a true patch file to a JIRA issue so
that we have it officially logged and not forgotten in e-mail?
Thanks,
Erik
On Feb 5, 2006, at 6:33 PM, Michael Harhen wrote:
> 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
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-dev-help@lucene.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org