No, I mean HitDoc.id, the document number field stored in
the HitDoc class.  This number is needed when calling
IndexReader.delete(int docnum) but it is not publicly
accessible.

-- 
Adrian


At 06:32 09/10/2002 -0700, Otis Gospodnetic wrote:
>You mean d.get("Id"); ?
>
>--- [EMAIL PROTECTED] wrote:
>> I am just getting started with Lucene and I think I have
>> a problem understanding some basic concepts.
>> 
>> I am using two-part identifiers to uniquely identify a
>> document in the index.  So whenever I want to index a
>> document, I first want to find and delete the old form.
>> 
>> To find it, I intend to use:
>> 
>>     BooleanQuery findOurs = new BooleanQuery();
>>     findOurs.add(new TermQuery(new Term("Id", id)), true, false);
>>     findOurs.add(new TermQuery(new Term("Domain", domain)), true, false);
>> 
>>     System.out.println("Deleting document matching: \"" +
>>                        findOurs.toString("") + '"');
>>     
>>     Searcher searcher = new IndexSearcher(directory);
>>     Hits hits = searcher.search(findOurs);
>> 
>>     // Assert: hits.length() <= 1
>> 
>>     for (int i = 0 ; i < hits.length() && i < 10; i++) {
>>       Document d = hits.doc(i);
>> 
>>       // Now what can I do to find document id?
>> 
>>       int id = ??????
>>      searcher.delete(id);
>>     }
>> 
>> But I can't discover how to convert a search result into
>> a document id.  It is recorded in the private HitDoc
>> class, but since it is not publicly accessible, there
>> must be a reason why it would not work to add a public
>> getter for it.
>> 
>> Is there an alternative way that I can do this?  My first
>> thought is to define a Field.Keyword("composite-key",
>> domain + "\u0000" + id).  This would allow me to use the
>> delete(Term) interface to delete the key.
>> 
>> -- 
>> Thanks, Adrian.


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

Reply via email to