@Override
    public @NonNull MirroredIndex getIndex(@NonNull String indexName) {
        MirroredIndex index = null;
        WeakReference<Object> existingIndex = indices.get(indexName);
        if (existingIndex != null) {
            index = (MirroredIndex)existingIndex.get();
        }
        if (index == null) {
            index = new MirroredIndex(this, indexName);
            indices.put(indexName, new WeakReference<Object>(index));
        }
        return index;
    }
@Override
    public @NonNull MirroredIndex getIndex(@NonNull String indexName) {
        MirroredIndex index = null;
        WeakReference<Object> existingIndex = indices.get(indexName);
        if (existingIndex != null) {
            index = (MirroredIndex)existingIndex.get();
        }
        if (index == null) {
            index = new MirroredIndex(this, indexName);
            indices.put(indexName, new WeakReference<Object>(index));
        }
        return index;
    }
@ Override public @ NonNull MirroredIndex getIndex ( @ NonNull String indexName ) { MirroredIndex index = null ; WeakReference < Object > existingIndex = indices . get ( indexName ) ; if ( existingIndex != null ) { index = ( MirroredIndex ) existingIndex . get ( ) ; } if ( index == null ) { index = new MirroredIndex ( this , indexName ) ; indices . put ( indexName , new WeakReference < Object > ( index ) ) ; } return index ; }
Obtain a mirrored index. Although this will always be an instance of {@link MirroredIndex}, mirroring is
deactivated by default.

@param indexName The name of the index.
@return A proxy to the specified index.

**Warning:** The name should not overlap with any `OfflineIndex`. See {@link #getOfflineIndex(String)}.
Obtain a mirrored index . Although this will always be an instance of { @link MirroredIndex } mirroring is deactivated by default .