検索結果"_shards"内の"skipped"ですが、どのような場合にカウントされるのか、定義が見当たらないようです。
{
  "took" : 5,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0, <============== こちらの定義について
    "failed" : 0
  },
 
既に英語のほうで投稿させて頂いておりますが、現在ご回答を得られておらず、ご教示頂けたら大変ありがたいです。 
https://discuss.elastic.co/t/definition-for-skipped-in-shards-as-query-result/159841 
             
            
               
               
               
            
            
           
          
            
            
              どなたかご存知のかた、いらっしゃらないでしょうか。
             
            
               
               
               
            
            
           
          
            
              
                tsgkdt  
                (tsgkdt)
               
              
                  
                    December 14, 2018,  2:35am
                   
                   
              3 
               
             
            
              いろいろ検索して探しては見るものの、確かにどのような場合にスキップのカウントがされるのか、について言及されているものが見つかりませんね。
Cross Cluster Searchの方でしたら、少しだけ記述はあるようですが、_shards以下の方については見つかりませんでした。
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/modules-cross-cluster-search.html 
お役に立てず申し訳ないです。
             
            
               
               
              1 Like 
            
            
           
          
            
            
              tsgkdt様
コメント誠にありがとうございます。
Cross Cluster Searchには、"skipped"の記述があることを確認させて頂きました。
もし"_shards"の方について英語のトピックで情報を得られましたら、こちらで共有させて頂きます。
             
            
               
               
               
            
            
           
          
            
              
                mnozawa  
                (Makoto  Nozawa)
               
              
                  
                    December 14, 2018,  5:06am
                   
                   
              5 
               
             
            
              類似投稿でも言及されていたこのPRがそれらしいですね 
コードまで目を通していないですが_field_statsを元にrange queryがマッチするdocumentが当該shardに含まれそうかどうかをあらかじめチェックする(pre-filtering)ということですかね 
参考として言及されていることそのままですが
             
            
               
               
              1 Like 
            
            
           
          
            
              
                st1t  
                (Shota Ito)
               
              
                  
                    December 14, 2018,  5:24am
                   
                   
              6 
               
             
            
              日曜プログラマーで全く自信がないのですがElasticsearchのコードから_shards skippedを追いかけていくと 
  
  
    
            } 
        } 
        return new ShardStats(successfulShards, totalShards, skippedShards, failures.toArray(new ShardSearchFailure[failures.size()])); 
    } 
 
    @Override 
    public String toString() { 
        return "_shards : {" + 
            "total=" + totalShards + 
            ", successful=" + successfulShards + 
            ", skipped=" + skippedShards + 
            ", failed=" + (shardFailures != null && shardFailures.length > 0 ? shardFailures.length : 0 ) + 
            (shardFailures != null && shardFailures.length > 0 ? ", failures: " + Arrays.asList(shardFailures): "") + 
            '}'; 
    } 
} 
} 
  
   
  
    
    
  
  
 
  
  
    
    return skippedShards; 
} 
 
public ShardSearchFailure[] getShardFailures() { 
    return Arrays.copyOf(shardFailures, shardFailures.length, ShardSearchFailure[].class); 
} 
 
static ShardStats fromXContent(XContentParser parser) throws IOException { 
    int successfulShards = -1; 
    int totalShards = -1; 
    int skippedShards = 0; //BWC @see org.elasticsearch.action.search.SearchResponse 
    List<ShardSearchFailure> failures = new ArrayList<>(); 
    XContentParser.Token token; 
    String currentName = parser.currentName(); 
    while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { 
        if (token == XContentParser.Token.FIELD_NAME) { 
            currentName = parser.currentName(); 
        } else if (token.isValue()) { 
            if (FAILED.match(currentName, parser.getDeprecationHandler())) { 
                parser.intValue(); 
            } else if (SKIPPED.match(currentName, parser.getDeprecationHandler())) { 
  
   
  
    
    
  
  
 
このコメントのSearchResponse.javaで定義されているgetterのコメントを見てみると、
  
  
    
 
/** 
 * The successful number of shards the search was executed on. 
 */ 
public int getSuccessfulShards() { 
    return successfulShards; 
} 
 
 
/** 
 * The number of shards skipped due to pre-filtering 
 */ 
public int getSkippedShards() { 
    return skippedShards; 
} 
 
/** 
 * The failed number of shards the search was executed on. 
 */ 
public int getFailedShards() { 
    // we don't return totalShards - successfulShards, we don't count "no shards available" as a failed shard, just don't 
  
   
  
    
    
  
  
 
これは、@mnozawa  さんが言及されているpre-filteringかなと思っています 
             
            
               
               
              1 Like 
            
            
           
          
            
            
              mnozawa様
コメントありがとうございます。 
そのPRしか、skippedに関する情報はないようですね。 
他にもskippedがカウントされるケースが無いかと気にしており、このトピックに 
投稿させて頂きました。
             
            
               
               
               
            
            
           
          
            
            
              st1t様
コードまでご確認頂きありがとうございます。
レファレンスのもトピックにも定義が無ければ、もう 
コードをトレースするしかありません。
こちらのほうでも、コードも確認させて頂きます。
             
            
               
               
              1 Like 
            
            
           
          
            
              
                johtani  
                (Jun Ohtani)
               
              
                  
                    December 14, 2018,  7:36am
                   
                   
              9 
               
             
            
              ちなみにですが、なぜそれが気になって調べているのでしょうか?
             
            
               
               
              1 Like 
            
            
           
          
            
            
              johtani様
タイトルと最初の投稿に記載した以上のことはなく、skippedがどのような場合に 
カウントされるかが分からないからです。
検索して、skippedがカウントされていたら、理由が気になるかと思います。
             
            
               
               
               
            
            
           
          
            
              
                system  
                (system)
                  Closed 
               
              
                  
                    January 11, 2019,  8:58am
                   
                   
              11 
               
             
            
              This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.