lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Miller <markrmil...@gmail.com>
Subject Re: SpanScorer problem?
Date Fri, 17 Jul 2009 11:22:35 GMT
Thanks Koji - I just made a patch for the fix if you want to pop open a
JIRA issue.

Two query types were making their own terms map and passing them to
extract, rather than using the top level term map - but extract would
use the term map to see if it saw the term before. The result was, for
the two query types that did that, boolean and disjunctmax: the last
term sighting was the only valid position being stored. Thanks a lot for
the test case - made this one fun.

- Mark

Koji Sekiguchi wrote:
> Hello,
>
> This problem was reported by my customer. They are using Solr 1.3
> and uni-gram, but it can be reproduced with Lucene 2.9 and
> WhitespaceAnalyzer.
> The program for reproducing is at the end of this mail.
>
> Query:
> (f1:"a b c d" OR f2:"a b c d") AND (f1:"b c g" OR f2:"b c g")
>
> The snippet we expected is:
> x y z <B>a</B> <B>b</B> <B>c</B> <B>d</B>
e f g <B>b</B> <B>c</B> <B>g</B>
>
> but we got:
> x y z <B>a</B> b c <B>d</B> e f g <B>b</B> <B>c</B>
<B>g</B>
>
> Thank you,
>
> Koji
> ---------
>
> public class TestHighlighter {
>
> static final String CONTENT = "x y z a b c d e f g b c g";
> static final String PH1 = "\"a b c d\"";
> static final String PH2 = "\"b c g\"";
> static final String F1 = "f1";
> static final String F2 = "f2";
> static final String F1C = F1 + ":";
> static final String F2C = F2 + ":";
> static final String QUERY_STRING =
> "(" + F1C + PH1 + " OR " + F2C + PH1 + ") AND ("
> + F1C + PH2 + " OR " + F2C + PH2 + ")";
> static Analyzer analyzer = new WhitespaceAnalyzer();
>
> public static void main(String[] args) throws Exception {
> QueryParser qp = new QueryParser( F1, analyzer );
> Query query = qp.parse( QUERY_STRING );
> CachingTokenFilter stream = new CachingTokenFilter(
> analyzer.tokenStream( F1, new StringReader( CONTENT ) ) );
> Scorer scorer = new SpanScorer( query, F1, stream, false );
> Highlighter h = new Highlighter( scorer );
> System.out.println( "query : " + QUERY_STRING );
> System.out.println( h.getBestFragment( analyzer, F1, CONTENT ) );
> }
> }
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>   


-- 
- Mark

http://www.lucidimagination.com




---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message