You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Marios Skounakis <ms...@exis.com.gr> on 2006/04/29 07:59:55 UTC
Highlighter and complex queries
Hi all,
Suppose the user enters the following query using a textbox interface:
"rate based optimization" (as a phrase query, including the quotes). The
query is parsed using QueryParser, then it is rewritten, and given to
the highlighter. Then, method getBestTextFragments is called.
The method returns some fragments which contain only one of the words in
the search phrase. Isn't this wrong? Since this is a phrase query,
shouldn't the highlighter look for fragments which contain all three
words, and even more, only for fragments in which the three words are
adjascent (based on the token stream returned by the analyzer)?
Thanks in advance,
Marios
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Highlighter and complex queries
Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On Apr 29, 2006, at 1:59 AM, Marios Skounakis wrote:
> Suppose the user enters the following query using a textbox
> interface: "rate based optimization" (as a phrase query, including
> the quotes). The query is parsed using QueryParser, then it is
> rewritten, and given to the highlighter. Then, method
> getBestTextFragments is called.
>
> The method returns some fragments which contain only one of the
> words in the search phrase. Isn't this wrong? Since this is a
> phrase query, shouldn't the highlighter look for fragments which
> contain all three words, and even more, only for fragments in which
> the three words are adjascent (based on the token stream returned
> by the analyzer)?
"wrong" is subjective in this case. I personally prefer exact
highlighting based on what matched, not just individual term
extraction. I have, in one project, converted all queries to a
SpanQuery and used getSpans() to do highlighting in an accurate way.
This particular code is not generalizable easily and was written
under contract, so I cannot share it, but it actually was not very
complex to do.
Erik
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: Highlighter and complex queries
Posted by markharw00d <ma...@yahoo.co.uk>.
Hi Marios.
>>Isn't this wrong?
Yes but this is an itch that no one has been suffficently been bothered
by to fix yet.
I still haven't had the time or a desperate need to implement this so it
will probably remain that way until someone feels strongly enough about
the problem to fix it. Highlighting is not a straight forward problem if
your goal is to exactly reflect the query logic- especially if you also
try to summarise large texts AND you are dealing with complex queries
containing Spans, "NOT" clauses and nested Boolean logic etc Some
compromises have to be made.
My suggestion as to how this might best be approached and links to some
related code is here:
http://marc.theaimsgroup.com/?l=lucene-user&m=112496111224218&w=2
This post highlights some of the intricacies involved.
http://www.gossamer-threads.com/lists/lucene/java-dev/23592#23592
Cheers
Mark
Marios Skounakis wrote:
> Hi all,
>
> Suppose the user enters the following query using a textbox interface:
> "rate based optimization" (as a phrase query, including the quotes).
> The query is parsed using QueryParser, then it is rewritten, and given
> to the highlighter. Then, method getBestTextFragments is called.
>
> The method returns some fragments which contain only one of the words
> in the search phrase. Isn't this wrong? Since this is a phrase query,
> shouldn't the highlighter look for fragments which contain all three
> words, and even more, only for fragments in which the three words are
> adjascent (based on the token stream returned by the analyzer)?
>
> Thanks in advance,
> Marios
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
>
Send instant messages to your online friends http://uk.messenger.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org