Tôi rất mới trong Elasticsearch và có câu hỏi về trình thông báo phân cấp của đường dẫn. Dưới đây là ví dụ mã của tôi:Elasticsearch - sử dụng trình thông báo phân cấp đường dẫn để truy cập các cấp độ khác nhau của các loại
đang lập bản đồ của tôi:
PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"path-analyzer": {
"type": "custom",
"tokenizer": "path-tokenizer"
}
},
"tokenizer": {
"path-tokenizer": {
"type": "path_hierarchy",
"delimiter": "."
}
}
}
},
"mappings": {
"my_type": {
"dynamic": "strict",
"properties": {
"group_path": {
"type": "string",
"index_analyzer": "path-analyzer",
"search_analyzer": "keyword"
}
}
}
}
}
Đây là PUT của tôi:
PUT /my_index/my_type/1
{
"group_path": ["Book.Thriller.Adult","DVD.Comedy.Kids"]
}
Đây là Query tôi:
GET /my_index/my_type/_search?search_type=count
{
"aggs": {
"category": {
"terms": {
"field": "group_path",
"size": 0
}
}
}
}
Và kết quả:
{
...
"aggregations": {
"category": {
"buckets": [
{
"key": "Book",
"doc_count": 1
},
{
"key": "Book.Thriller",
"doc_count": 1
},
{
"key": "Book.Thriller.Adult",
"doc_count": 1
},
{
"key": "DVD",
"doc_count": 1
},
{
"key": "DVD.Comedy",
"doc_count": 1
},
{
"key": "DVD.Comedy.Kids",
"doc_count": 1
}
]
}
}
}
Cho đến nay mọi thứ đều tốt. Những gì tôi đang tìm kiếm là làm thế nào tôi có thể tạo ra các thùng ví dụ chỉ cho thể loại đầu tiên. Làm cách nào để tôi có kết quả như vậy:
{
...
"aggregations": {
"category": {
"buckets": [
{
"key": "Book",
"doc_count": 1
},
{
"key": "DVD",
"doc_count": 1
}
]
}
}
}
Cảm ơn bạn đã được trợ giúp.