Я работаю над приложением, которое обеспечивает индексированный поиск в большом статическом хранилище данных. Это не клиент-серверное приложение, в котором сервер всегда включен, а нативное приложение, которое запускается каждый раз по требованию.
Я хочу проиндексировать файлы в репозитории один раз и сохранить свою работу в файл. Затем я хочу, чтобы каждый пользователь моего приложения мог загрузить уже созданный индекс из сохраненного файла.
Я видел следующий базовый код создания индекса в «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?
- Как я могу позже загрузить их из сохраненных файлов и использовать для запросов?