indexing first letter of items to make an A-Z type glossary, using solr backed and search api
OK, it's a little late. But yes, you can index a glossary. I've build an A-Z-Filter in SOLR based on custom entity-fields like surname here http://www.autorenwelt.de/verzeichnis/menschen My filter based on the following description: https://drupal.org/node/2069005

I need only this functions to build a field in the SOLR index:

/**
 * Apachesolr index name for this module.
 *
 * Dynamically creates name as expected by Solr.
 */
function _MODULENAME_search_index_key($key) {
  $index = array(
    'name' =&gt; $key,
    'multiple' =&gt; FALSE,
    'index_type' =&gt; 'string',
  );
  return apachesolr_index_key($index);
}


/**
 * Implementation of hook_apachesolr_index_document_build()
 *
 * Alters what is sent to Solr in $document.
 */
function MODULENAME_apachesolr_index_document_build($document, $entity, $entity_type, $env_id) {
    $glossary_key = _MODULENAME_search_index_key('custom_glossary');
    // We want to index the first letter of the title for use in our glossary
    $key = strtoupper($entity-&gt;title[0]);
    // Build a custom glossary of profile2 entities
    if ('profile_main' == $entity-&gt;type) {
        $key = strtoupper($entity-&gt;field_profile_surname['und'][0]['safe_value'][0]);
    }

    $indexed = '0 - 9';
    switch ($key) {
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
            $indexed = 'A - E';
            break;
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
            $indexed = 'F - J';
            break;
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
            $indexed = 'K - O';
            break;
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
            $indexed = 'P - T';
            break;
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
            $indexed = 'U - Z';
            break;
    }
    $document-&gt;{$glossary_key} = $indexed;
}


And I use hook_facetapi_facet_info_alter to register this facet:

/**
 * Implementation of hook_facetapi_facet_info_alter().
 **/
function MODULENAME_facetapi_facet_info(array $searcher_info) {
    $facets = array();
    // Facets are usually associated with the type of content stored in the index.
    if (isset($searcher_info['types']['node'])) {
        $facets['ss_custom_glossary'] = array(
            'default widget' =&gt; 'links',
            'name' =&gt; 'ss_custom_glossary',
            'label' =&gt; t('A - Z Glossar'),
            'dependency plugins' =&gt; array('role'),
            'description' =&gt; t('Glossar basierend auf dem ersten Buchstaben des Node-Titles.'),
            'field' =&gt; 'ss_custom_glossary',
            'field_alias' =&gt; 'ss_custom_glossary',
            'weight' =&gt; -50
        );
    }

    return $facets;
}


Ciao
Ralf