You can check following possibilities :
- doc.id.toString() return same string for all of your documents.
- your tokenstream for doc.id.toString() return same token for all of your
documents. Ex: id "1 23" -> {"1","23"}. id "1 56" -> {"1","56"}. So when
you delete document by using iw.deleteDocuments(new Term("id", "1")) it
will delete both documents.

On Sat, Jun 20, 2015 at 4:44 PM, Behnam Khoshsafar <b.khoshsa...@hamgam.ir>
wrote:

> I'm using Lucene 5.1.0 to index a document and search it. I have a lot of
> documents, over 1000000, which are stored in a database. When I start
> running the project for the first time, I use Lucene to index these
> documents. Now I want to delete one document from the database and indexes.
> I also choose an id for each index. I am using the following command to
> delete, but it's delete all index.
>
> iw.deleteDocuments(new Term("id", doc.id));
> Also, I used a Query to delete but it will delete all index.
>
> I add documents to the index as follows:
>
> iDoc = new org.apache.lucene.document.Document();
> FieldType fieldType = new FieldType();
> fieldType.setIndexOptions(
> IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS);
> fieldType.setTokenized(true);
> fieldType.setStored(true);
> fieldType.setOmitNorms(true);
> fieldType.setStoreTermVectors(true);
> fieldType.setStoreTermVectorOffsets(true);
> fieldType.setStoreTermVectorPayloads(true);
> fieldType.setStoreTermVectorPositions(true);
> iDoc.add(new Field("id", doc.id.toString(), fieldType));
> iw.addDocument(iDoc);
>




-- 
*Best regards,*
*Cao Mạnh Đạt*






*D.O.B : 31-07-1991Cell: (+84) 946.328.329E-mail: caomanhdat...@gmail.com
<caomanhdat...@gmail.com>Hanoi University of Science and TechnologySchool
of information & communication technologyClass : Computer Science K54*

Reply via email to