Github user mattyb149 commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/2601#discussion_r182498324
  
    --- Diff: 
nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/QueryElasticsearchHttp.java
 ---
    @@ -352,6 +414,15 @@ private int getPage(final Response getResponse, final 
URL url, final ProcessCont
                 JsonNode responseJson = parseJsonResponse(new 
ByteArrayInputStream(bodyBytes));
                 JsonNode hits = responseJson.get("hits").get("hits");
     
    +            if ( (hits.size() == 0 && queryInfoRouteStrategy == 
QueryInfoRouteStrategy.NOHIT)
    --- End diff --
    
    This part doesn't quite work, not necessarily due to a logic error here, 
but it needs to be addressed either here or in the onTrigger do-while loop. If 
I don't set a limit and I set my page size to 20, then fetch all results (I 
have 100), then I get a flow file on the query-info connection. This is because 
the hitLimit variable is never set as the limit variable is always null, so we 
attempt to get all records starting from index 100, and zero are returned. 
However this code checks that hits.size() is zero (which it is the last time). 
No documents are output of course (due to the for-loop below), but the 
query-info flow file is sent. Perhaps this method needs to know the current 
total number of hits?


---

Reply via email to