Как получить результаты поиска, используя эластичный поиск? - PullRequest
0 голосов
/ 06 декабря 2018

Я использовал logstash для сохранения данных таблицы mysql вasticsearch.Теперь я хочу получить данные изasticsearch, используя определенное поле.Я могу получить данные, используя идентификатор, но я не могу получить данные, используя другие поля.

Я использую эластичный поиск 5.6.12 и загрузочную пружину 2.0

searchcontroller.java

    @GetMapping("/view/{id}")
    public SearchResponse view(@PathVariable final String id) {
        SearchResponse response = client.prepareSearch("user_detail").setTypes("user")
                .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                .setQuery(QueryBuilders.termQuery("first_name", id)).setFrom(1).setSize(4)
                .setExplain(true).execute().actionGet() ;
        SearchHit[] results = response.getHits().getHits();

        System.out.println("Current results: " + results.length);
        for (SearchHit hit : results) {
            System.out.println("------------------------------");
            Map<String, Object> result = hit.getSource();
            System.out.println(result);
        }
        return response;
    }

Я хочу выполнить поиск по имени, но ничего не отображается.что я тут не так делаю?

1 Ответ

0 голосов
/ 06 декабря 2018

Моя проблема решена

    @GetMapping("/view/{id}")
    public Map<String, Object> view(@PathVariable final String id) {
    System.out.println("id="+id);
    SearchResponse response = client
    .prepareSearch("user_detail").setTypes("user").setQuery(QueryBuilders.matchQuery("first_name", id))
    .setExplain(true)
    .execute().actionGet();

    SearchHit[] results = response.getHits().getHits();

    System.out.println("Current results: " + results.length);
    for (SearchHit hit : results) {
        System.out.println("------------------------------");
        Map<String, Object> result = hit.getSource();
        System.out.println("result="+ result);
        return result;
    }
    return null;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...