Beispiel #1
0
  protected void reindexEntries(long companyId) throws PortalException {
    final ActionableDynamicQuery actionableDynamicQuery =
        BlogsEntryLocalServiceUtil.getActionableDynamicQuery();

    actionableDynamicQuery.setAddCriteriaMethod(
        new ActionableDynamicQuery.AddCriteriaMethod() {

          @Override
          public void addCriteria(DynamicQuery dynamicQuery) {
            Property displayDateProperty = PropertyFactoryUtil.forName("displayDate");

            dynamicQuery.add(displayDateProperty.lt(new Date()));

            Property statusProperty = PropertyFactoryUtil.forName("status");

            Integer[] statuses = {
              WorkflowConstants.STATUS_APPROVED, WorkflowConstants.STATUS_IN_TRASH
            };

            dynamicQuery.add(statusProperty.in(statuses));
          }
        });
    actionableDynamicQuery.setCompanyId(companyId);
    actionableDynamicQuery.setPerformActionMethod(
        new ActionableDynamicQuery.PerformActionMethod() {

          @Override
          public void performAction(Object object) throws PortalException {

            BlogsEntry entry = (BlogsEntry) object;

            Document document = getDocument(entry);

            actionableDynamicQuery.addDocument(document);
          }
        });
    actionableDynamicQuery.setSearchEngineId(getSearchEngineId());

    actionableDynamicQuery.performActions();
  }