我已经使用以下配置在 elasticsearch 中配置了 path_analyzer。
PUT /elastic_course
{
"settings": {
"analysis": {
"analyzer": {
"path_analyzer": {
"tokenizer": "path_tokenizer"
},
"reverse_path_analyzer": {
"tokenizer": "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"
}
}
}
}
}
}
}
现在我插入了四个文件,其中路径值为:
- /角度/结构
- /角度/结构/指令
- /角度/结构/组件
- /角度/物流
现在我想查询我的索引,例如:
- 它将仅检索
structural
. - 它将返回所有叶节点
components
,即directives
和logistics
。
我尝试在查询下运行,但它检索了所有记录。
POST elastic_course/book/_search
{
"query": {
"regexp": {
"path.":"/structural"
}
}
}
有什么帮助吗?
谢谢。