protected void reindexArticles(long companyId) throws PortalException {
    final IndexableActionableDynamicQuery indexableActionableDynamicQuery;

    if (isIndexAllArticleVersions()) {
      indexableActionableDynamicQuery =
          _journalArticleLocalService.getIndexableActionableDynamicQuery();

      indexableActionableDynamicQuery.setPerformActionMethod(
          new ActionableDynamicQuery.PerformActionMethod<JournalArticle>() {

            @Override
            public void performAction(JournalArticle article) {
              try {
                Document document = getDocument(article);

                indexableActionableDynamicQuery.addDocuments(document);
              } catch (PortalException pe) {
                if (_log.isWarnEnabled()) {
                  _log.warn("Unable to index journal article " + article.getId(), pe);
                }
              }
            }
          });
    } else {
      indexableActionableDynamicQuery =
          _journalArticleResourceLocalService.getIndexableActionableDynamicQuery();

      indexableActionableDynamicQuery.setPerformActionMethod(
          new ActionableDynamicQuery.PerformActionMethod<JournalArticleResource>() {

            @Override
            public void performAction(JournalArticleResource articleResource) {

              JournalArticle latestIndexableArticle =
                  fetchLatestIndexableArticleVersion(articleResource.getResourcePrimKey());

              if (latestIndexableArticle == null) {
                return;
              }

              try {
                Document document = getDocument(latestIndexableArticle);

                indexableActionableDynamicQuery.addDocuments(document);
              } catch (PortalException pe) {
                if (_log.isWarnEnabled()) {
                  _log.warn(
                      "Unable to index journal article " + latestIndexableArticle.getId(), pe);
                }
              }
            }
          });
    }

    indexableActionableDynamicQuery.setCompanyId(companyId);
    indexableActionableDynamicQuery.setSearchEngineId(getSearchEngineId());

    indexableActionableDynamicQuery.performActions();
  }