There isn’t any reason why the values need to be taxonomies (or terms). They can be custom fields. Creating this type of filtering (search) system is a complicated process that can take many hours of development. There are existing plugins that can do this. Search for things like “Parametric” or “Faceted” search for WP. You’ll find several plugins and some explanations of how to accomplish it. I’ve used https://facetwp.com/ for this.