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,
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
|
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.
|
Version |
getDefaultLuceneMatchVersion()
The Default Lucene Match Version for this IndexSchema
|
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.
|
Analyzer |
getQueryAnalyzer()
Returns the Analyzer used when searching this index
|
String |
getQueryParserDefaultOperator()
default operator ("AND" or "OR") for QueryParser
|
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 |
getSchemaName()
Gets the name of the schema as specified in the schema resource.
|
Similarity |
getSimilarity()
Returns the Similarity used for this index
|
SchemaField |
getUniqueKeyField()
Unique Key field specified in the schema file
|
IndexableField |
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
public IndexSchema(SolrConfig solrConfig, String name, InputSource is)
public SolrResourceLoader getResourceLoader()
public String getResourceName()
public String getSchemaName()
public Version getDefaultLuceneMatchVersion()
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 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.
public String getDefaultSearchFieldName()
QueryParsing.getDefaultField(IndexSchema, String)
public String getQueryParserDefaultOperator()
public SchemaField getUniqueKeyField()
public IndexableField 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)
public boolean isDynamicField(String 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)
public List<CopyField> getCopyFieldsList(String sourceField)
public boolean isCopyFieldTarget(SchemaField f)
Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.