I was in the same situation with the multiselect attribute. They seem to be correctly populated in catalog_product_entity_text
table but the attribute doesn't appear in layered navigation. Here is some info that may be helpful to others.
After some more debugging I found out that text
backend_type will fail the checks in Mage_Catalog_Model_Resource_Eav_Attribute::isIndexable()
and hence it will not be indexed for layered navigation. One workaround to make this input types indexable will be to rewrite this attribute resource model.
Or you can also override the getBackendTypeByInput($type)
function in app/code/core/Mage/Eav/Model/Entity/Attribute.php
and return the field = 'text'
when case 'multiselect':
. I believe this will make all multiselects to be the text type.
Also, in case you are not showing multiselect attribute in layered navigation and product listing page you will not have this issue when you change varchar to text. Make sure to set Use in Layered Navigation
, Used in Product Listing
, Used for Sorting in Product Listing
to NO
Lastly, there are more details available in Vinai's answer here.
Another (not recommended) solution here will be to alter table and increase the varchar field length. See http://dev.mysql.com/doc/refman/5.0/en/char.html