public void testAutoBoost() throws Exception {
   for (boolean boost : new boolean[] {false, true}) {
     String index = "test_" + boost;
     IndexService indexService =
         createIndex(
             index,
             client()
                 .admin()
                 .indices()
                 .prepareCreate(index)
                 .addMapping("type", "foo", "type=string" + (boost ? ",boost=2" : "")));
     client().prepareIndex(index, "type").setSource("foo", "bar").get();
     client().admin().indices().prepareRefresh(index).get();
     Query query =
         indexService
             .mapperService()
             .documentMapper("type")
             .allFieldMapper()
             .fieldType()
             .termQuery("bar", null);
     try (Searcher searcher = indexService.getShardOrNull(0).acquireSearcher("tests")) {
       query = searcher.searcher().rewrite(query);
       final Class<?> expected = boost ? AllTermQuery.class : TermQuery.class;
       assertThat(query, Matchers.instanceOf(expected));
     }
   }
 }
 @Override
 public void onRemoval(ShardId shardId, String fieldName, boolean wasEvicted, long sizeInBytes) {
   if (shardId != null) {
     final IndexShard shard = indexService.getShardOrNull(shardId.id());
     if (shard != null) {
       shard.fieldData().onRemoval(shardId, fieldName, wasEvicted, sizeInBytes);
     }
   }
 }
 @Override
 public void onCache(ShardId shardId, String fieldName, Accountable ramUsage) {
   if (shardId != null) {
     final IndexShard shard = indexService.getShardOrNull(shardId.id());
     if (shard != null) {
       shard.fieldData().onCache(shardId, fieldName, ramUsage);
     }
   }
 }
 @Override
 public void onRemoval(ShardId shardId, Accountable accountable) {
   if (shardId != null) {
     final IndexShard shard = indexService.getShardOrNull(shardId.id());
     if (shard != null) {
       long ramBytesUsed = accountable != null ? accountable.ramBytesUsed() : 0L;
       shard.shardBitsetFilterCache().onRemoval(ramBytesUsed);
     }
   }
 }
 private void failReplicaIfNeeded(String index, int shardId, Throwable t) {
   logger.trace("failure on replica [{}][{}]", t, index, shardId);
   if (ignoreReplicaException(t) == false) {
     IndexService indexService = indicesService.indexService(index);
     if (indexService == null) {
       logger.debug(
           "ignoring failed replica [{}][{}] because index was already removed.", index, shardId);
       return;
     }
     IndexShard indexShard = indexService.getShardOrNull(shardId);
     if (indexShard == null) {
       logger.debug(
           "ignoring failed replica [{}][{}] because index was already removed.", index, shardId);
       return;
     }
     indexShard.failShard(actionName + " failed on replica", t);
   }
 }