Elasticsearch custom analyzer with custom pattern(自定义Analyzer的分词pattern)

本文探讨如何在Elasticsearch中创建一个自定义Analyzer,特别是使用定制的分词pattern,以便有效地索引和搜索逗号分隔值(CSV)字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DELETE testindex

PUT testindex
{
    "index" : {
        "analysis" : {
            "tokenizer" : {
                "comma" : {
                    "type" : "pattern",
                    "pattern" : "," }
            },
            "analyzer" : {
                "comma" : {
                    "type" : 
### 实现Elasticsearch自定义分词器 #### 定义分词器配置文件 为了实现自定义分词,在`resources`目录下创建一个名为`setting.json`的文件。此文件用于指定分词器的各种参数和行为[^4]。 ```json { "settings": { "analysis": { "analyzer": { "my_custom_analyzer": { "type": "custom", "tokenizer": "my_tokenizer", "char_filter": [ "html_strip" ], "filter": [ "lowercase", "asciifolding" ] } }, "tokenizer": { "my_tokenizer": { "type": "pattern", "pattern": "[,;.]" } } } } } ``` 上述JSON片段展示了如何设置一个基于正则表达式的分词器,该分词器会按照逗号、分号以及句号来分割文本,并且应用了HTML剥离字符过滤器与ASCII折叠转换滤镜。 #### 加载并测试自定义分词器 一旦完成了配置文件的设计,则可以通过REST API向集群发送请求以加载新的分析链: ```bash PUT /_cluster/settings { "persistent": { "index.analysis.analyzer.my_custom_analyzer.type": "custom" } } POST _analyze { "analyzer": "my_custom_analyzer", "text": "<p>Hello world! This is a test.</p>" } ``` 这段命令首先更新了集群级别的持久化设置以便于识别新加入的分析工具;随后利用`/_analyze`端点验证所设定模式的效果,确保其按预期工作[^1]。 #### 编程方式集成至Spring Boot项目中 对于希望在应用程序内部管理这些资源的情况而言,可以在Spring Boot工程里编写如下所示的Java代码片段完成相同目的的操作: ```java import org.elasticsearch.client.Request; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component public class CustomAnalyzerInitializer { @Autowired private RestHighLevelClient client; public void init() throws IOException { Request request = new Request( "PUT", "/_cluster/settings"); String jsonBody = "{ \"persistent\": {\"index.analysis.analyzer.my_custom_analyzer.type\":\"custom\"}}"; request.setJsonEntity(jsonBody); client.getLowLevelClient().performRequest(request); // 测试自定义分词效果... } } ``` 以上示例说明了怎样借助官方提供的客户端库——Rest High Level Client——执行必要的HTTP调用来初始化环境中的自定义解析组件[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值