@Override
  public int getSizeEstimate(Object key, int operator, int matchLevel)
      throws TypeMismatchException {
    // Get approx size;
    int size = 0;
    long start = updateIndexUseStats(false);
    try {
      switch (operator) {
        case OQLLexerTokenTypes.TOK_EQ: {
          key = TypeUtils.indexKeyFor(key);
          size = entriesSet.size(key);
        }
          break;
        case OQLLexerTokenTypes.TOK_NE_ALT:
        case OQLLexerTokenTypes.TOK_NE:
          size = region.size();
          key = TypeUtils.indexKeyFor(key);
          size = entriesSet.size(key);
          break;
      }
    } finally {
      updateIndexUseEndStats(start, false);
    }
    return size;
  }
This evaluates the left and right side of a EQUI-JOIN where condition for which this Index was
used. Like, if condition is "p.ID = e.ID", {@link IndexInfo} will contain Left as p.ID, Right
as e.ID and operator as TOK_EQ. This method will evaluate p.ID OR e.ID based on if it is inner
or outer RegionEntry, and verify the p.ID = e.ID.

@return true if entry value and index value are consistent.
geode-core/src/main/java/org/apache/geode/cache/query/internal/index/HashIndex.java