'Generate and merge the full index specs.'

@classmethod
def _build_index_specs(cls, meta_indexes):

    geo_indices = cls._geo_indices()
    unique_indices = cls._unique_with_indexes()
    index_specs = [cls._build_index_spec(spec) for spec in meta_indexes]
    def merge_index_specs(index_specs, indices):
        'Helper    method    for    merging    index    specs.'
        if (not indices):
            return index_specs
        spec_fields = {tuple(index['fields']): index for index in index_specs}
        for new_index in indices:
            candidate = spec_fields.get(tuple(new_index['fields']))
            if (candidate is None):
                index_specs.append(new_index)
            else:
                candidate.update(new_index)
        return index_specs
    index_specs = merge_index_specs(index_specs, geo_indices)
    index_specs = merge_index_specs(index_specs, unique_indices)
    return index_specs
