It must be a casing problem. See the code below.

                //INDEX
            IndexWriter wr = new IndexWriter("TempIndex", new
Lucene.Net.Analysis.Standard.StandardAnalyzer(), true);
            Document doc = new Document();
            doc.Add(new Field("field1", "12345678X", Field.Store.YES,
Field.Index.TOKENIZED));
            wr.AddDocument(doc);
            wr.Close();

            //DELETE (UPPERCASE)
            IndexSearcher src = new IndexSearcher("TempIndex");
            src.Reader.DeleteDocuments( new Term("field1","12345678X") );
            src.Close();

            //NUM DOCS
            src = new IndexSearcher("TempIndex");
            Console.WriteLine(src.Reader.NumDocs().ToString() + "\n"); //
<-- 1
            src.Close();

            //DELETE (LOWERCASE)
            src = new IndexSearcher("TempIndex");
            src.Reader.DeleteDocuments( new Term("field1","12345678x") );
            src.Close();

            //NUM DOCS
            src = new IndexSearcher("TempIndex");
            Console.WriteLine(src.Reader.NumDocs().ToString() + "\n"); //
<-- 0
            src.Close();

OUTPUT:
1
0

DIGY

-----Original Message-----
From: Gautam Lad [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 14, 2008 5:32 AM
To: lucene-net-user@incubator.apache.org
Subject: RE: Can't delete documents

Sorry I sent an email earlier about the casing which should have been in
response to this message.

Anywho, as I've said I didn't realize casing had an issue.

Any other suggestions?

-----Original Message-----
From: zoolette [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, May 13, 2008 5:32 PM
To: lucene-net-user@incubator.apache.org
Subject: Re: Can't delete documents

I think, because I had the same issue, that the isbn, considering the
analyzer you used, is indexed in lower case while you try to delete a value
by specifying it in upper case.

Seb

2008/5/13 Gautam Lad <[EMAIL PROTECTED]>:

> Hi there
>
> I have indexed my documents using various keys, and one of the keys is an
> ISBN.
>
> ISBNs can be all numeric or have an X at the end, (eg. 123456789X or
> 1234567890)
>
> Each of my documents is added to an index like so:
>  doc.Add(New Field(key.Name, key.Value, Field.Store.YES,
> Field.Index.TOKENIZED))
>  Here, key.Name = "isbn" and key.value = "123456789X"
>
> When I delete documents I use the following piece of code:
>
>    Public Sub DeleteSpecificKey()
>        Dim LReader As Index.IndexReader =
> Index.IndexReader.Open(Store.FSDirectory.GetDirectory(IndexDir, False))
>        Dim iResult As Integer
>          iResult = LReader.DeleteDocuments("isbn", "123456789X"))
>          LReader.Close()
>    End Sub
>
> However, since there's an "X" in the key value, it doesn't delete it.   If
> the value was all numeric it works fine.
>  What am I missing here? Everything else works fine as far as searching
> goes.
>  Thanks,
>
>



__________ Information from ESET NOD32 Antivirus, version of virus signature
database 3097 (20080514) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

Reply via email to