I have an elasticsearch index that has users with fields like .. "name": "kai" "age": "23" "location": "Delhi, India" "tag": ["search", "nosql" ] and etc.
I want to request multiple rows in all user fields (for example, ["nosql", "delhi"]). Is it possible to use the Java API?
Here is an example of the code I'm using. (But this is not relevant to the question) Its just to know the objects that I am using right now.
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery() .must(QueryBuilders.matchAllQuery()); if(location!=null) { queryBuilder.must(QueryBuilders.matchQuery("location",location)); } BoolFilterBuilder filerBuilder=FilterBuilders.boolFilter(); for(String skill:skills){ filerBuilder.must(FilterBuilders.rangeFilter("tags."+skill).from(0)); } filerBuilder.must(FilterBuilders.queryFilter(queryBuilder)); if(age!=null) { filerBuilder.must(FilterBuilders.rangeFilter("age").from(age[0]).to(age[1])); } SearchResponse response = client.prepareSearch("skillbin") .setTypes("stackdump") .setSearchType(SearchType.QUERY_AND_FETCH) .setQuery(queryBuilder) .setPostFilter(filerBuilder) .addSort("reputation", SortOrder.DESC) .execute() .actionGet(); SearchHits hits=response.getHits();
Thanks in advance.:)
source share