public RequestValidator() { ElasticSearchAdmin esa = Framework.getService(ElasticSearchAdmin.class); indexTypes = new HashMap<>(); for (String name : esa.getRepositoryNames()) { List<String> types = new ArrayList<>(); types.add(ElasticSearchConstants.DOC_TYPE); indexTypes.put(esa.getIndexNameForRepository(name), types); } }
protected String getIndexName(CoreSession session, Map<String, Serializable> properties) { if (properties.containsKey(INDEX_OPTION)) { return (String) properties.get(INDEX_OPTION); } ElasticSearchAdmin esa = Framework.getService(ElasticSearchAdmin.class); return esa.getWriteIndexName(esa.getIndexNameForRepository(session.getRepositoryName())); }
protected String[] getIndexNames() { ElasticSearchAdmin esa = Framework.getService(ElasticSearchAdmin.class); List<String> repositoryNames = Framework.getService(ElasticSearchAdmin.class).getRepositoryNames(); String indices[] = new String[repositoryNames.size()]; int i = 0; for (String repo : repositoryNames) { indices[i++] = esa.getIndexNameForRepository(repo); } return indices; }
protected void updateAliasIfNeeded(BulkCommand command) { Boolean updateAlias = command.getParam(INDEX_UPDATE_ALIAS_PARAM); if (Boolean.TRUE.equals(updateAlias)) { log.warn("Update alias requested by command: " + command.getId()); ElasticSearchAdmin esa = Framework.getService(ElasticSearchAdmin.class); esa.syncSearchAndWriteAlias(esa.getIndexNameForRepository(command.getRepository())); } }
@Override protected void doWork() { ElasticSearchIndexing esi = Framework.getService(ElasticSearchIndexing.class); openSystemSession(); int bucketSize = Math.min(documentCount, getBucketSize()); List<String> ids = new ArrayList<>(bucketSize); for (DocumentLocation doc : getDocuments()) { ids.add(doc.getIdRef().value); if ((ids.size() % bucketSize) == 0) { esi.indexNonRecursive(getIndexingCommands(session, ids)); ids.clear(); TransactionHelper.commitOrRollbackTransaction(); TransactionHelper.startTransaction(); } } if (!ids.isEmpty()) { esi.indexNonRecursive(getIndexingCommands(session, ids)); ids.clear(); } if (syncAlias) { log.warn(String.format("Re-indexing job: %s completed.", getSchedulePath().getParentPath())); ElasticSearchAdmin esa = Framework.getService(ElasticSearchAdmin.class); esa.syncSearchAndWriteAlias(esa.getIndexNameForRepository(repositoryName)); } }
protected static MoreLikeThisQueryBuilder.Item[] getItems(Object value) { RepositoryManager rm = Framework.getService(RepositoryManager.class); String repo = rm.getDefaultRepository().getName(); ElasticSearchAdmin esa = Framework.getService(ElasticSearchAdmin.class); String esIndex = esa.getIndexNameForRepository(repo); String[] values; if (value instanceof Object[]) { values = (String[]) value; } else { values = new String[] { (String) value }; } MoreLikeThisQueryBuilder.Item[] ret = new MoreLikeThisQueryBuilder.Item[values.length]; for (int i = 0; i < values.length; i++) { ret[i] = new MoreLikeThisQueryBuilder.Item(esIndex, DOC_TYPE, values[i]); } return ret; }