2016-04-30 3 views
0

У меня возникла проблема с пониманием того, как сделать json-объект в java. Мне нужно получить определенные данные из elasticsearch через java, и у меня также есть json, который функционирует, но я не знаю, как сделать такой json доступными функциями.сделать json с функциями elasticsearch в java

Возможно ли это с классом SearchResponse и его функциями? Might QueryBuilder help?

Это работает с Sense плагин в хроме:

GET _search 
{ 
"query": { 
    "constant_score": { 
     "filter": { 
      "and": { 
       "filters": [ 
        {"term": 
        {"_type":"budget"}      
        }, 
        {"term": 
        {"_index":"dbs_project"}      
        }, 
        {"term": 
        {"month":"x"}      
        }, 
        {"term": 
        {"account_id":"y"}      
        } 
       ] 
      } 
     }    
    } 
    } 
} 

ответ

1

QueryBuilder определенно должны работать для вас. Для создания запроса, как вам требуется, используя API, вам нужно будет сделать что-то вроде этого:

QueryBuilder query = QueryBuilders.constantScoreQuery(FilterBuilders.andFilter(FilterBuilders.termFilter("_type", "budget"), 
       FilterBuilders.termFilter("_index", "dbs_project"), FilterBuilders.termFilter("month", "x"), 
       FilterBuilders.termFilter("account_id", "y"))); 

И вы будете использовать SearchResponse, чтобы выполнить запрос и получить результаты, как это:

SearchResponse response = client.prepareSearch(index).setTypes(type) 
       .setQuery(query).execute() 
       .actionGet(); 

где client - это пример ваших TransportClient и index и type соответствуют индексу elishingearch и типу, из которого вы хотите запросить.

Смежные вопросы