# Custom Ranking Functions (Custom Similarity Providers) on run time

**URL:** <https://discuss.elastic.co/t/custom-ranking-functions-custom-similarity-providers-on-run-time/9652>\
**Category:** Elasticsearch\
**Created:** [November 9, 2012, 7:58pm UTC](https://discuss.elastic.co/t/custom-ranking-functions-custom-similarity-providers-on-run-time/9652 "2012-11-09T19:58:48Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jak\_Akdemir](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jak_akdemir/32/2637_2.png) [@Jak\_Akdemir](https://discuss.elastic.co/u/Jak_Akdemir)\
**Post date:** [November 9, 2012, 7:58pm UTC](https://discuss.elastic.co/t/custom-ranking-functions-custom-similarity-providers-on-run-time/9652/1 "2012-11-09T19:58:48Z")

</div>

Hi,

I was trying to use a Similarity provider in query time. For example, as  
starting point, I want to disable idf or assign 1 to all terms for some  
queries.

According to email-list and my observations this modules didn't documented  
yet. I added this  
plugin[https://github.com/tlrx/elasticsearch-custom-similarity-provider](https://github.com/tlrx/elasticsearch-custom-similarity-provider)in  
ES/lib but I can not choose similarity on runtime like following  
requests. How can we use a custom similarity provider on the fly?

curl -XGET devjak:9200/\_search?pretty=true -d '{"similarity":{"search":

> {"type": "org.elasticsearch.index.similarity.CustomSimilarityProvider"}},  
> "fields":["id"],"size":10,"from":0,"sort":["\_score"],"query":{"query\_string":{"query":"nokia  
> facebook"}}}'

Also, it is nonsense to ES change sort field as tf for ES, because it  
doesn't know which calculations should be applied to tf's of each term. So  
following query didn't work as expected.

curl -XGET devjak:9200/\_search?pretty=true -d '{"explain":

> true,"fields":["id"],"size":10,"from":0,"sort":["\_tf"],"query":{"query\_string":{"query":"nokia  
> facebook"}}}'

Lastly, maybe we can re-define score calculation on scripting. Is there  
anyway to access tf and idf at scripting part?

ES:0.19.7

Thanks for your help indeed,

Jak Akdemir

--

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 3:05am UTC](https://discuss.elastic.co/t/custom-ranking-functions-custom-similarity-providers-on-run-time/9652/2 "2017-07-06T03:05:05Z")

</div>


