List of usage examples for org.apache.lucene.index IndexWriter addDocument
public long addDocument(Iterable<? extends IndexableField> doc) throws IOException
From source file:com.edgenius.wiki.search.lucene.IndexWriterTemplate.java
License:Open Source License
/** * @param documentCreator//from ww w . ja v a 2 s. co m */ public void addDocument(Document document) { IndexWriter writer = indexFactory.getIndexWriter(); try { writer.addDocument(document); writer.commit(); } catch (IOException ex) { log.error("Error during add a document", ex); throw new IndexAccessException("Error during add a document.", ex); } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * /*from w w w . j a v a2 s. co m*/ */ public void rebuildAttachmentIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // attachment final List<CrFileNode> attachments = crFileNodeDAO.getAllCurrentNode(); if (attachments != null) { attachmentLock.lock(); try { attachmentTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter attWriter) { for (CrFileNode node : attachments) { if (RepositoryService.DEFAULT_SPACE_NAME.equals(node.getSpaceUname())) { //don't index default space stuff: it is user portrait etc. continue; } try { FileNode fNode = FileNode.copyPersistToNode(node); attWriter.addDocument(createAttachmentDocument(node.getSpaceUname(), fNode, null)); } catch (Exception e) { log.error("Rebuild index failed on attachment" + node, e); } } } }); } finally { attachmentLock.unlock(); log.info("Attachment index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * /*from w w w. j a v a2s . co m*/ */ public void rebuildSpaceTagIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // SpaceTag final List<SpaceTag> spaceTags = spaceTagDAO.getObjects(); if (spaceTags != null) { spaceTagLock.lock(); try { spaceTagTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter spaceTagWriter) { for (SpaceTag tag : spaceTags) { try { spaceTagWriter.addDocument(createSpaceTagDocument(tag)); } catch (Exception e) { log.error("Rebuild index failed on space tag" + tag, e); } } } }); } finally { spaceTagLock.unlock(); log.info("Space tag index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * //from w ww. j a va 2 s . c o m */ public void rebuildPageTagIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // PageTag final List<PageTag> pageTags = pageTagDAO.getObjects(); if (pageTags != null) { pageTagLock.lock(); try { pageTagTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter pageTagWriter) { for (PageTag tag : pageTags) { try { pageTagWriter.addDocument(createPageTagDocument(tag)); } catch (Exception e) { log.error("Rebuild index failed on page tag" + tag, e); } } } }); } finally { pageTagLock.unlock(); log.info("Page tag index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * //from w w w .java2 s . c o m */ public void rebuildUserIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // User final List<User> users = userDAO.getObjects(); if (users != null) { userLock.lock(); try { userTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter userWriter) { for (User user : users) { try { userWriter.addDocument(createUserDocument(user)); } catch (Exception e) { log.error("Rebuild index failed on user" + user, e); } } } }); } finally { userLock.unlock(); log.info("User index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
public void rebuildRoleIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Role - only group type role is indexed final List<Role> roles = roleDAO.getRoles(Role.TYPE_GROUP, null); if (roles != null) { roleLock.lock();/*from w w w.j a v a 2 s . com*/ try { roleTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter roleWriter) { for (Role role : roles) { try { roleWriter.addDocument(createRoleDocument(role)); } catch (Exception e) { log.error("Rebuild index failed on role" + role, e); } } } }); } finally { roleLock.unlock(); log.info("Role index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * // w ww .ja v a 2 s . c o m */ public void rebuildSpaceIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Space final List<Space> spaces = spaceDAO.getObjects(); if (spaces != null) { spaceLock.lock(); try { spaceTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter spaceWriter) { for (Space space : spaces) { try { //skip system space if (StringUtils.equalsIgnoreCase(SharedConstants.SYSTEM_SPACEUNAME, space.getUnixName())) continue; spaceWriter.addDocument(createSpaceDocument(space)); } catch (Exception e) { log.error("Rebuild space index failed " + space, e); } } } }); } finally { spaceLock.unlock(); log.info("Space index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * /*ww w . j a v a 2 s . c om*/ */ public void rebuildWidgetIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Space final List<Widget> widgets = widgetDAO.getObjects(); if (widgets != null) { widgetLock.lock(); try { widgetTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter widgetWriter) { for (Widget widget : widgets) { try { widgetWriter.addDocument(createWidgetDocument(widget)); } catch (Exception e) { log.error("Rebuild widget index failed " + widget, e); } } } }); } finally { widgetLock.unlock(); log.info("Widget index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * /* www .j a v a2s . c om*/ */ public void rebuildCommentIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // page comment final List<PageComment> comments = commentDAO.getObjects(); IndexWriter commentWriter = null; if (comments != null) { commentLock.lock(); try { commentTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter commentWriter) { for (PageComment comment : comments) { try { commentWriter.addDocument(createCommentDocument(comment)); } catch (Exception e) { log.error("Rebuild index failed on comment. Owner page title " + comment.getPage().getTitle(), e); } } } }); } finally { try { if (commentWriter != null) commentWriter.close(); } catch (Exception e) { log.error("Close comment index failed ", e); } commentLock.unlock(); log.info("Comment index is rebuilt"); } } }
From source file:com.edgenius.wiki.search.service.IndexServiceImpl.java
License:Open Source License
/** * //w ww .j a v a 2s . c o m */ public void rebuildPageIndex() { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // page //get how many page in whole system, then decide if use optimised way to build indexing final long size = pageDAO.getSystemPageCount(); if (size > 0) { pageLock.lock(); try { pageTemplate.addDocument(new IndexCallback() { @Override public void addDocument(IndexWriter pageWriter) { //it is memory killer if using pageDAO.getObjects(); Now read page by native SQL and initialise object manually. //Current page returns: //PageTitle, PageUUID, page.getContent().getContent(), //page.getSpace().getUnixName(), //page.getSpace().getHomepage().getPageUuid() //page.getSpace().getUid() //page.getSpace().getSetting() final int returnNum = 500; int start = 0; int indexedSize = 0, skipped = 0; Map<Integer, Space> spaceCache = new HashMap<Integer, Space>(); //get pages by returnNum count size list and looping until all pages done do { List<Page> pages = pageDAO.getPageForIndexing(start, returnNum); if (pages == null) { AuditLogger.error("PageDAO get null from PageForIndex():start" + start); break; } //insert space information - the basic assumption is, space is less. So I cache all spaces into a Hashmap. for (Page page : pages) { //current page only has spaceUid value Space space = spaceCache.get(page.getSpace().getUid()); if (space == null) { space = spaceDAO.get(page.getSpace().getUid()); if (space == null) { AuditLogger.error( "Page get null space by spaceUid:" + page.getSpace().getUid()); continue; } spaceCache.put(space.getUid(), space); } page.setSpace(space); } //index current page list for (Page page : pages) { try { if (WikiUtil.hasBlogRender(page, themeService)) { log.info("Page has blog macro, skip indexing:" + page.getTitle()); skipped++; continue; } log.debug("Page index rebuilding:" + page.getTitle()); //skip system space pages if (StringUtils.equalsIgnoreCase(SharedConstants.SYSTEM_SPACEUNAME, page.getSpace() != null ? page.getSpace().getUnixName() : null)) continue; pageWriter.addDocument(createPageDocument(page)); indexedSize++; } catch (Exception e) { log.error("Rebuild page index failed " + page, e); } } //ready for next bundle start += returnNum; } while (start < size); log.info(new StringBuilder("Page index rebuild. Expected: ").append(size) .append(": Actual indexed:").append(indexedSize).append(": Normal skipped:") .append(skipped).append(": Failed ").append((size - indexedSize - skipped)) .toString()); } }); } finally { pageLock.unlock(); log.info("Page index is rebuilt"); } } }