another ruby idiom - no `set_` or `get_` method names.  You could remove the above line and reference a memoized instance of search_text in a method like 

```ruby
class SearchSqlBuilder

  private 

  def search_text
    @search_text ||= @terms.keep_if { |term| term.index(":") == nil }
  end
end
```

On first run it assigns the returned array to @search_text if it is nil (that's what `||=` does. Subsequent runs - it's cached.

Also placed this method in the private block since it's not used anywhere outside this class that I can tell.  Matter of fact I think there are probably several methods in here that could be made private.

Other ruby idiom - no single-letter variables. I will cut you.