java - 如何使用elasticsearch获取搜索结果?

标签 java spring-boot elasticsearch

我使用logstash将我的mysql表数据保存到elasticsearch中。现在我想使用特定字段从elasticsearch 获取数据。我可以使用 id 获取数据,但无法使用其他字段检索数据。

我使用的是elasticsearch 5.6.12和spring boot 2.0

搜索 Controller .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;
    }

我想使用名字进行搜索,但没有显示任何内容。我在这里做错了什么?

最佳答案

我的问题解决了

    @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;
}

关于java - 如何使用elasticsearch获取搜索结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53652323/

相关文章:

java - 如何国际化java中的所有UI标签

rest - 在 Web 应用程序中存储用户名和密码

Java map 匹配键

java - 如何避免响应错误: 429 Too Many Requests

spring-boot - 适用于旧版本Java的Spring Boot

elasticsearch - 查找 Elasticsearch 索引的集合 “max_result_window”?

Elasticsearch:可以进行批量搜索吗?

elasticsearch - 如何在 Elasticsearch 中计算数据

java - 在谷歌数据流中实现撤回

java - 外部 jar 中的 Spring 自定义格式化程序