On 11 Nov 2005, at 20:32, bib_lucene bib wrote:
-- Text I want to highlight is stored in the file system and index
-- I can search and highlight the searched terms in results page ( just snippets) -- I have given a download link next to snippets ( which will point to file I stored in ROOT webapp of tomcat)

I understood the concept of NullFragmenter, sorry for repeating myself... It is something like a google search. In google if I enter search term "highlight" and click on search, I get back search results with word "highlight" in bold. ( I can do that)

If you're using NullFragmenter (which I just committed to contrib/ highlighter) then you're not getting snippets, you're getting the full text. But this is unrelated to your main question.

Now when I click on the links (Ex: GNU Source-highlight 2.2) which is http://www.gnu.org/software/src-highlite/source-highlight.html I want the term 'highlight" in bold when the page is displayed (This I do not know how to do)

I will index docs like html, pdf, word etc.
As I have already extracted text using textminer etc, question is when I click on "show full document" link in search results page which I will give below the highlighted search snippet how can i pull out full text of the document from index. As there is no unique identifier for each doc in the index (?)

Well, as I said, from here on out is really in the domain of your application and not Lucene and the Highlighter. Perhaps your index should have a unique identifying key field (Field.Keyword works well for this). And then your links to the full text should be augmented to have that key in them, and that link needs to be to something dynamic, like a servlet, rather than a static link, that passes in the id of the document to be highlighted and the query to use with Highlighter.

Or do I just have to extract the text from the file stored in file system and pass it to the highlighter.

Perhaps. I cannot decide this for you as it is, again, your application business logic that determines where the text of a document is. You already mentioned the text is in the Lucene index in your case, so you could pass the document id (or the path, or some unique key) to the highlighting servlet, retrieve that document from Lucene, highlight the text using the NullFragmenter, and serve up that highlighted text.

Here is the code snippet.
LuceneHitHighlighter highlighter = new LuceneHitHighlighter (queryStr, "snippet", "body");
                for (int i = 0; i < hits.size(); i++) {
                    Document doc = (Document) hits.get(i);
                    highlighter.doHighlight(doc);
                    out.println("SNIPPET: " + doc.get("snippet"));
                    out.println("<hr>");

You're adding a field to the document in doHighlight - this is not something I'd recommend. It is not persistent, just so you know. I recommend simply returning the highlighted String from that method rather than adding a field.

    Erik


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to