1
성능 향상을 위해 문서 및 필드 인스턴스를 재사용하려고합니다. 20 초가 걸리는 인스턴스를 재사용하지 않고 파일에서 1 백만 행을 시도했습니다.Lucene 인덱싱에서 문서 및 필드 인스턴스 재사용
하지만 그렇게하려고하면 너무 많은 시간이 걸리고 계속 실행됩니다.
누구나 전에도 같은 문제에 직면 할 수 있습니까?
이것은 새 문서와 필드를 작성하는 파일의 각 행에 대해 인스턴스를 재사용하기 전에 기존 코드입니다.
FileInputStream fis;
try {
fis = new FileInputStream(file);
String filePath= file.getPath();
BufferedReader br = new BufferedReader(
new InputStreamReader(fis, StandardCharsets.UTF_8));
String line = null;
while ((line = br.readLine()) != null) {
String[] lineTokens = line.split("\\|");
Document doc = new Document();
Field field1 = new TextField("field1", field1Value, Field.Store.YES);
doc.add(field1);
Field field2 = new StringField("field2", field2Value,Field.Store.YES);
doc.add(field2);
writer.addDocument(doc);
}
br.close();
} catch (FileNotFoundException fnfe) {
}
FileInputStream fis;
try {
fis = new FileInputStream(file);
String filePath= file.getPath();
BufferedReader br = new BufferedReader(
new InputStreamReader(fis, StandardCharsets.UTF_8));
String line = null;
Document doc = new Document();
Field field1 = new TextField("field1", field1Value, Field.Store.YES);
Field field2 = new StringField("field2", field2Value,Field.Store.YES);
while ((line = br.readLine()) != null) {
//String[] lineTokens = line.split("\\|");
field1.setStringValue("field1Value");
doc.add(field1);
field2.setStringValue("field2Value");
doc.add(field2);
writer.addDocument(doc);
}
br.close();
} catch (FileNotFoundException fnfe) {
}
감사를 너무 많이 .. 작동 !!!! – Shankar