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 ki <ki...@web.de> on 2007/07/25 15:18:39 UTC
Lucene Highlighter linkage Error
Hello!
I am working with Tomcat. I have put the Lucene highlighter.jar in the
folder lib. And I have created an extra css, where I say that the background
color has to be yellow. The searchword has to be highlighted know.
I have got a dataTable in which the result of the following Lucene method is
loaded:
[code]
public void search(String q, File index, String [] fields, ArrayList
subresult, int numresults) throws Exception {
Directory fsDir = FSDirectory.getDirectory(index, false);
IndexSearcher is = new IndexSearcher(fsDir);
Analyzer analyzer = new StandardAnalyzer();
Fragmenter fragmenter = new SimpleFragmenter(100);
QueryParser queryparser = new MultiFieldQueryParser (fields, analyzer);
Query query = queryparser.parse(q);
Hits hits = is.search(query);
IndexReader reader=null;
query=query.rewrite(reader);
QueryScorer scorer = new QueryScorer(query);
SimpleHTMLFormatter formatter= new SimpleHTMLFormatter("","");
Highlighter high = new Highlighter(formatter,scorer);
high.setTextFragmenter(fragmenter);
numresults = numresults == -1 || numresults > hits.length() ?
hits.length() : numresults;
String rating = "";
for (int i = 0; i <numresults; i++) {
if (hits.score(i)>schwelli){
float f = hits.score(i);
if (0.9f <= f) {rating = "******";}
else if (0.8f <= f && f<0.9f){rating = "*****";}
else if (0.7f <= f && f<0.8f){rating = "****";}
else if (0.6f <= f && f<0.7f){rating = "***";}
else if (0.5f <= f && f<0.6f){rating = "**";}
else if (f <= 0.5f){rating = "*";}
Document doc = hits.doc(i);
String abstracts =doc.get("ABSTRACTS");
String title = doc.get("TITLE");
TokenStream abstract_stream = analyzer.tokenStream(q, new
StringReader(abstracts));
TokenStream title_straem = analyzer.tokenStream(q, new
StringReader(title));
String fragment_abstract =
high.getBestFragments(abstract_stream,abstracts, 5, "...");
String fragment_title = high.getBestFragments(title_straem,title,
5, "...");
if(fragment_title.length()==0){
setAusgabeTitle(doc.get("TITLE"));
}else{
setAusgabeTitle(fragment_title);
}
if(fragment_abstract.length()==0){
setAusgabeAbstract(doc.get("ABSTRACTS"));
}else{
setAusgabeAbstract(fragment_abstract);
}
//list.add(i+1+"\t"+q+"\t"+doc.get(entry_medline)+"\t"+hits.score(i)+"\t"+abstract_stream+"\t"+title_straem+"\t"+"MEDLINE");
/*int No = i;
subresult.add((new Integer(No)).toString());*/
subresult.add(doc.get(entry_medline));
subresult.add("No Id");
subresult.add("No Id");
float sco = hits.score(i);
subresult.add(rating);//(hits.score(i));
subresult.add(abstract_stream);
subresult.add(title_straem);
subresult.add("No hits for this index");
subresult.add("MEDLINE");
}
}
}
[code]
But I get the following error.
Error:
javax.servlet.ServletException: #{suggestBox.Search}:
javax.faces.el.EvaluationException: java.lang.LinkageError: Class
org/apache/lucene/search/Query violates loader constraints
javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.j
ava:96)
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)
Does someone know what I am doing wrong?
--
View this message in context: http://www.nabble.com/Lucene-Highlighter-linkage-Error-tf4142164.html#a11782482
Sent from the Lucene - Java Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org