def text_search(terms, opts = nil)
      clone.tap do |query|
        if terms
          criterion = { :$text => { :$search => terms } }
          criterion[:$text].merge!(opts) if opts
          query.selector = criterion
        end
      end
    end
def text_search(terms, opts = nil)
      clone.tap do |query|
        if terms
          criterion = { :$text => { :$search => terms } }
          criterion[:$text].merge!(opts) if opts
          query.selector = criterion
        end
      end
    end
Construct a text search selector.

 @example Construct a text search selector.
   selectable.text_search("testing")

 @example Construct a text search selector with options.
   selectable.text_search("testing", :$language => "fr")

 @param [ String, Symbol ] terms A string of terms that MongoDB parses
   and uses to query the text index.
 @param [ Hash ] opts Text search options. See MongoDB documentation
   for options.

 @return [ Selectable ] The cloned selectable.

 @since 2.2.0