elasticsearch如何为一个字段配置多个分析器?
How to configure multiple analyzers for one field in elasticsearch?
我正在尝试将路径层次结构分析器添加到我的类型中的一个字段。
我想在同一个字段上配置路径分析器和反向路径分析器,这样我就可以得到一个字段的正常路径和反向路径。
例如。
路径="/angular/directive/structural"
我想配置这个路径字段,比如每当我分析这个字段时,如果我指定反向,我应该得到正常顺序和反向顺序的标记。
下面是我的映射。
PUT /elastic_course
{
"settings": {
"analysis": {
"analyzer": {
"path_analyzer": {
"tokenizer": "path_tokenizer"
},
"reverse_path_analyzer": {
"tokenizer": "reverse_path_tokenizer"
}
},
"tokenizer": {
"path_tokenizer": {
"type": "path_hierarchy",
"delimiter": "/",
"replacement": "-"
},
"reverse_path_tokenizer": {
"type": "path_hierarchy",
"delimiter": "/",
"replacement": "-"
}
}
}
},
"mappings": {
"book" : {
"properties": {
"author": {
"type": "string",
"index": "not_analyzed"
},
"genre": {
"type": "string",
"index": "not_analyzed"
},
"score": {
"type": "double"
},
"synopsis": {
"type": "string",
"index":"analyzed",
"analyzer":"english"
},
"title": {
"type": "string"
},
"path":{
"type":"string",
"analyzer":"path_analyzer",
"fields": {
"reverse": {
"type":"string",
"analyzer":"reverse_path_analyzer"
}
}
}
}
}
}
}
我已经配置了这个分析器。现在如何获取路径和反向路径的标记?
谢谢。
您可以为 path
字段声明子字段,每个字段都有不同的分析器:
"path":{
"type":"string",
"analyzer":"path_analyzer",
"fields": {
"reverse": {
"type":"string",
"analyzer":"reverse_path_analyzer"
}
}
}
那么您可以在查询中参考path
和path.reverse
。
我正在尝试将路径层次结构分析器添加到我的类型中的一个字段。
我想在同一个字段上配置路径分析器和反向路径分析器,这样我就可以得到一个字段的正常路径和反向路径。
例如。
路径="/angular/directive/structural"
我想配置这个路径字段,比如每当我分析这个字段时,如果我指定反向,我应该得到正常顺序和反向顺序的标记。
下面是我的映射。
PUT /elastic_course
{
"settings": {
"analysis": {
"analyzer": {
"path_analyzer": {
"tokenizer": "path_tokenizer"
},
"reverse_path_analyzer": {
"tokenizer": "reverse_path_tokenizer"
}
},
"tokenizer": {
"path_tokenizer": {
"type": "path_hierarchy",
"delimiter": "/",
"replacement": "-"
},
"reverse_path_tokenizer": {
"type": "path_hierarchy",
"delimiter": "/",
"replacement": "-"
}
}
}
},
"mappings": {
"book" : {
"properties": {
"author": {
"type": "string",
"index": "not_analyzed"
},
"genre": {
"type": "string",
"index": "not_analyzed"
},
"score": {
"type": "double"
},
"synopsis": {
"type": "string",
"index":"analyzed",
"analyzer":"english"
},
"title": {
"type": "string"
},
"path":{
"type":"string",
"analyzer":"path_analyzer",
"fields": {
"reverse": {
"type":"string",
"analyzer":"reverse_path_analyzer"
}
}
}
}
}
}
}
我已经配置了这个分析器。现在如何获取路径和反向路径的标记?
谢谢。
您可以为 path
字段声明子字段,每个字段都有不同的分析器:
"path":{
"type":"string",
"analyzer":"path_analyzer",
"fields": {
"reverse": {
"type":"string",
"analyzer":"reverse_path_analyzer"
}
}
}
那么您可以在查询中参考path
和path.reverse
。