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