I am also seeing shortcodes in search results. I tried the relevanssi_excerpt_content + strip_shortcodes solution above, but it didn’t work. I think this is because strip_shortcodes only works on properly formed shortcodes, but because the excerpt only takes part of the text, it is only including the opening VC shortcode section which would normally be “[VC…]lorem ipsum dolor sit amet[/VC…]” but in the excerpt is just “[VC…]lorem ipsum dolor”. I used
preg_replace('~\\[[^]]*\\]~', '', $excerpt);
instead, but I think this is still probably not sufficient in the general case, as I rather think any spaces in the shortcode might be where the excerpt stops excerpting so you end up seeing half a short code. For example, say “[VC…]lorem ipsum dolor sit amet[/VC param=’xxx’]”, you might get “[VC…]lorem ipsum dolor sit amet[/VC” as the excerpt and therefore “lorem ipsum dolor sit amet[/VC” after filtering.
I really think you need to deal with this inside the plugin, as the filter content doesn’t have complete-enough information. (I’m not sure what would happen with VC and an ordinary excerpt – I assume WP deals with shortcodes in a general way in this situation, which relevanssi isn’t doing.