Custom Fields and Tags
As far as the key idea of search, not only do all of these types of concepts above apply, but in particular, some of the most important aspects tend to be the data itself for the product. So we need to have very basic meta information like the meta title and the meta description and the internal title and description used within search internally.
We can also include custom fields and attributes on each product. This typically includes tags and synonyms so that users can find items based on similar keywords. It also incorporates the idea of being able to have the product's filtered based on different categories and tying products to different categories, more than one category, and being able to filter products as someone goes through a category tree.
HTML
In addition, being able to have custom attributes and custom fields per product is very important, and having different data types is very important, so this might include just HTML text that is custom per product for different custom fields. Usually, it includes a list of options that might be by category or by subcategory where we might know that we're going to have a different attribute for similar products.
Here’s an Example...
Consider t-shirts that are for sale on an eCommerce site. Those t-shirts might have different types of necks (V-neck, crew neck, turtleneck). And then they might have different sleeve lengths (short sleeve, long sleeve, sleeve). The material will also be variable (cotton, silk, polyester blend). There might be ten colors or 100 colors, and of course the sizes can be different. All of these can be customized depending on a customer’s previous searches.
For some eCommerce business models, it might make sense for the user to be able to actually upload an image and customize a particular shirt. Will a particular shirt accommodate a certain image? Can a material accept stitching? What about price breaks? All of these variables can be incorporated into enhanced search capabilities. It's very important that this data is able to be imported into the system so that the end-user — and the systems search capabilities —can make full use of it.