Success. I basically just indexed all the things I wanted to search on and fed them into the body attribute, then used custom 1-4 for the ID numbers, so I can further parse the results.
I just wish I had more than 4 custom placeholders, because I'd like to pass two more items through. Anyway, at least this takes care of my blank keyword problem.
Aha! Turns out I can have all the custom fields I want, using name_datatype
So in the <cfindex> tag I can have:
The sky's the limit!
Slight bug with the custom fields. The documentation states that the syntax is fieldname_datatype (i.e. field1_s for string, field1_i for integer, etc). But I get a datatype mismatch error (There is an invalid attributname-attributevalue combination) whenever I use anything but _s, even with numeric fields.
Looks like it's also been reported here: Bug#3935959 - Solr on ColdFusion 10 Does not Support More than 4 Custom Fields
Fortunately, the _s works, so I can use that as a workaround.