ZBLOG

需要使用ES8的api,请注意ES8中没有QueryBuilders.termQuery

对不起,我之前给出的代码示例使用了过时的 QueryBuilders.termQuery 方法。在 Elasticsearch 8 中,可以使用 QueryBuilder.matchQuery 或者 QueryBuilder.termQuery 方法来实现精确搜索。

以下是一个使用 Elasticsearch 8 Java API 实现精确搜索字段的示例:

import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.unit.Fuzziness;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;

RestHighLevelClient client = new RestHighLevelClient(
    RestClient.builder(new HttpHost("localhost", 9200, "http"))
);

String fieldName = "your_field_name";
String searchValue = "your_search_value";

QueryBuilder termQuery = QueryBuilders.matchQuery(fieldName, searchValue).fuzziness(Fuzziness.ZERO);

SearchRequest searchRequest = new SearchRequest("your_index_name");
searchRequest.source().query(termQuery);

SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
// 处理搜索结果

client.close();

请注意替换示例代码中的 your_field_nameyour_search_valueyour_index_name 分别为实际的字段名、搜索值和索引名。

希望这次能够满足你的需求!如果还有其他问题,请随时提问。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=17893

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?