If we're still dealing with StringReader(text) throwing an error.... It
really shouldn't unless the document has no field named "contents". Here's
what I'd do...

Get a copy of Luke (google luke lucene) to examine your index.
Figure out what the document ID is that you're blowing up on and look at it
in Luke to be sure that there's text in the contents field.
Watch case etc.

You shouldn't be getting a null here unless 1> your doc ID is not in your
index or 2> your document doesn't have such a field.

And how are you storing your date? Field.Store.YES? NO? COMPRESSED?

Best
Erick

On 11/23/06, sirakov <[EMAIL PROTECTED]> wrote:



Erick Erickson wrote:
>
> So why not assign a string to "text" and try it again? Or show us the
code
> where you expect the text variable to get a value.....
>
> Erick
>
>

I`m sorry that was a miss from my side.

I've tried to put the simple code into SearchFiles, between

Hits hits = searcher.search(query);

and

String path = doc.get("path");

Here the code:

      Highlighter highlighter = new Highlighter(new QueryScorer(query));



      if (repeat > 0) {                           // repeat & time as
benchmark
        Date start = new Date();
        for (int i = 0; i < repeat; i++) {
          hits = searcher.search(query);
        }
        Date end = new Date();
        System.out.println("Time: "+(end.getTime()-start.getTime())+"ms");
      }

      System.out.println(hits.length() + " total matching documents");

      final int HITS_PER_PAGE = 10;
      for (int start = 0; start < hits.length(); start += HITS_PER_PAGE) {
        int end = Math.min(hits.length(), start + HITS_PER_PAGE);
        for (int i = start; i < end; i++) {

          if (raw) {                              // output raw format
            System.out.println("doc="+hits.id(i)+" score="+hits.score(i));
            continue;
          }

          Document doc = hits.doc(i);

          String text = hits.doc(i).get(field); //String field =
"contents";
          TokenStream tokenStream = analyzer.tokenStream(field, new
StringReader(text));
          // Get 3 best fragments and seperate with a "..."
          String result = highlighter.getBestFragments(tokenStream, text,
3,
"...");


          String path = doc.get("path");
          if (path != null) {
            System.out.println((i+1) + ". " +
path);System.out.println("\t"+result);
            String title = doc.get("title");
            if (title != null) {
              System.out.println("   Title: " + doc.get("title"));
            }
          } else {
            System.out.println((i+1) + ". " + "No path for this
document");
          }
        }

The bolded text was added by me. I hope, i have made the changes in the
right file :)
--
View this message in context:
http://www.nabble.com/Newbie-Search-Question-tf2667479.html#a7513261
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


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


Reply via email to