eZ Find - Authentication, Design ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :Author: Kåre Køhler Høvik :Revision: :Date: Introduction ============ Description ----------- All content indexed in eZ Find today is index as strings. This limits both the quality of the search result, and possibilities of the search. To enhance the search functionality, native datatypes should be used where possible. Design ====== Classes ------- ezfSolrDocumentFieldBase ^^^^^^^^^^^^^^^^^^^^^^^^ Default class defining functions needed to extract data needed for the indexing process. Implementation ============== ezfSolrDocumentFieldBase ------------------------ Default Document field class containing the required functions for accessing the data to index a document field. Functions: getData() Returns the data to index. Return type is a hash , format => . The solr document might specify a prefix which should be used for the field name. getCollectionData() Return collection list. Returns empty array if isCollection() is false. Return value array. isCollection() Returns true if is collection. Return value false. getFieldType() Returns the name of the field type from the SOLR schema. getFieldName( ) Returns the field name for a specified content class attribute. instance() Returns instance of ezfDocumentFieldBase or sub-class. Takes eZContentObjectAttribute as parameter. Loading ezfSolrDocumentFieldBase sub-class ------------------------------------------ Defining the field types are done 2 ways. * Simple types are defined in configuration files ( ini ). Example: [SolrIndexMap] Map[eztext]=text Map[ezinteger]=sint etc.. * Custom data types may extend the ezfSolrDocumentFieldBase class. This may be done to achive propper mapping of data to the Solr index. Loading ezfSolrDocumentFieldBase sub-classes should be ini based. An ini file will define custom eZContentObjectAttribute->attribute( 'data_type_string' ) to ezfSolrDocumentFieldBase sub-class mapping. ezfSolrDocumentFieldBase sub- classes will be loaded using the eZExtension::findExtensionType() function to load the requested plugin. .. Local Variables: mode: rst fill-column: 79 End: vim: et syn=rst tw=79 nocin