Unless, perhaps the default keyword argument values that are currently set in the search() method could be initialized as the default _search_defaults dict in the first place.