Работя върху приложение, което позволява индексирано търсене в голямо статично хранилище на данни. Това не е сървърно-клиентско приложение, при което сървърът винаги работи, а е собствено приложение, което се стартира всеки път при поискване.
Искам да индексирам файловете в хранилището веднъж и да запазя работата си във файл. След това искам всеки потребител на моето приложение да може да зареди вече създадения индекс от записания файл.
Видях следния основен код за създаване на индекс в „Lucene за 5 минути“:
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_40);
Directory index = new RAMDirectory();
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_40, analyzer);
IndexWriter w = new IndexWriter(index, config);
addDoc(w, "Lucene in Action", "193398817");
addDoc(w, "Lucene for Dummies", "55320055Z");
addDoc(w, "Managing Gigabytes", "55063554A");
addDoc(w, "The Art of Computer Science", "9900333X");
w.close();
private static void addDoc(IndexWriter w, String title, String isbn) throws IOException {
Document doc = new Document();
doc.add(new TextField("title", title, Field.Store.YES));
doc.add(new StringField("isbn", isbn, Field.Store.YES));
w.addDocument(doc);
}
- Как мога сега да запиша във файл променливите analyzer, index и config?
- Как мога по-късно да ги заредя от запазените файлове и да ги използвам за заявки?