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 ji...@tera.gr on 2008/06/26 09:48:56 UTC

Highlight an Greek

Hello

i am having the following code to highlight a text

public String highlight(String text, String query ) throws IOException {
TermQuery query = new TermQuery(new Term("f", query));
     QueryScorer scorer = new QueryScorer(query);
     SimpleHTMLFormatter formatter =
         new SimpleHTMLFormatter("<span class=\"highlight\">",
             "</span>");
     Highlighter highlighter = new Highlighter(formatter, scorer);
     Fragmenter fragmenter = new SimpleFragmenter(50);
     highlighter.setTextFragmenter(fragmenter);

     TokenStream tokenStream = new GreekAnalyzer()
         .tokenStream("f", new StringReader(text));

     String result = highlighter.getBestFragments(tokenStream, text, 5, "...");

   return result;
}

if i use a text with english characters works fine if i try a text  
with Greek Character i am getting en empty string as result.
Why?

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


Re: Highlight an Greek

Posted by Eleanor Joslin <ej...@decisionsoft.com>.
You should be using the same analyzer when you query as when you built 
the index.  I suspect that in this case you need to make an analyzer 
that recognises both English and Greek.

I hope this helps,

	Eleanor Joslin

jim@tera.gr wrote:
> Hello
> 
> i am having the following code to highlight a text
> 
> public String highlight(String text, String query ) throws IOException {
> TermQuery query = new TermQuery(new Term("f", query));
>     QueryScorer scorer = new QueryScorer(query);
>     SimpleHTMLFormatter formatter =
>         new SimpleHTMLFormatter("<span class=\"highlight\">",
>             "</span>");
>     Highlighter highlighter = new Highlighter(formatter, scorer);
>     Fragmenter fragmenter = new SimpleFragmenter(50);
>     highlighter.setTextFragmenter(fragmenter);
> 
>     TokenStream tokenStream = new GreekAnalyzer()
>         .tokenStream("f", new StringReader(text));
> 
>     String result = highlighter.getBestFragments(tokenStream, text, 5, 
> "...");
> 
>   return result;
> }
> 
> if i use a text with english characters works fine if i try a text with 
> Greek Character i am getting en empty string as result.
> Why?
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
> 
> 


-- 
Eleanor Joslin, Software Development   DecisionSoft Ltd.
Telephone: +44-1865-203192             http://www.decisionsoft.com

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


Re: Highlight an Greek

Posted by Grant Ingersoll <gs...@apache.org>.
Because there are no matches?  Have you checked your index, etc?  Do  
you get matches for that query normally in Greek against your index  
(nevermind highlighting)?  Are your analyzers the same?  Are your  
English Fields stored and the Greek ones not?  Does field "f" contain  
Greek?  It could be a whole host of reasons and that snippet of code  
is not enough to go from.  Check your index with Luke, etc.  See the  
FAQ for more help, too.

Also, please don't repost the same exact question 45 minutes later b/c  
you didn't get an immediate response at 3:48 AM East Coast US time.   
It just clutters email and makes it less likely that you will get a  
response.

-Grant

On Jun 26, 2008, at 3:48 AM, jim@tera.gr wrote:

> Hello
>
> i am having the following code to highlight a text
>
> public String highlight(String text, String query ) throws  
> IOException {
> TermQuery query = new TermQuery(new Term("f", query));
>    QueryScorer scorer = new QueryScorer(query);
>    SimpleHTMLFormatter formatter =
>        new SimpleHTMLFormatter("<span class=\"highlight\">",
>            "</span>");
>    Highlighter highlighter = new Highlighter(formatter, scorer);
>    Fragmenter fragmenter = new SimpleFragmenter(50);
>    highlighter.setTextFragmenter(fragmenter);
>
>    TokenStream tokenStream = new GreekAnalyzer()
>        .tokenStream("f", new StringReader(text));
>
>    String result = highlighter.getBestFragments(tokenStream, text,  
> 5, "...");
>
>  return result;
> }
>
> if i use a text with english characters works fine if i try a text  
> with Greek Character i am getting en empty string as result.
> Why?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>

--------------------------
Grant Ingersoll
http://www.lucidimagination.com

Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ








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