Package org.apache.solr.schema
Class ManagedIndexSchemaFactory
- java.lang.Object
-
- org.apache.solr.schema.IndexSchemaFactory
-
- org.apache.solr.schema.ManagedIndexSchemaFactory
-
- All Implemented Interfaces:
NamedListInitializedPlugin
,SolrCoreAware
public class ManagedIndexSchemaFactory extends IndexSchemaFactory implements SolrCoreAware
Factory for ManagedIndexSchema
-
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_MANAGED_SCHEMA_RESOURCE_NAME
static String
MANAGED_SCHEMA_RESOURCE_NAME
static String
UPGRADED_SCHEMA_EXTENSION
-
Constructor Summary
Constructors Constructor Description ManagedIndexSchemaFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ManagedIndexSchema
create(String resourceName, SolrConfig config)
First, try to locate the managed schema file named in the managedSchemaResourceName param.SolrConfig
getConfig()
String
getManagedSchemaResourceName()
SolrResourceLoader
getResourceLoader()
ManagedIndexSchema
getSchema()
String
getSchemaResourceName(String cdResourceName)
Returns the resource (file) name that will be used for the schema itself.Object
getSchemaUpdateLock()
void
inform(SolrCore core)
void
init(NamedList args)
boolean
isMutable()
void
setSchema(ManagedIndexSchema schema)
-
Methods inherited from class org.apache.solr.schema.IndexSchemaFactory
buildIndexSchema, newIndexSchemaFactory
-
-
-
-
Field Detail
-
UPGRADED_SCHEMA_EXTENSION
public static final String UPGRADED_SCHEMA_EXTENSION
- See Also:
- Constant Field Values
-
DEFAULT_MANAGED_SCHEMA_RESOURCE_NAME
public static final String DEFAULT_MANAGED_SCHEMA_RESOURCE_NAME
- See Also:
- Constant Field Values
-
MANAGED_SCHEMA_RESOURCE_NAME
public static final String MANAGED_SCHEMA_RESOURCE_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
getManagedSchemaResourceName
public String getManagedSchemaResourceName()
-
getResourceLoader
public SolrResourceLoader getResourceLoader()
-
init
public void init(NamedList args)
- Specified by:
init
in interfaceNamedListInitializedPlugin
-
getSchemaResourceName
public String getSchemaResourceName(String cdResourceName)
Description copied from class:IndexSchemaFactory
Returns the resource (file) name that will be used for the schema itself. The answer may be a guess. Do not pass the result of this toIndexSchemaFactory.create(String, SolrConfig)
. The input is the name coming from theCoreDescriptor
which acts as a default or asked-for name.- Overrides:
getSchemaResourceName
in classIndexSchemaFactory
-
create
public ManagedIndexSchema create(String resourceName, SolrConfig config)
First, try to locate the managed schema file named in the managedSchemaResourceName param. If the managed schema file exists and is accessible, it is used to instantiate an IndexSchema. If the managed schema file can't be found, the resource named by the resourceName parameter is used to instantiate an IndexSchema. Once the IndexSchema is instantiated, if the managed schema file does not exist, the instantiated IndexSchema is persisted to the managed schema file named in the managedSchemaResourceName param, in the directory given bySolrResourceLoader.getConfigDir()
, or if configs are in ZooKeeper, underZkSolrResourceLoader.getConfigSetZkPath()
. After the managed schema file is persisted, the original schema file is renamed by appending the extension named inUPGRADED_SCHEMA_EXTENSION
.- Overrides:
create
in classIndexSchemaFactory
-
getSchemaUpdateLock
public Object getSchemaUpdateLock()
-
inform
public void inform(SolrCore core)
- Specified by:
inform
in interfaceSolrCoreAware
-
getSchema
public ManagedIndexSchema getSchema()
-
setSchema
public void setSchema(ManagedIndexSchema schema)
-
isMutable
public boolean isMutable()
-
getConfig
public SolrConfig getConfig()
-
-