// …
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost(“your_elasticsearch_host”, 9200, “http”), // 替换为您的 Elasticsearch 主机地址、端口和协议
new HttpHost(“your_elasticsearch_host”, 9201, “http”) // 如果有多个节点,可以添加更多 HttpHost
)
);
#### **定义映射并索引数据**
确保您的索引已经为需要进行中文分词查询的字段配置了 `smartcn` 分析器。以下是一个示例映射:
PUT my_index
{
“mappings”: {
“properties”: {
“content”: {
“type”: “text”,
“analyzer”: “smartcn”,
“search_analyzer”: “smartcn”
}
}
}
}
索引一些中文文档:
POST my_index/_doc
{
“content”: “这是使用smartcn分词器进行查询的示例文档”
}
POST my_index/_doc
{
“content”: “另一个包含相同关键词的文档,用于演示分词查询”
}
#### **执行基于 smartcn 的查询**
以下是如何在 Java 中使用 `smartcn` 分词器执行查询的示例:
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.index.query.MultiMatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
// …
String queryText = “使用smartcn分词器查询”;
SearchRequest searchRequest = new SearchRequest(“my_index”);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
MultiMatchQueryBuilder multiMatchQueryBuilder = new MultiMatchQueryBuilder(queryText, “content”)
.analyzer(“smartcn”); // 指定使用 smartcn 分析器
searchSourceBuilder.query(multiMatchQueryBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
searchResponse.getHits().forEach(hit -> {
String content = hit.getSourceAsMap().get(“content”).toString();
System.out.println("匹配文档内容: " + content);
});
在这个示例中,我们使用 `MultiMatchQueryBuilder` 构建了一个查询,指定查询字段为 `content`,并指定了 `analyzer` 参数为 `smartcn`,确保查询时使用 `smartcn` 分词器对查询文本进行分词处理。执行查询后,打印出匹配文档的内容。
### 最后
由于篇幅有限,这里就不一一罗列了,**20道常见面试题(含答案)+21条MySQL性能调优经验**小编已整理成Word文档或PDF文档
![MySQL全家桶笔记](https://img-blog.csdnimg.cn/img_convert/527613d82de892c9df9b5d1d06ae8689.webp?x-oss-process=image/format,png)
**还有更多面试复习笔记分享如下**
![Java架构专题面试复习](https://img-blog.csdnimg.cn/img_convert/d91c901fb6ea3622c51650450e7fd064.webp?x-oss-process=image/format,png)
转存中...(img-a69DAAix-1714289070501)]
**还有更多面试复习笔记分享如下**
[外链图片转存中...(img-dPN4HliH-1714289070501)]
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**