public final class IndexSchema extends Object
IndexSchema
contains information about the valid fields in an index
and the types of those fields.Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_SCHEMA_FILE |
static String |
LUCENE_MATCH_VERSION_PARAM |
Constructor and Description |
---|
IndexSchema(SolrConfig solrConfig,
String name)
Deprecated.
Use
IndexSchema(SolrConfig, String, InputSource) instead. |
IndexSchema(SolrConfig solrConfig,
String name,
InputSource is)
Constructs a schema using the specified resource name and stream.
|
Modifier and Type | Method and Description |
---|---|
Analyzer |
getAnalyzer()
Returns the Analyzer used when indexing documents for this index
This Analyzer is field (and dynamic field) name aware, and delegates to
a field specific Analyzer based on the field type.
|
SchemaField[] |
getCopyFields(String sourceField)
Deprecated.
Use
getCopyFieldsList(String) instead. |
List<CopyField> |
getCopyFieldsList(String sourceField)
Get all copy fields for a specified source field, both static
and dynamic ones.
|
SchemaField[] |
getCopySources(String destField)
Get all copy fields, both the static and the dynamic ones.
|
String |
getDefaultSearchFieldName()
Name of the default search field specified in the schema file
|
SchemaField[] |
getDynamicFieldPrototypes() |
FieldType |
getDynamicFieldType(String fieldName)
Returns the FieldType of the best matching dynamic field for
the specified field name
|
String |
getDynamicPattern(String fieldName) |
SchemaField |
getField(String fieldName)
Returns the SchemaField that should be used for the specified field name
|
SchemaField |
getFieldOrNull(String fieldName)
Returns the SchemaField that should be used for the specified field name, or
null if none exists.
|
Map<String,SchemaField> |
getFields()
Provides direct access to the Map containing all explicit
(ie: non-dynamic) fields in the index, keyed on field name.
|
List<SchemaField> |
getFieldsWithDefaultValue()
Provides direct access to the List containing all fields with a default value
|
FieldType |
getFieldType(String fieldName)
Returns the FieldType for the specified field name.
|
FieldType |
getFieldTypeByName(String fieldTypeName)
Given the name of a
FieldType (not to be confused with getFieldType(String) which
takes in the name of a field), return the FieldType . |
FieldType |
getFieldTypeNoEx(String fieldName)
Returns the FieldType for the specified field name.
|
Map<String,FieldType> |
getFieldTypes()
Provides direct access to the Map containing all Field Types
in the index, keyed on field type name.
|
InputStream |
getInputStream()
Deprecated.
Use
getSolrConfig() and open a resource input stream
for getResourceName() instead. |
String |
getName()
Deprecated.
Use
getSchemaName() instead. |
Analyzer |
getQueryAnalyzer()
Returns the Analyzer used when searching this index
This Analyzer is field (and dynamic field) name aware, and delegates to
a field specific Analyzer based on the field type.
|
String |
getQueryParserDefaultOperator()
Deprecated.
use getSolrQueryParser().getDefaultOperator()
|
Collection<SchemaField> |
getRequiredFields()
Provides direct access to the List containing all required fields.
|
SolrResourceLoader |
getResourceLoader() |
String |
getResourceName()
Gets the name of the resource used to instantiate this schema.
|
String |
getSchemaFile()
Deprecated.
Use
getResourceName() instead. |
String |
getSchemaName()
Gets the name of the schema as specified in the schema resource.
|
Similarity |
getSimilarity()
Returns the Similarity used for this index
|
SimilarityFactory |
getSimilarityFactory()
Returns the SimilarityFactory used for this index
|
SolrConfig |
getSolrConfig()
Deprecated.
-- get access to SolrConfig some other way...
|
SolrQueryParser |
getSolrQueryParser(String defaultField)
Deprecated.
|
SchemaField |
getUniqueKeyField()
Unique Key field specified in the schema file
|
Fieldable |
getUniqueKeyField(Document doc)
The raw (field type encoded) value of the Unique Key field for
the specified Document
|
boolean |
hasExplicitField(String fieldName)
Does the schema have the specified field defined explicitly, i.e.
|
boolean |
isCopyFieldTarget(SchemaField f)
Check if a field is used as the destination of a copyField operation
|
boolean |
isDynamicField(String fieldName)
Is the specified field dynamic or not.
|
String |
printableUniqueKey(Document doc)
The printable value of the Unique Key field for
the specified Document
|
void |
refreshAnalyzers()
This will re-create the Analyzers.
|
void |
registerCopyField(String source,
String dest) |
void |
registerCopyField(String source,
String dest,
int maxChars)
NOTE: this function is not thread safe.
|
void |
registerDynamicField(SchemaField... f)
Register one or more new Dynamic Field with the Schema.
|
public static final String DEFAULT_SCHEMA_FILE
public static final String LUCENE_MATCH_VERSION_PARAM
@Deprecated public IndexSchema(SolrConfig solrConfig, String name)
IndexSchema(SolrConfig, String, InputSource)
instead.public IndexSchema(SolrConfig solrConfig, String name, InputSource is)
@Deprecated public SolrConfig getSolrConfig()
public SolrResourceLoader getResourceLoader()
public String getResourceName()
public String getSchemaName()
@Deprecated public InputStream getInputStream()
@Deprecated public String getSchemaFile()
getResourceName()
instead.@Deprecated public String getName()
getSchemaName()
instead.public Map<String,SchemaField> getFields()
Modifying this Map (or any item in it) will affect the real schema
NOTE: this function is not thread safe. However, it is safe to use within the standard
inform( SolrCore core )
function for SolrCoreAware
classes.
Outside inform
, this could potentially throw a ConcurrentModificationException
public Map<String,FieldType> getFieldTypes()
Modifying this Map (or any item in it) will affect the real schema. However if you
make any modifications, be sure to call refreshAnalyzers()
to
update the Analyzers for the registered fields.
NOTE: this function is not thread safe. However, it is safe to use within the standard
inform( SolrCore core )
function for SolrCoreAware
classes.
Outside inform
, this could potentially throw a ConcurrentModificationException
public List<SchemaField> getFieldsWithDefaultValue()
public Collection<SchemaField> getRequiredFields()
public Similarity getSimilarity()
public SimilarityFactory getSimilarityFactory()
public Analyzer getAnalyzer()
This Analyzer is field (and dynamic field) name aware, and delegates to a field specific Analyzer based on the field type.
public Analyzer getQueryAnalyzer()
This Analyzer is field (and dynamic field) name aware, and delegates to a field specific Analyzer based on the field type.
@Deprecated public SolrQueryParser getSolrQueryParser(String defaultField)
defaultField
- if non-null overrides the schema defaultpublic String getDefaultSearchFieldName()
@Deprecated public String getQueryParserDefaultOperator()
public SchemaField getUniqueKeyField()
public Fieldable getUniqueKeyField(Document doc)
printableUniqueKey(org.apache.lucene.document.Document)
public String printableUniqueKey(Document doc)
public void refreshAnalyzers()
getFields()
, this function is required
to synch the internally cached field analyzers.public void registerDynamicField(SchemaField... f)
f
- The SchemaField
public void registerCopyField(String source, String dest, int maxChars)
NOTE: this function is not thread safe. However, it is safe to use within the standard
inform( SolrCore core )
function for SolrCoreAware
classes.
Outside inform
, this could potentially throw a ConcurrentModificationException
SolrCoreAware
public SchemaField[] getDynamicFieldPrototypes()
public boolean hasExplicitField(String fieldName)
fieldName
- public boolean isDynamicField(String fieldName)
fieldName
- public SchemaField getFieldOrNull(String fieldName)
fieldName
- may be an explicitly defined field or a name that
matches a dynamic field.SchemaField
getFieldType(java.lang.String)
,
getField(String)
public SchemaField getField(String fieldName)
fieldName
- may be an explicitly defined field or a name that
matches a dynamic field.SchemaField
SolrException
- if no such field existsgetFieldType(java.lang.String)
,
getFieldOrNull(String)
public FieldType getFieldType(String fieldName)
This method exists because it can be more efficient then
getField(java.lang.String)
for dynamic fields if a full SchemaField isn't needed.
fieldName
- may be an explicitly created field, or a name that
excercies a dynamic field.SolrException
- if no such field existsgetField(String)
,
getFieldTypeNoEx(java.lang.String)
public FieldType getFieldTypeByName(String fieldTypeName)
FieldType
(not to be confused with getFieldType(String)
which
takes in the name of a field), return the FieldType
.public FieldType getFieldTypeNoEx(String fieldName)
This method exists because it can be more efficient then
getField(java.lang.String)
for dynamic fields if a full SchemaField isn't needed.
fieldName
- may be an explicitly created field, or a name that
excercies a dynamic field.getField(String)
,
getFieldTypeNoEx(java.lang.String)
public FieldType getDynamicFieldType(String fieldName)
fieldName
- may be an explicitly created field, or a name that
excercies a dynamic field.SolrException
- if no such field existsgetField(String)
,
getFieldTypeNoEx(java.lang.String)
public SchemaField[] getCopySources(String destField)
destField
- @Deprecated public SchemaField[] getCopyFields(String sourceField)
getCopyFieldsList(String)
instead.sourceField
- public List<CopyField> getCopyFieldsList(String sourceField)
sourceField
- public boolean isCopyFieldTarget(SchemaField f)