public OIndexInternal<?> resolveAssociatedIndex(String indexName, OIndexManager indexManager) { if (resolvedIndex == null) { final OIndex<?> index = indexManager.getIndex(indexName); if (index != null) resolvedIndex = index.getInternal(); } return resolvedIndex; }
private void deleteNameCaseInsensitiveIndex(final ODatabaseDocumentTx db) { log.info("Deleting old case-insensitive name index on component"); OIndexManager indexManager = db.getMetadata().getIndexManager(); OIndex nameCaseInsensitiveIndex = indexManager.getIndex(I_NAME_CASE_INSENSITIVE); if (nameCaseInsensitiveIndex != null) { indexManager.dropIndex(I_NAME_CASE_INSENSITIVE); } } }
public Collection<? extends OIndex<?>> call(ODatabaseDocumentInternal database) { return indexManagerOne.getIndexes(); } });
private void dropClassIndexes(ODatabaseDocumentInternal database, final OClass cls) { final OIndexManager indexManager = database.getMetadata().getIndexManager(); for (final OIndex<?> index : indexManager.getClassIndexes(cls.getName())) indexManager.dropIndex(index.getName()); }
@Override protected OIndex<?> loadInstance() { OClass oClass = classModel!=null?classModel.getObject():null; OIndexManager indexManager = OrientDbWebSession.get().getDatabase().getMetadata().getIndexManager(); return oClass!=null? indexManager.getClassIndex(oClass.getName(), indexName):indexManager.getIndex(indexName); }
/** * Execute the REMOVE INDEX. */ public Object execute(final Map<Object, Object> iArgs) { if (name == null) throw new OCommandExecutionException("Cannot execute the command because it has not been parsed yet"); final ODatabaseDocument database = getDatabase(); if (name.equals("*")) { long totalIndexed = 0; for (OIndex<?> idx : database.getMetadata().getIndexManager().getIndexes()) { if (idx.isAutomatic()) totalIndexed += idx.rebuild(); } return totalIndexed; } else { final OIndex<?> idx = database.getMetadata().getIndexManager().getIndex(name); if (idx == null) throw new OCommandExecutionException("Index '" + name + "' not found"); if (!idx.isAutomatic()) throw new OCommandExecutionException("Cannot rebuild index '" + name + "' because it's manual and there aren't indications of what to index"); return idx.rebuild(); } }
indexManager.reload(); listener.onMessage("\n- Index '" + indexName + "'..."); indexManager.dropIndex(indexName); indexesToRebuild.remove(indexName); List<Integer> clusterIds = new ArrayList<>(); OGlobalConfiguration.INDEX_IGNORE_NULL_VALUES_DEFAULT.setValue(indexDefinition.isNullValuesIgnored()); final OIndex index = indexManager .createIndex(indexName, indexType, indexDefinition, clusterIdsToIndex, null, metadata, indexAlgorithm); OGlobalConfiguration.INDEX_IGNORE_NULL_VALUES_DEFAULT.setValue(oldValue); if (blueprintsIndexClass != null) { ODocument configuration = index.getConfiguration(); configuration.field("blueprintsIndexClass", blueprintsIndexClass); indexManager.save();
@Override public OResultSet executeDDL(OCommandContext ctx) { OInternalResultSet rs = new OInternalResultSet(); ODatabase db = ctx.getDatabase(); OIndexManager idxMgr = db.getMetadata().getIndexManager(); if (all) { for (OIndex<?> idx : idxMgr.getIndexes()) { db.getMetadata().getIndexManager().dropIndex(idx.getName()); OResultInternal result = new OResultInternal(); result.setProperty("operation", "drop index"); result.setProperty("clusterName", idx.getName()); rs.add(result); } } else { if (!idxMgr.existsIndex(name.getValue()) && !ifExists) { throw new OCommandExecutionException("Index not found: " + name.getValue()); } idxMgr.dropIndex(name.getValue()); OResultInternal result = new OResultInternal(); result.setProperty("operation", "drop index"); result.setProperty("indexName", name.getValue()); rs.add(result); } return rs; }
database.getMetadata().getIndexManager().reload(); for (OIndex<?> index : database.getMetadata().getIndexManager().getIndexes()) { if (index.isAutomatic()) indexesToRebuild.add(index.getName());
/** * Execute the REMOVE INDEX. */ public Object execute(final Map<Object, Object> iArgs) { if (name == null) throw new OCommandExecutionException("Cannot execute the command because it has not been parsed yet"); if (name.equals("*")) { long totalIndexed = 0; for (OIndex<?> idx : getDatabase().getMetadata().getIndexManager().getIndexes()) { getDatabase().getMetadata().getIndexManager().dropIndex(idx.getName()); totalIndexed++; } return totalIndexed; } else getDatabase().getMetadata().getIndexManager().dropIndex(name); return 1; }
database.command("truncate cluster `" + name + "`").close(); for (OIndex existingIndex : database.getMetadata().getIndexManager().getIndexes()) { if (existingIndex.getClusters().contains(name)) { indexesToRebuild.add(existingIndex.getName()); database.getMetadata().getIndexManager().getIndex(indexName).rebuild(new OProgressListener() { private long last = 0; database.getMetadata().getIndexManager().create();
public void rebuildIndexes() { database.getMetadata().getIndexManager().reload(); OIndexManager indexManager = database.getMetadata().getIndexManager(); listener.onMessage("\nRebuild of stale indexes..."); for (String indexName : indexesToRebuild) { if (indexManager.getIndex(indexName) == null) { listener.onMessage("\nIndex " + indexName + " is skipped because it is absent in imported DB."); continue; } listener.onMessage("\nStart rebuild index " + indexName); database.command("rebuild index " + indexName).close(); listener.onMessage("\nRebuild of index " + indexName + " is completed."); } listener.onMessage("\nStale indexes were rebuilt..."); }
/** * Drops named index. Safe to call even if index not exist. * * @param db database object * @param indexName index name * @see com.orientechnologies.orient.core.index.OIndexManagerProxy#dropIndex(java.lang.String) */ @SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT") public static void dropIndex(final ODatabaseObject db, final String indexName) { // Separated to overcome findbugs false positive "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT" for dropIndex method. db.getMetadata().getIndexManager().dropIndex(indexName); }
private long importRecords() throws Exception { long total = 0; database.getMetadata().getIndexManager().dropIndex(EXPORT_IMPORT_MAP_NAME); OIndexFactory factory = OIndexes .getFactory(OClass.INDEX_TYPE.DICTIONARY_HASH_INDEX.toString(), OHashIndexFactory.HASH_INDEX_ALGORITHM); .createIndex(EXPORT_IMPORT_MAP_NAME, OClass.INDEX_TYPE.DICTIONARY_HASH_INDEX.toString(), new OSimpleKeyIndexDefinition(factory.getLastVersion(), OType.LINK), null, null, null);
public Set<String> getIndexedKeys(String className) { Iterator<OIndex<?>> indexes = getIndexManager().getClassIndexes(className).iterator(); HashSet<String> indexedKeys = new HashSet<>(); indexes.forEachRemaining(index -> { index.getDefinition().getFields().forEach(indexedKeys::add); }); return indexedKeys; }
public OIndex<?> createIndex(final String name, String type, final OProgressListener progressListener, ODocument metadata, String algorithm, final String... fields) { if (type == null) throw new IllegalArgumentException("Index type is null"); type = type.toUpperCase(Locale.ENGLISH); if (fields.length == 0) { throw new OIndexException("List of fields to index cannot be empty."); } final String localName = this.name; final int[] localPolymorphicClusterIds = polymorphicClusterIds; for (final String fieldToIndex : fields) { final String fieldName = decodeClassName(OIndexDefinitionFactory.extractFieldName(fieldToIndex)); if (!fieldName.equals("@rid") && !existsProperty(fieldName)) throw new OIndexException( "Index with name '" + name + "' cannot be created on class '" + localName + "' because the field '" + fieldName + "' is absent in class definition"); } final OIndexDefinition indexDefinition = OIndexDefinitionFactory .createIndexDefinition(this, Arrays.asList(fields), extractFieldTypes(fields), null, type, algorithm); return getDatabase().getMetadata().getIndexManager() .createIndex(name, type, indexDefinition, localPolymorphicClusterIds, progressListener, metadata, algorithm); }
OMetadata metadata = database.getMetadata(); if (!approximate) { metadata.getIndexManager().reload(); final Set<OIndex<?>> classIndexes = metadata.getIndexManager().getClassIndexes(table);
Object execute(OCommandContext ctx) { final ODatabase database = ctx.getDatabase(); if (database.getMetadata().getIndexManager().existsIndex(name.getValue())) { if (ifNotExists) { return null; idx = database.getMetadata().getIndexManager().createIndex(name.getValue(), type.getStringValue(), new OSimpleKeyIndexDefinition(keyTypes, collatesList, factory.getLastVersion()), null, null, metadataDoc, engine); } else if (keyTypes != null && keyTypes.length == 0 && "LUCENE_CROSS_CLASS".equalsIgnoreCase(engine)) { factory.getLastVersion()); idx = database.getMetadata().getIndexManager() .createIndex(name.getValue(), type.getStringValue(), keyDef, null, null, metadataDoc, engine);
@Override public OIndex<?> getClassIndex(String iName) { return getDatabase().getMetadata().getIndexManager().getClassIndex(this.name, iName); }
@Override public void afterRegistration(final ODatabaseObject db, final SchemeDescriptor descriptor, final CompositeLuceneIndex annotation) { db.getMetadata().getIndexManager().reload(); final String name = Strings.emptyToNull(annotation.name().trim()); Preconditions.checkArgument(name != null, "Index name required"); final String model = descriptor.schemeClass; final OClass clazz = db.getMetadata().getSchema().getClass(model); final OIndex<?> classIndex = clazz.getClassIndex(name); final OClass.INDEX_TYPE type = OClass.INDEX_TYPE.FULLTEXT; final String[] fields = annotation.fields(); if (!descriptor.initialRegistration && classIndex != null) { final IndexValidationSupport support = new IndexValidationSupport(classIndex, logger); support.checkTypeCompatible(type); support.checkFieldsCompatible(fields); final boolean correct = support .isIndexSigns(classIndex.getConfiguration().field("algorithm"), getAnalyzer(classIndex)) .matchRequiredSigns(type, OLuceneIndexFactory.LUCENE_ALGORITHM, annotation.analyzer().getName()); if (!correct) { support.dropIndex(db); } else { // index ok return; } } final ODocument metadata = createMetadata(annotation); SchemeUtils.command(db, "create index %s on %s (%s) %s engine %s metadata %s", name, model, Joiner.on(',').join(fields), type.name(), OLuceneIndexFactory.LUCENE_ALGORITHM, metadata.toJSON()); logger.info("Lucene fulltext index '{}' ({} [{}]) created", name, model, Joiner.on(',').join(fields)); }