Thank you Long.
I was able to adapt the answers in that WPE thread to create a search that only returns results from a custom post type. Basically I created a custom search form and then I use pre_get_posts to alter the query.
This leaves me with the other half of my challenge: allowing the search function to encompass data within custom fields. The article you've pointed to is good, but ultimately simply says to hand off that task to a third-party plugin. This isn't an option for me.
Can you point to how people are doing this without plugins?
From what I gather, I think I need to alter the search query further, also using pre_get_posts. But I haven't been able to find any documentation or articles on exactly how to do it.