我正在尝试将路径层次结构分析器添加到我的类型中的一个字段中。
我想在同一个字段上配置路径分析器和反向路径分析器,这样我就可以获得一个字段的正常路径和反向路径。
例如。
路径=" /角度/指令/结构"
我想配置这个路径字段,例如每当我分析这个字段时,如果我指定反向,我应该按正常顺序获取令牌并反转顺序。
以下是我的映射。
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"
}
}
}
}
}
}
}
我配置了这个分析仪。现在如何获取路径和反向路径的令牌?
感谢。
答案 0 :(得分:4)
您可以声明path
字段的子字段,每个字段都有不同的分析器:
"path":{
"type":"string",
"analyzer":"path_analyzer",
"fields": {
"reverse": {
"type":"string",
"analyzer":"reverse_path_analyzer"
}
}
}
然后,您可以在查询中引用path
和path.reverse
。