String Query for java API dosen't find some documents by name

You can index the same field in two different ways, to serve multiple purposes:

  • analyzed for search
  • not analyzed for aggregations

Have a look at this example: https://www.elastic.co/guide/en/elasticsearch/reference/2.3/multi-fields.html