我已經設置了一個Elasticsearch v5索引,用於將配置哈希映射到URL。匹配最接近的祖先與路徑層次結構Tokenizer
{
"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
。
如何索引和查詢我的文檔以實現此目的?