# Custom scoring with multiple fields in search (Java API)

**URL:** <https://discuss.elastic.co/t/custom-scoring-with-multiple-fields-in-search-java-api/3487>\
**Category:** Elasticsearch\
**Created:** [October 28, 2010, 10:52pm UTC](https://discuss.elastic.co/t/custom-scoring-with-multiple-fields-in-search-java-api/3487 "2010-10-28T22:52:04Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Weilie](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/weilie/32/3309_2.png) [@Weilie](https://discuss.elastic.co/u/Weilie)\
**Post date:** [October 28, 2010, 10:52pm UTC](https://discuss.elastic.co/t/custom-scoring-with-multiple-fields-in-search-java-api/3487/1 "2010-10-28T22:52:04Z")

</div>

Hi,

I am trying to do sorting by more than one fields with CustomScoreQueryBuilder.script(). I looked at the document at [http://www.elasticsearch.com/docs/elasticsearch/modules/scripting/](http://www.elasticsearch.com/docs/elasticsearch/modules/scripting/) but couldn't find any example for doing that. Looks like the most common type of scripts is:  
doc['field\_name'].value  
If I want to sort by field A first, then by field B, how do I write such a script? Is it possible at all?

Thanks!  
Weilie

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [October 30, 2010, 12:01am UTC](https://discuss.elastic.co/t/custom-scoring-with-multiple-fields-in-search-java-api/3487/2 "2010-10-30T00:01:18Z")

</div>

In order to sort first by field A, and then by field B, you don't have to  
use scripting, just specify those fields as the ones to sort by. In Java,  
simply call SearchRequestBuilder#addSort twice, once for fieldA, and once  
for fieldB.

-shay.banon

On Fri, Oct 29, 2010 at 12:52 AM, Weilie [yiweilie@gmail.com](mailto:yiweilie@gmail.com) wrote:

> Hi,
> 
> I am trying to do sorting by more than one fields with  
> CustomScoreQueryBuilder.script(). I looked at the document at  
> [http://www.elasticsearch.com/docs/elasticsearch/modules/scripting/](http://www.elasticsearch.com/docs/elasticsearch/modules/scripting/) but  
> couldn't find any example for doing that. Looks like the most common type  
> of  
> scripts is:  
> doc['field\_name'].value  
> If I want to sort by field A first, then by field B, how do I write such a  
> script? Is it possible at all?
> 
> ## Thanks! Weilie
> 
> View this message in context:  
> [http://elasticsearch-users.115913.n3.nabble.com/custom-scoring-with-multiple-fields-in-search-Java-API-tp1789576p1789576.html](http://elasticsearch-users.115913.n3.nabble.com/custom-scoring-with-multiple-fields-in-search-Java-API-tp1789576p1789576.html)  
> Sent from the Elasticsearch Users mailing list archive at [Nabble.com](http://Nabble.com).

---

<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, 4:17am UTC](https://discuss.elastic.co/t/custom-scoring-with-multiple-fields-in-search-java-api/3487/3 "2017-07-06T04:17:26Z")

</div>


