SOQLで条件句にロングテキストエリア型を指定した場合にエラー

イシュー

  • SOQLでは、ロングテキスト型の条件検索ができない。

    EXCEPTION_THROWN|[136]|System.QueryException: field 'Description' can not be filtered in query call

  • さて、どうすっか、、

参考

SOSL

  public main(){
    String value = 'search word';
    List<Case> cases = [
      SELECT Id, Name 
      FROM Case
      WEHRE Id IN :searchIds(value)
    ];    

  }

  private Set<Id> searchIds(String searchWord) {

    // Description を SOSL検索
    String findQuery = 'FIND \'' + searchWord + '\' IN ALL FIELDS RETURNING Case';
    List<List<sobject>> results = search.query(findQuery);
    
    Set<Id> ids = new Set<Id>();
    for(List<sobject> result: results){
      for(sobject obj : result){
        ids.add(obj.Id);
      }
    }
    
    return ids; 
  }