# Use Elasticsearch java api, hits score always be 1.0

**URL:** <https://discuss.elastic.co/t/use-elasticsearch-java-api-hits-score-always-be-1-0/61565>\
**Category:** Elasticsearch\
**Created:** [September 27, 2016, 7:12am UTC](https://discuss.elastic.co/t/use-elasticsearch-java-api-hits-score-always-be-1-0/61565 "2016-09-27T07:12:15Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![simonLi](https://avatars.discourse-cdn.com/v4/letter/s/f4b2a3/32.png) [@simonLi](https://discuss.elastic.co/u/simonLi)\
**Post date:** [September 27, 2016, 7:12am UTC](https://discuss.elastic.co/t/use-elasticsearch-java-api-hits-score-always-be-1-0/61565/1 "2016-09-27T07:12:15Z")

</div>

Hi,  
I used Elasticsearch java client. I do search with query\_string, and I get response, but score always be 1.0 .

## code is:

```auto
String query = "{\"query\": {\"query_string\": {\"query\": \"weblog data4\"}}}";
    SearchRequestBuilder builder = client
            .prepareSearch("flume-2016-08-10")
            .setQuery(query)
            .addHighlightedField("*")
            .setHighlighterRequireFieldMatch(false)
            .setFrom(0).setSize(60).setExplain(true);
    SearchResponse response = builder.execute().actionGet();

    System.out.println(response.toString());
    System.out.println(response.getHits().getAt(0).getSource());
    System.out.println(response.getHits().getAt(0).getHighlightFields());
    client.close();

```

## result is:

```auto
{
  "took" : 4,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 2,
    "max_score" : 1.0,
    "hits" : [ {
      "_shard" : 1,
      "_node" : "by8Gb6CfRG-mz7eUYeqBOA",
      "_index" : "flume-2016-08-10",
      "_type" : "logs",
      "_id" : "AVZy7VMhAbkZavCS5dph",
      "_score" : 1.0,
      "_source" : {
        "body" : "website:weblog:docs_page weblog data4"
      },
      "highlight" : {
        "body" : ["website:weblog:docs_page <em>weblog</em> <em>data4</em>"]
      },
      "_explanation" : {
        "value" : 1.0,
        "description" : "ConstantScore(_all:weblog _all:data4), product of:",
        "details" : [ {
          "value" : 1.0,
          "description" : "boost",
          "details" : []
        }, {
          "value" : 1.0,
          "description" : "queryNorm",
          "details" : []
        } ]
      }
    }, {
      "_shard" : 1,
      "_node" : "by8Gb6CfRG-mz7eUYeqBOA",
      "_index" : "flume-2016-08-10",
      "_type" : "logs",
      "_id" : "AVZy7VMiAbkZavCS5dpl",
      "_score" : 1.0,
      "_source" : {
        "body" : "syslog:syslog:sysloggroup syslog data4"
      },
      "highlight" : {
        "body" : ["syslog:syslog:sysloggroup syslog <em>data4</em>"]
      },
      "_explanation" : {
        "value" : 1.0,
        "description" : "ConstantScore(_all:weblog _all:data4), product of:",
        "details" : [ {
          "value" : 1.0,
          "description" : "boost",
          "details" : []
        }, {
          "value" : 1.0,
          "description" : "queryNorm",
          "details" : []
        } ]
      }
    } ]
  }
}
{body=website:weblog:docs_page weblog data4}
{body=[body], fragments[[website:weblog:docs_page <em>weblog</em> <em>data4</em>]]}

```

#### However, I do search in elaseticsearch-head, I get response with correct score.

> {"query":{"query\_string":{"query":"weblog data4"}},"highlight":{"require\_field\_match":false,"explain":true,"fields":{"\*":{}}}}

```auto
{
"took": 5,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1.5506518,
"hits": [
{
"_index": "flume-2016-08-10",
"_type": "logs",
"_id": "AVZy7VMhAbkZavCS5dph",
"_score": 1.5506518,
"_source": {
"body": "website:weblog:docs_page weblog data4"
},
"highlight": {
"body": [
"website:weblog:docs_page <em>weblog</em> <em>data4</em>"
]
}
}
,
{
"_index": "flume-2016-08-10",
"_type": "logs",
"_id": "AVZy7VMiAbkZavCS5dpl",
"_score": 0.31629312,
"_source": {
"body": "syslog:syslog:sysloggroup syslog data4"
},
"highlight": {
"body": [
"syslog:syslog:sysloggroup syslog <em>data4</em>"
]
}
}
]
}
}

```

**So, How do I get correct score with java?**

---

<div class="post-metadata">

**Author:** ![jpountz](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jpountz/32/45836_2.png) [@jpountz](https://discuss.elastic.co/u/jpountz)\
**Post date:** [September 27, 2016, 8:30am UTC](https://discuss.elastic.co/t/use-elasticsearch-java-api-hits-score-always-be-1-0/61565/2 "2016-09-27T08:30:40Z")

</div>

> [@simonLi](#):
>
> String query = "{"query": {"query\_string": {"query": "weblog data4"}}}";

This should be

```java
String query = "{\"query_string\": {\"query\": \"weblog data4\"}}";

```

Otherwise you are wrapping under the deprecated `query` query has the side effect of making scores equal to 1.

---

<div class="post-metadata">

**Author:** ![simonLi](https://avatars.discourse-cdn.com/v4/letter/s/f4b2a3/32.png) [@simonLi](https://discuss.elastic.co/u/simonLi)\
**Post date:** [September 27, 2016, 11:46am UTC](https://discuss.elastic.co/t/use-elasticsearch-java-api-hits-score-always-be-1-0/61565/3 "2016-09-27T11:46:03Z")

</div>

This solved my problem:

> String query = "{"query\_string": {"query": "weblog data4"}}";

Thanks a lot, _jpountz_

---

<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 5, 2017, 10:16pm UTC](https://discuss.elastic.co/t/use-elasticsearch-java-api-hits-score-always-be-1-0/61565/4 "2017-07-05T22:16:58Z")

</div>


