2
Luceneをプロジェクトに統合する作業を進めています。現在私は保存と検索に問題はありませんが、IDでの削除は機能していません。私が間違っていることは何ですか?Lucene:IDで削除できない
保存コード:あなたのIDをインデックス用のテキストフィールドを使用しているので、
Propably@Override
public void deleteById(long groupId,int objectId, boolean type) {
try {
Path path = //Path to index directory;
Directory directory = org.apache.lucene.store.FSDirectory.open(path);
IndexWriterConfig config = new IndexWriterConfig(new SimpleAnalyzer());
IndexWriter indexWriter = new IndexWriter(directory, config);
indexWriter.deleteDocuments(new Term("id",String.valueOf(objectId)));
indexWriter.commit();
indexWriter.close();
directory.close();
}catch (Exception e){
e.printStackTrace();
}
}
は、私が代わりにIntFieldを使用する必要がありますか? IntFieldを使用しても削除コードは同じままですか? –
どのluceneバージョンを使用していますか? Lucene 6.4.1には私が使用しているIntPointフィールドがありますが、これは範囲または通常の照会目的でのみ使用されます。 StringFieldで試しましたか?これはうまくいくはずです。 – dom
私はLucene 5.4.1を持っています。 stringFieldを使用するか、保存するための削除を意味しますか? –