CirrusSearch does a lot to make sure that the query submitted by the user parses to a valid query_string search. This mostly works but we keep finding funky queries that need escaping. Right now when the query string doesn't parse we get a "temporary search error" that we through back to the user. We should instead catch these errors, warn so we can find them and fix them, and then try using a more permissive query method. We don't use that method by default because it doesn't support a bunch of the syntax that our users expect. Not getting your syntax is better than getting an error.