Why custom search engine only searches in post titles of custom posts?

The default WordPress search query only works on post_title and post_content fields from the wp_posts table, not including meta stored on the wp_postmeta table.

It really depends on what type of search you want to perform how you could solve this, for instance, “full text”-type search, require a match on a given post meta, custom ranking, etc.

I think the current good practice, and a simple solution, would be to add those kind of meta data using blocks (which would save their data on the post_content field), and also saving them as meta data (as “source of truth” or more advanced querying).

For showing the meta data, you can use get_post_meta( $post->ID, 'meta_key', true ) or echo $post->my_custom_meta_key (WordPress would automatically show the value from the given meta key).