public void updateIndex(Entity entity) { if (!(entity instanceof User)) return; User user = (User) entity; Organization org = this.getUserService().getOrgById(user.getOrgId()); try { deleteIndex(entity); } catch (Exception e) { } if (user.getId() == org.getUserId()) return; addIndex(user, user.getOrgId()); }
private Document getPublicDocument(User user) { try { Document doc = new Document(); String entryId = getType() + String.valueOf(user.getId()); doc.add(new Field(_TYPE_ID, getType(), Store.YES, Index.NOT_ANALYZED)); doc.add(new Field(_ENTRY_ID, entryId, Store.YES, Index.NOT_ANALYZED)); doc.add(new Field("id", String.valueOf(user.getId()), Store.YES, Index.NOT_ANALYZED)); Field userIdField = new Field("userId", user.getUserId(), Store.YES, Index.NOT_ANALYZED); userIdField.setBoost(10.0F); doc.add(userIdField); Field emailField = new Field( "email", (user.getEmail() != null) ? user.getEmail() : user.getUserId(), Store.YES, Index.NOT_ANALYZED); emailField.setBoost(10.0F); doc.add(emailField); Field uriField = new Field("uri", user.getUri().toLowerCase(), Store.YES, Index.NOT_ANALYZED); uriField.setBoost(10.0F); doc.add(uriField); Field displayNameField = new Field("displayName", user.getName(), Store.YES, Index.ANALYZED); displayNameField.setBoost(10.0F); doc.add(displayNameField); doc.add( new Field( "createDate", DateUtil.format(user.getCreateDate(), "yyyy/MM/dd HH:mm:ss"), Store.YES, Index.NOT_ANALYZED)); doc.add( new Field( "date", DateUtil.format(user.getLastLoginDate(), "yyyy/MM/dd HH:mm:ss"), Store.YES, Index.NOT_ANALYZED)); UserProfile profile = getUserService().getUserProfileById(user.getId()); if (profile != null && StringUtils.isNotEmpty(profile.getFirstName())) { Field nameField = new Field("name", profile.getFirstName(), Store.YES, Index.ANALYZED); nameField.setBoost(10.0F); doc.add(nameField); doc.add( new Field( "sortName", profile.getFirstName().toLowerCase(), Store.YES, Index.NOT_ANALYZED)); } else { Field nameField = new Field("name", user.getName(), Store.YES, Index.ANALYZED); nameField.setBoost(10.0F); doc.add(nameField); doc.add(new Field("sortName", user.getName().toLowerCase(), Store.YES, Index.NOT_ANALYZED)); } if (user.getPhotoUrl() != null) { doc.add(new Field("photoUrl", user.getPhotoUrl(), Store.YES, Index.NO)); } if (profile != null) { if (StringUtils.isNotEmpty(profile.getHeadline())) { doc.add(new Field("headline", profile.getHeadline(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getAboutMe())) { doc.add(new Field("aboutMe", profile.getAboutMe(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getHometown())) { doc.add(new Field("hometown", profile.getHometown(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getInterests())) { doc.add(new Field("interests", profile.getInterests(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getLikeToMeet())) { doc.add(new Field("likeToMeet", profile.getLikeToMeet(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getOccupation())) { doc.add(new Field("occupation", profile.getOccupation(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getReligion())) { doc.add(new Field("religion", profile.getReligion(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getMovies())) { doc.add(new Field("movie", profile.getMovies(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getMusic())) { doc.add(new Field("music", profile.getMusic(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getTelevision())) { doc.add(new Field("television", profile.getTelevision(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getBooks())) { doc.add(new Field("book", profile.getBooks(), Store.NO, Index.ANALYZED)); } if (StringUtils.isNotEmpty(profile.getHeroes())) { doc.add(new Field("hero", profile.getHeroes(), Store.NO, Index.ANALYZED)); } } List<UserTag> tags = this.getUserService().getUserTags(user.getId(), _OBJECT_TYPE_USER); for (UserTag tag : tags) { if (StringUtils.isNotEmpty(tag.getTag())) { doc.add(new Field("tag", tag.getTag(), Store.NO, Index.ANALYZED)); } } return doc; } catch (Exception e) { return null; } }