Search API Support

This is not yet ready to be merged.