私は、コンフィグレーションハッシュをURLにマッピングするためのElasticsearch v5インデックスを設定しました。パス階層トークナイザと最も近い祖先を照合
{
"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"
}}}}}
私は/trousers
を検索したときの文書
{ "uri": "/trousers/", "config": { "foo": 1 }}
{ "uri": "/trousers/grey", "config": { "foo": 2 }}
{ "uri": "/trousers/grey/lengthy", "config": { "foo": 3 }}
与えられ、上位結果はtrousers
する必要がありますように、と私が検索したとき、私は、最も高いスコアを持つ最長パスのプレフィックスと一致したいと思います/trousers/grey/short
の場合、結果は/trousers/grey
になります。
代わりに、/trousers
の最上位の結果が/trousers/grey/lengthy
であることがわかりました。
これを達成するために私のドキュメントをどのようにインデックス付けしてクエリできますか?