I am searching for locations and their synonyms. For example, "San Francisco" is really
["San Francisco", "Frisco", "SF"].
My problem is that for this array field length is 4 tokens. So matching "San Francisco" to the array is worth less than matching it to "South San Francisco" because that field has only 3 tokens.
I tried disabling field norms altogether, and that works a bit better, but it would be great to somehow to configure ElasticSearch to use the first element of the array to calculate field length for normalization purposes. In other words, I want my array to be 2 tokens long, while "South San Francisco" to be 3 tokens long.
Is that possible?
Also, if field-length norms are disabled, is it possible to somehow reward matching all tokens in a field, so that matching "York" to "York" would be worth more than matching "York" to "New York"?