@Override public boolean isAutomatic() { return indexDefinitions.get(0).isAutomatic(); } }
@Override public Document buildDocument(Object key, OIdentifiable value) { if (indexDefinition.isAutomatic()) { // builder.newBuild(index, key, value); return builder.build(indexDefinition, key, value, collectionFields, metadata); } else { return putInManualindex(key, value); } }
protected Query buildQuery(OIndexDefinition index, String query, ODocument metadata, Analyzer queryAnalyzer) throws ParseException { String[] fields; if (index.isAutomatic()) { fields = index.getFields().toArray(new String[index.getFields().size()]); } else { int length = index.getTypes().length; fields = new String[length]; for (int i = 0; i < length; i++) { fields[i] = "k" + i; } } Map<String, OType> types = new HashMap<>(); for (int i = 0; i < fields.length; i++) { String field = fields[i]; types.put(field, index.getTypes()[i]); } return getQuery(index, query, metadata, queryAnalyzer, fields, types); }
protected static Query getQueryParser(OIndexDefinition index, String key, Analyzer analyzer, Version version) throws ParseException { QueryParser queryParser; if ((key).startsWith("(")) { queryParser = new QueryParser(version, "", analyzer); } else { String[] fields = null; if (index.isAutomatic()) { fields = index.getFields().toArray(new String[index.getFields().size()]); } else { int length = index.getTypes().length; fields = new String[length]; for (int i = 0; i < length; i++) { fields[i] = "k" + i; } } queryParser = new MultiFieldQueryParser(version, fields, analyzer); } return queryParser.parse(key); }
Field.Index.NOT_ANALYZED_NO_NORMS)); int i = 0; if (index.isAutomatic()) { for (String f : index.getFields()) { if (!index.isAutomatic()) { commit();
private static RecordType getRecordType(OClass oClass) { RecordType type = new RecordType(oClass.getName()); for (OProperty oProperty : oClass.properties()) { OType oType = oProperty.getType(); Class javaType = oType.getDefaultJavaType(); if (oType == OType.LINK) { javaType = RecordId.class; } FieldDefinition field = new FieldDefinition(oProperty.getName(), javaType); field.withNotNull(oProperty.isNotNull()); for (OIndex oIndex : oProperty.getAllIndexes()) { OIndexDefinition def = oIndex.getDefinition(); if (def.isAutomatic() && def.getFields().size() == 1) { boolean unique = oIndex.getType().equalsIgnoreCase(INDEX_TYPE.UNIQUE.name()); field.withIndexed(true).withUnique(unique); } } type.withField(field); } type.withStrict(oClass.isStrictMode()); OClass oSuperClass = oClass.getSuperClass(); if (oSuperClass != null) { type.withSuperType(getRecordType(oSuperClass)); } type.withAbstract(oClass.isAbstract()); return type; }
final OIndexDefinition indexDefinition = indexMetadata.getIndexDefinition(); final boolean automatic = indexDefinition != null && indexDefinition.isAutomatic();