>>From what I remember when doing similar patches to Lucene core, alternative >>way (not adding any new support) requires one to dig deep into implementation >>details of Lucene term and query objects, breaking encapsulation
That may well used to be the case but not since query.rewrite() was introduced. All of the existing "complex" query types (range/prefix/fuzzy etc) are redefined as more primitive term queries in their implementation of query.rewrite(reader). This is what enables the highlighter to work with these queries without having to change Lucene internals. Incidentally, having thought about the overhead of query.rewrite(reader) I have chosen to remove that code from the highlighter package. It is now the responsibility of the caller to: 1) Call rewrite on the query to obtain a primitive version 2) Do a search using the primitive query 3) Call the highlighter with the primitive query. ...if they want "complex" query types to be highlighted This way the term expansion hit only occurs once. Slightly more complex to use but more efficent. Hope this helps clarify things Mark --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]