I never used river plugins, but one thing that I know is you can control index upon fields through mapping or template.
For each field, you can specify the property "index", in mapping or template, to three different options: analyzed, not_analyzed, no. This is the official documentation.
Set to analyzed for the field to be indexed and searchable after being broken down into token using an analyzer. not_analyzed means that its still searchable, but does not go through any analysis process or broken down into tokens. no means that it won’t be searchable at all (as an individual field; it may still be included in _all). Setting to no disables include_in_all. Defaults to analyzed.
If you want your field still be searchable, go with "not_analyzed", otherwise "no".
The type of fields should not matter.
Here is a mapping example from official website
{
"tweet" : {
"properties" : {
"user" : {"type" : "string", "index" : "not_analyzed"},
"message" : {"type" : "string", "null_value" : "na"},
"postDate" : {"type" : "date"},
"priority" : {"type" : "integer"},
"rank" : {"type" : "float"}
}
}
}