gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:52:29 25 4
gpt4 key购买 nike

我使用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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com