2016-06-28 13 views
0

$ zu implementieren: /ecommerceadmin/ODataService.svc/search?$select=status & $ filter = id eq ‚test.com'and name eq 'abc'

Wie kann ich den Code in Elasticsearch implementieren, um die Daten accordingly.What Methode in SearchSourceBuilder zu bekommen sollte verwendet werden?

Antwort

0

Sie können sich wahrscheinlich mit einer match und eine term Abfrage wie folgt leicht wegkommen:

import org.elasticsearch.action.search.SearchResponse; 
import org.elasticsearch.index.query.QueryBuilders.*; 

BoolQueryBuilder query = QueryBuilders.boolQuery() 
    .must(QueryBuilders.matchQuery("name", "abc"))  // 1. 
    .filter(QueryBuilders.termQuery("id", "test.com")); // 2. 

SearchResponse response = client.prepareSearch("ecommerce_index") 
     .setTypes("ecommerce_type") 
     .setQuery(query) 
     .setFetchSource(new String[]{"status"}, null) // 3. 
     .setFrom(0) 
     .setSize(10) 
     .execute() 
     .actionGet(); 

In dem obigen Code:

  1. kümmert sich um die name eq 'abc' $ filter
  2. kümmert der id eq 'test.com' $ Filter
  3. kümmert sich um die $select=status Teil