You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Xiaozheng Ma <Xi...@redwood.com> on 2005/03/29 00:35:05 UTC

null pointer exception when try to get contents out of hits

Hi guys,

I indexed the file by title and contents such as:
   document.add(Field.Text("title", file.getTitle()));
   document.add(Field.Text("contents", file.getTextContents())); 
	//the getTextContents() return the Reader type obj

so far so good. I was able to search on both title and contents.

Now since the title changed, I need to update the index(the contents
never change). Instead of calling file.getTextContents() again, I figure
that it maybe faster if I can get the reader (of contents field) back
from the search hits(the original file could be huge).

  While <hits.doc(0).get("title")> returns title as expected
 
BUT the call on 'contents' returns null and raises null pointer
exception on further action.
Both 
	hits.doc(0).get("contents") 
AND
	hits.doc(0).getField("contents")
return null

I tested that I could search on 'contents:something' and it returned the
expected hit.

I am using the Lucene one release before the current release. My
question is: is it possible to get the Reader object (or contents text
string in that matter) back after I get the hit and how.

Thank you in advance!

Xiaozheng

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Re: null pointer exception when try to get contents out of hits

Posted by Erik Hatcher <er...@ehatchersolutions.com>.
On Mar 28, 2005, at 5:35 PM, Xiaozheng Ma wrote:
>
> Hi guys,
>
> I indexed the file by title and contents such as:
>    document.add(Field.Text("title", file.getTitle()));
>    document.add(Field.Text("contents", file.getTextContents()));
> 	//the getTextContents() return the Reader type obj
>
> so far so good. I was able to search on both title and contents.
>
> Now since the title changed, I need to update the index(the contents
> never change). Instead of calling file.getTextContents() again, I 
> figure
> that it maybe faster if I can get the reader (of contents field) back
> from the search hits(the original file could be huge).

You're out of luck here.  Field.Text(String, Reader) is an unstored 
field, so the contents are not in the index.

There is one trick - you can access the terms that came from the 
analysis process over that text, but it is very unlikely to be the 
original contents.  See how Luke does this if you need to go to that 
extreme.

	Erik


>
>   While <hits.doc(0).get("title")> returns title as expected
>
> BUT the call on 'contents' returns null and raises null pointer
> exception on further action.
> Both
> 	hits.doc(0).get("contents")
> AND
> 	hits.doc(0).getField("contents")
> return null
>
> I tested that I could search on 'contents:something' and it returned 
> the
> expected hit.
>
> I am using the Lucene one release before the current release. My
> question is: is it possible to get the Reader object (or contents text
> string in that matter) back after I get the hit and how.
>
> Thank you in advance!
>
> Xiaozheng
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-dev-help@lucene.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org