@Override
 public SearchLookup lookup() {
   // TODO: The types should take into account the parsing context in QueryParserContext...
   if (searchLookup == null) {
     searchLookup = new SearchLookup(mapperService(), fieldData(), request.types());
   }
   return searchLookup;
 }
 @Override
 public ObjectMapper getObjectMapper(String name) {
   return mapperService().getObjectMapper(name, request.types());
 }
 @Override
 public MappedFieldType smartNameFieldType(String name) {
   return mapperService().smartNameFieldType(name, request.types());
 }
 @Override
 public String[] types() {
   return request.types();
 }
 @Override
 public boolean hasTypes() {
   return request.types() != null && request.types().length > 0;
 }