Thanks for all the replies. I think creating 10 fields and feeding each field with a color's value for 10% from that color is a reasonable approach, and easy to implement too. One problem though, is that not all products have a total of 100% colors (due to various reasons including our color extraction algorithm, etc.) So, for a product with 50% of #000000, and 20% of #999999, I'll have to fill the remaining three fields with some dummy values. Otherwise, Lucene seems to score it higher than products that also have 50% of #000000, but more than 20% of some other colors. Since I also need a way to exclude the dummy value when faceting, is there a neater solution?
I'll certainly look at the payload functionality, which is new to me :) - Guangwei