Ho un indice elasticsearch avere utenti con campi come .. "name": "kai" "età": "23" "location": "Delhi , India tag" "": [ "ricerca", "NoSQL"] eccCercando più stringhe in tutti i campi di elasticsearch utilizzando Java API
voglio interrogare stringhe multiple in tutti i campi di utente (ad esempio. [ "NoSQL", "delhi"]). È possibile utilizzare l'API Java?
Ecco un esempio di codice che sto usando. (Ma è irrilevante per la domanda) È solo per conoscere gli oggetti che sto usando in questo momento.
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();
Grazie in anticipo. :)
Grazie @hexabunny. –