Skip to content

COUNT Query - 1.0.0-RC4 #639

@SylvainAssemat

Description

@SylvainAssemat

Hello

I am still improving an issue about the count() query.

It seems a class cast exception here : return (long) info.get("num_docs");

> FT.INFO "fr.gms.legacy.api.redis.model.catalog.RDTaxTariffIdx"
returning :

> FT.INFO "fr.gms.legacy.api.redis.model.catalog.RDTaxTariffIdx"
1) "index_name"
2) "fr.gms.legacy.api.redis.model.catalog.RDTaxTariffIdx"
3) "index_options"
4) (empty list or set)
5) "index_definition"
6) 1) "key_type"
   2) "JSON"
   3) "prefixes"
   4) 1) "fr.gms.legacy.api.redis.model.catalog.RDTaxTariff:"
   5) "default_score"
   6) "1"
....
....
9) "num_docs"
10) "21"

java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Long (java.lang.String and java.lang.Long are in module java.base of loader 'bootstrap')
	at com.redis.om.spring.search.stream.SearchStreamImpl.count(SearchStreamImpl.java:499)
SearchStreamImpl.java:499
	at fr.gms.legacy.api.redis.service.catalog.RDTaxTariffService.count(RDTaxTariffService.java:94)
  @Override
  public long count() {
    if (!rootNode.toString().isBlank()) {
      // Trim any leading/trailing spaces from the query to avoid syntax errors with DIALECT
      String queryString = rootNode.toString().trim();
      Query query = new Query(queryString);
      query.limit(0, 0);
      query.dialect(dialect); // Use the configured dialect value
      SearchResult searchResult = search.search(query);
      resolvedStream = Stream.empty();

      return searchResult.getTotalResults();
    } else {
      var info = search.getInfo();
      return (long) info.get("num_docs");
    }
  }

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingv1.0.0

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions