Я пытаюсь найти запрос из индекса Apache Lucene. Поиск возвращает большое количество результатов, я должен заполнить результат в JTable
с помощью Swing. Я использую цикл для извлечения строки объекта из индекса Apache Lucene.Извлечь данные из индекса apache lucene и заполнить JTable
По этой причине, если есть тысячи записей, требуется время для заполнения записей в таблице, я использую следующий код. Есть ли другой способ выполнить задачу без запуска цикла?
try { File indexDir= new File("path of the file")
Directory directory = FSDirectory.open(indexDir);
IndexSearcher searcher = new IndexSearcher(directory, true);
int maxhits=1000000;
QueryParser parser1 = new QueryParser(Version.LUCENE_36, "field",
new StandardAnalyzer(Version.LUCENE_36));
Query qu=parser1.parse("texttosearch");
TopDocs topDocs = searcher.search(, maxhits);
ScoreDoc[] hits = topDocs.scoreDocs;
len = hits.length;
int docId = 0;
Document d;
Vector column_name=new Vector();
column_name.addElement("title");
column_name.addElement("");
// For All Rows Data
Vector row=new Vector();
String filename="";
String titlee="";
Vector newRow=new Vector();
for (i = 0; i<len; i++) {
docId = hits[i].doc;
d = searcher.doc(docId);
filename= d.get(("fpath"));
titlee=d.get("title");
newRow= new Vector();
newRow.addElement(titlee);
newRow.addElement(filename);
row.addElement(newRow);
}
DefaultTableModel model= new DefaultTableModel(row, column_name);
table.setModel(model);
}
catch(Exception ex)
{
ex.printStackTrace();
}
* "Есть ли другой способ для достижения этой задачи, не запуская цикл? »* Если бы был другой способ, я сомневаюсь, что это будет быстрее, чем цикл. BTW Используйте последовательный и логический отступ для кодовых блоков. Отступ кода предназначен для того, чтобы помочь людям понять поток программы! –