private void addDoc(IndexWriter writer, IndexingValue indexingValue) throws Exception { Document doc = new Document(); // type Field typeField = new IntField(FIELD_LABEL_TYPE, indexingValue.getType(), Field.Store.YES); doc.add(typeField); // id Field idField = new StringField(FIELD_LABEL_ID, indexingValue.getId(), Field.Store.YES); doc.add(idField); // タイトル doc.add(new TextField(FIELD_LABEL_TITLE, indexingValue.getTitle(), Field.Store.YES)); // 内容 doc.add(new TextField(FIELD_LABEL_CONTENTS, indexingValue.getContents(), Field.Store.YES)); // タグ Field tagField = new TextField(FIELD_LABEL_TAGS, indexingValue.getTags(), Field.Store.YES); doc.add(tagField); // アクセスできるユーザ Field userField = new TextField(FIELD_LABEL_USERS, indexingValue.getUsers().toString(), Field.Store.YES); doc.add(userField); // アクセスできるグループ Field groupField = new TextField(FIELD_LABEL_GROUPS, indexingValue.getGroups().toString(), Field.Store.YES); doc.add(groupField); // 登録者 Field creatorField = new StringField(FIELD_LABEL_CREATE_USER, indexingValue.getCreator(), Field.Store.YES); doc.add(creatorField); // 時刻 Field timeField = new LongField(FIELD_LABEL_TIME, indexingValue.getTime(), Field.Store.YES); doc.add(timeField); if (writer.getConfig().getOpenMode() == OpenMode.CREATE) { log.debug("adding " + indexingValue.getId()); writer.addDocument(doc); } else { log.debug("updating " + indexingValue.getId()); writer.updateDocument(new Term(FIELD_LABEL_ID, indexingValue.getId()), doc); } }
private String getIndexPath() { AppConfig appConfig = ConfigLoader.load(AppConfig.APP_CONFIG, AppConfig.class); log.debug("lucene index: " + appConfig.getIndexPath()); return appConfig.getIndexPath(); }