Папка назначения Lucene indexwriter - PullRequest
0 голосов
/ 07 июля 2011

Я работаю над небольшим проектом lucene, где мне нужно проиндексировать несколько текстовых файлов.Я думаю, что пока мне удалось создать индекс.код запускается, и я получаю набор файлов с именем 0 _. * fdt / fdx / fnm и т. д.

я хочу знать, могу ли я выбрать папку назначения дляиндекс, который будет создан в?

Я следую этому Руководству , и я определяю папку индекса и файлы для папки индекса, но я не могу найти никаких параметров в конструкторе indexwriter, которые могли бы достичь этого.

вот мой код для создания индекса

public static void createIndex() throws CorruptIndexException, LockObtainFailedException, IOException {
    File[] files = FILES_TO_INDEX_DIRECTORY.listFiles();
    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_33);
    SimpleFSDirectory d = new SimpleFSDirectory(FILES_TO_INDEX_DIRECTORY);
    IndexWriter indexWriter = new IndexWriter(d, analyzer, IndexWriter.MaxFieldLength.LIMITED);

    for (File file : files) {
        Document document = new Document();

        String path = file.getCanonicalPath();
        byte[] bytes = path.getBytes();
        document.add(new Field(FIELD_PATH, bytes));

        Reader reader = new FileReader(file);
        document.add(new Field(FIELD_CONTENTS, reader));

        indexWriter.addDocument(document);
    }
    indexWriter.optimize();
    indexWriter.close();
}

, и я использую тип File вместо строки для каталогов

public static File FILES_TO_INDEX_DIRECTORY = new File("C:\\Users\\k\\Dropbox\\Public\\afgansprojekt\\RouteLogger\\Lucene\\FilesToIndex");
public static final File INDEX_DIRECTORY = new File("C:\\Users\\k\\Dropbox\\Public\\afgansprojekt\\RouteLogger\\Lucene\\Index");

1 Ответ

1 голос
/ 07 июля 2011

На самом деле вы устанавливаете папку назначения с помощью SimpleFSDirectory d = new SimpleFSDirectory(FILES_TO_INDEX_DIRECTORY);

Просто измените SimpleFSDirectory(FILES_TO_INDEX_DIRECTORY); на SimpleFSDirectory(INDEX_DIRECTORY);.

Edit:

File[] files = FILES_TO_INDEX_DIRECTORY.listFiles(); //this is where you set the files to index

SimpleFSDirectory d = new SimpleFSDirectory(FILES_TO_INDEX_DIRECTORY); //here you are setting the index directory

Вы должны изменить эту строку на SimpleFSDirectory d = new SimpleFSDirectory(INDEX_DIRECTORY);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...