code: @Deprecated
      public <T> List<T> findByIndex(String selectorJson, Class<T> classOfT, FindByIndexOptions
              options) {
          JsonObject selector = Helpers.getSelectorFromString(selectorJson);
          assertNotEmpty(options, "options");
          JsonObject body = getFindByIndexBody(selector, options);
          return query(body.toString(), classOfT).getDocs();
      }
docs: Find documents using an index
  <P>
  Example usage to return the name and year of movies starring
  Alec Guinness since 1960 with the results sorted by year descending:
  </P>
  <pre>
  {@code
  List <Movie> movies = db.findByIndex("\"selector\": {
  \"Movie_year\": {\"$gt\": 1960}, \"Person_name\": \"Alec Guinness\"
  }",
  Movie.class,
  new FindByIndexOptions()
  .sort(new IndexField("Movie_year", SortOrder.desc))
  .fields("Movie_name").fields("Movie_year"));
  }
  </pre>
  
  @param selectorJson String representation of a JSON object describing criteria used to
  select documents. For example:
  {@code "{ \"selector\": {<your data here>} }"}.
  @param options      {@link FindByIndexOptions query Index options}
  @param classOfT     The class of Java objects to be returned
  @param <T>          the type of the Java object to be returned
  @return List of classOfT objects
  @see <a
  href="https://console.bluemix.net/docs/services/Cloudant/api/cloudant_query.html#selector-syntax"
  target="_blank">selector syntax</a>
  @deprecated Use {@link #query(String, Class)} instead