Skip to content

Instantly share code, notes, and snippets.

@sandy6jain
Last active January 3, 2016 06:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sandy6jain/8421029 to your computer and use it in GitHub Desktop.
Save sandy6jain/8421029 to your computer and use it in GitHub Desktop.
no hits with hasParentFilter in request via SearchScrollRequestBuilder in v0.90.10
/*
To create index & insert a row in parent table
curl -XPOST 'http://localhost:9200/12345'
curl -XPUT 'http://localhost:9200/12345/PTable/row1?routing=12345' -d '{
"user" : "dev-elasticsearch",
"post_date" : "2014-01-12",
"message" : "search with hasParentFilter in scroll not working"
}'
*/
//Run the following code :
public static void main(String[] args) {
try{
Client client = NodeBuilder.nodeBuilder().node().client(true);
/*To create child & insert a row
PutMappingRequestBuilder pmrb = client.admin().indices()
.preparePutMapping("12345").setType("CTable");
pmrb.setSource("{\"CTable\":{\"_parent\":{\"type\":\"PTable\"},\"_routing\":{\"required\":true}}}");
pmrb.execute().actionGet();
IndexRequestBuilder irb = new IndexRequestBuilder(client);
irb.setIndex("12345");
irb.setType("CTable");
irb.setId("childRow1");
irb.setRouting("12345");
irb.setParent("row1");
Map<String, Object> data = new HashMap<String, Object>();
data.put("col1", "val1");
irb.setSource(data);
irb.execute().actionGet();*/
SearchRequestBuilder searchRequestBuilder = new SearchRequestBuilder(
client);
searchRequestBuilder.setIndices("12345");
searchRequestBuilder.setTypes("CTable");
searchRequestBuilder.setRouting("12345");
FilterBuilder postFilter = FilterBuilders.hasParentFilter("PTable",
FilterBuilders.termFilter("user", "elasticsearch"));
searchRequestBuilder.setPostFilter(postFilter);
searchRequestBuilder.addField("col1");
searchRequestBuilder.setScroll("5m");
searchRequestBuilder.setSearchType(SearchType.SCAN);
searchRequestBuilder.setSize(10000);
SearchResponse sr = searchRequestBuilder.execute().actionGet();
String scrollId = sr.getScrollId();
SearchScrollRequestBuilder searchScrollRequestBuilder = new SearchScrollRequestBuilder(
client);
searchScrollRequestBuilder.setScrollId(scrollId);
SearchResponse searchScrollResponse = searchScrollRequestBuilder
.execute().actionGet();
ClearScrollRequestBuilder clearScrollRequestBuilder = new ClearScrollRequestBuilder(
client);
clearScrollRequestBuilder.addScrollId(scrollId);
boolean isCleared = clearScrollRequestBuilder.execute().actionGet()
.isSucceeded();
System.out.println(searchScrollResponse.getShardFailures());
}
finally{
client.close();}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment