How to search for meta_query LIKE or tax_query LIKE and grab these posts on search results?

Looking at WP_Tax_Query and WP_Meta_Query used by Wp_Query, they return their respective where clauses with an AND relation, and no hook or $args to change that behavior.

Furthermore, the tax_query is computed before the rest of the main query so that it’s included in the main query in term_taxonomy_id IN (...) form. Also the WP_Tax_Query doesn’t accept a LIKE operator (see doc)

You can see the final query in WP_Query->request

SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID
FROM wp_posts  
LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
INNER JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id )
WHERE 1=1
    AND ( wp_term_relationships.term_taxonomy_id IN (1))
    AND (  ( wp_postmeta.meta_key = 'city' AND wp_postmeta.meta_value LIKE '%Strip%' ) 
        OR  ( wp_postmeta.meta_key = 'state' AND wp_postmeta.meta_value LIKE '%Strip%' ) 
        OR  ( wp_postmeta.meta_key = 'salelease' AND wp_postmeta.meta_value LIKE '%Strip%' ) 
        OR ( wp_postmeta.meta_key = 'zip' AND wp_postmeta.meta_value LIKE '%Strip%' ) ) 
    AND wp_posts.post_type="post"
    AND ((wp_posts.post_status="publish"))
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC LIMIT 0, 10

The solution for your issue is to do your own request with $wpdb to get all posts ID that match your search value and then convert it to WP_Post objects array.

function search_posts($value)
{
    global $wpdb;
    $value="%".$wpdb->esc_like($value).'%';
    $sql = $wpdb->prepare("SELECT p.ID
        FROM {$wpdb->prefix}posts p
        LEFT JOIN {$wpdb->prefix}postmeta m ON m.post_id = p.ID
        LEFT JOIN {$wpdb->prefix}term_relationships r ON r.object_id = p.ID
        LEFT JOIN {$wpdb->prefix}term_taxonomy tt ON tt.term_taxonomy_id = r.term_taxonomy_id AND tt.taxonomy = 'type'
        LEFT JOIN {$wpdb->prefix}terms t ON t.term_id = tt.term_id
        WHERE p.post_status="publish" AND p.post_type="property"
            AND ((m.meta_key = 'city' AND m.meta_value LIKE %s) 
                OR (m.meta_key = 'state' AND m.meta_value LIKE %s) 
                OR (m.meta_key = 'salelease' AND m.meta_value LIKE %s) 
                OR (m.meta_key = 'zip' AND m.meta_value LIKE %s)
                OR (t.name LIKE %s))
        GROUP BY p.ID", $value, $value, $value, $value, $value);
    $ids = $wpdb->get_col($sql);
    if (is_array($ids) && count($ids) > 0)
        return array_map('get_post', $ids);
    else
        return []; // or whatever you like
}