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 Jason <je...@hardlight.com.au> on 2007/01/10 03:34:54 UTC
hithighlighter bug
Hi all,
I have come across what I think is a curious but insidious bug with the
java lucene hit highlighter. I updated to the latest version of lucene
and the highlighter because I first found this problem in the lucene
v1.4 version, unfortunately its still there in v2.0.0 versions.
I am indexing XML documents and am also using the hit highlighter for
search results. This works perfectly in almost every case except for one.
in my I have this:
public class LuceneSearch implements
org.apache.lucene.search.highlight.Formatter
{
...
public String highlightTerm(String originalText , TokenGroup group)
{
if(group.getTotalScore()<=0)
{
return originalText;
}
return "<em>" + originalText + "</em>";
}
when I search for -> Acquisition Plan <-
in my search results I get:
<summary>(ancilliary stuff deleted)....
attached to the <em>Acquisition</em>
< em>Plan</em>and signed</summary>
notice the space between the < and e in the second < em>
This only occurs for these search terms and for this document (as far as
I know) but because its part of a much larger XML document it breaks the
whole thing.
the original XML is unremarkable with no strange characters surrounding
these terms - a snipit from the relevant paragraph from which these
highlighted terms come:
-> attached to the Acquisition Plan and signed off<-
has anyone seen anything like this before? is this a genuine new bug or
something of which the lucene folk (or at least whoever wrote the
highlighter) are aware? can anyone think of a way to fix this without
scanning every element in my result text for rogue spaces?
Thanks in advance
Jason.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org
Re: hithighlighter bug
Posted by Steven Rowe <sa...@syr.edu>.
Jason wrote:
> Hi all,
> I have come across what I think is a curious but insidious bug with
> the java lucene hit highlighter.
[...]
> when I search for -> Acquisition Plan <-
> in my search results I get:
> <summary>(ancilliary stuff deleted)....
> attached to the <em>Acquisition</em>
> < em>Plan</em>and signed</summary>
>
> notice the space between the < and e in the second < em>
Sorry, Jason, I don't have a solutions for you, but in case there's any
question about whether "< em>" is well-formed XML/XHTML/HTML:
1. It is not well-formed XML (and thus cannot be well-formed XHTML) -
from <http://www.w3.org/TR/xml/#sec-starttags>:
[40] STag ::= '<' Name (S Attribute)* S? '>'
[5] Name ::= (Letter | '_' | ':') (NameChar)*
("Letter" & "NameChar" declarations omitted - suffice to say whitespace
is excluded.)
2. AFAICT (IANASG), SGML (and hence the [pre-XHTML] HTML profiles of it)
disallows space chars between the '<' and the element name (a.k.a.
"generic identifier") - from
<http://www.oasis-open.org/cover/sgmlsyn/sgmlsyn.htm#C7.4>:
[14] start-tag =
( stago , <
document type specification [28] ,
generic identifier specification [29] ,
attribute specification list [31] ,
s [5] *,
tagc ) | >
minimized start-tag [15]
[29] generic identifier specification =
generic identifier [30] | rank stem [120]
[30] generic identifier = name [55]
[120] rank stem = name [55]
[55] name = name start character [53] , name character [52] *
(Note 1: "name" & "name start character" declarations omitted - suffice
to say whitespace is excluded.)
(Note 2: "document type specification" declaration omitted, because all
HTML profiles include the "CONCUR NO" option, thus excluding this syntax.)
(Note 3: "minimized start-tag" declaration omitted, because although all
HTML profiles include the "SHORTTAG YES" option, the
element-minimization aspects of this option [as distinct from attribute
minimization, e.g. omitted and unquoted attribute values] are not
supported by mainstream browsers; in any case, whitespace is disallowed
prior to generic identifiers in all of the minimized start tag forms.)
3. Firefox 2.0.0.1 and IE 7.0 on WinXP both render "< em>...</em>" as
literal "< em>..." - the (malformed) start tag is rendered as non-markup
plain text, and the close tag is not displayed.
Steve
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org