我设置了一个 Elasticsearch v5 索引,用于将配置哈希映射到 URL。
{
"settings": {
"analysis": {
"analyzer": {
"url-analyzer": {
"type": "custom",
"tokenizer": "url-tokenizer"
}
},
"tokenizer": {
"url-tokenizer": {
"type": "path_hierarchy",
"delimiter": "/"
}
}
}
},
"mappings": {
"route": {
"properties": {
"uri": {
"type": "string",
"index": "analyzed",
"analyzer": "url-analyzer"
},
"config": {
"type": "object"
}}}}}
我想将最长的路径前缀与最高分进行匹配,以便给定文档
{ "uri": "/trousers/", "config": { "foo": 1 }}
{ "uri": "/trousers/grey", "config": { "foo": 2 }}
{ "uri": "/trousers/grey/lengthy", "config": { "foo": 3 }}
当我搜索时/trousers
,顶部结果应该是trousers
,当我搜索/trousers/grey/short
顶部结果时应该是/trousers/grey
。
相反,我发现最好的结果/trousers
是/trousers/grey/lengthy
.
如何索引和查询我的文档以实现此目的?