// 创建查询条件构造器
QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", "中国人民银行");
// 创建 ik 中文分词器
Analyzer analyzer = CustomAnalyzer.builder()
.withTokenizer("ik_smart")
.build();
// 创建查询请求
SearchRequest searchRequest = new SearchRequest("my_index");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(queryBuilder);
// 在查询请求中设置分词器
searchSourceBuilder.analyzer(analyzer);
searchRequest.source(searchSourceBuilder);
// 执行查询请求
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
###或者在字段映射mapping中指定分词器
{
"mappings": {
"properties": {
"title": {
"type": "text",
"analyzer": "ik_smart"
}
}
}
}