您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
elasticSearch索引中创建自定义分析器(custom)及按分析器名和按字段引用调用
发布时间:2021-09-09 20:16:27编辑:雪饮阅读()
上篇中实现了elasticSearch标准标记器与ASCII码折叠标记过滤器、小写标记过滤器的综合应用。
那么器实现方式是在调用时候的运行时配置标准标记器和ASCII码折叠标记过滤器、小写标记过滤器。
那么本篇要实现的目标是实现自定义分析器于指定某个索引中,并且这个这个自定义分析器就直接包含了ASCII码折叠标记过滤器、小写标记过滤器。那么我们调用时候就可以直接调用这个自定义分析器即可。另外我们也需要能够通过这个指定索引上面的一个字段名也能调用。
那么该索引中实现自定义分析器如:
在索引上建立自定义分析器:
请求正文:
{
"settings": {
"analysis": {
"analyzer": {
"std_folded": {
"type": "custom",
"tokenizer": "standard",
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
},
"mappings": {
"properties": {
"my_text": {
"type": "text",
"analyzer": "std_folded"
}
}
}
}
响应正文:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "my-index-000001"
}
这里定义了这个自定义分析器的名称为std_folded同时定义了一个映射映射中定义了自定义了一个字段my_text关联这个自定义分析器。
那么现在就有两种调用该分析器的方法:
一种是直接调用分析器名称:
按名称引用分析器:
请求正文:
{
"analyzer": "std_folded",
"text": "Is this déjà vu?"
}
响应正文:
{
"tokens": [
{
"token": "is",
"start_offset": 0,
"end_offset": 2,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "this",
"start_offset": 3,
"end_offset": 7,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "deja",
"start_offset": 8,
"end_offset": 12,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "vu",
"start_offset": 13,
"end_offset": 15,
"type": "<ALPHANUM>",
"position": 3
}
]
}
还有一种是按字段引用分析器:
请求正文:
{
"field": "my_text",
"text": "Is this déjà vu?"
}
响应正文:
{
"tokens": [
{
"token": "is",
"start_offset": 0,
"end_offset": 2,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "this",
"start_offset": 3,
"end_offset": 7,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "deja",
"start_offset": 8,
"end_offset": 12,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "vu",
"start_offset": 13,
"end_offset": 15,
"type": "<ALPHANUM>",
"position": 3
}
]
}
关键字词:elasticSearch,自定义分析器,custom
相关文章
- elasticSearch测试分析仪-标准标记器与ASCII码折叠标
- elasticSearch测试分析仪
- elasticSearch类型的自动创建、动态映射与cluster.rou
- elasticSearch集群重新路由
- elasticSearch禁用自动分片分配(cluster.routing.allo
- elasticSearch将未分配的分片分配给节点
- elasticSearch利用cluster.routing.rebalance.enable
- elasticSearch已分配分片的节点移动
- elasticSearch从一个节点上取消指定索引的主分片分配(
- elasticSearch集群配置分片副本节点解决Unassigned问