I've been reading the solr source code and made modifications by implementing a custom Similarity class. I want to implement a weight to the score by multiplying a number based on if the current doc has certain term in it.
So if the query was q=data_text:foo then the Similiarity class would apply a weight of : if this.doc.containsTerm("bar") weight = 5; else weight = 1; end I don't see how the Similarity class can get access to the doc and its terms. Is there a way to do this? Alternatively I could preprocess the weights and I was looking into ExternalFileField, but I can't tell if that is the right solution. If you use ExternalFileField it sets the rank of the results and not a weight? It seems like ExternalFileField is only to be used for function queries? Is it possible to sort by product(score,weight_from_external_file_field)? I also have 10's of millions of docs so I am not sure if this is this will work.