Tôi muốn sử dụng một kịch bản để làm như sau:Loại chuyển đổi trong kịch bản elasticsearch
{
"query": {
"match_all": {}
},
"facets": {
"user_facet": {
"terms": {
"field": "user_id",
"script": "term + \"_\" + _source.code"
}
}
}
}
này cũng tương tự như câu trả lời được đưa ra trong câu hỏi này: elastic search double facet
Vấn đề duy nhất tôi có là trường user_id và mã của tôi là các loại dài, chứ không phải là chuỗi. Có cách nào để biến chúng thành chuỗi để chúng có thể được kết hợp với kịch bản không?
Các lỗi cụ thể tôi nhận được là:
nested: ClassCastException[java.lang.String cannot be cast to java.lang.Number];
Tôi không thấy ví dụ của bạn về cách một user_id dài bao giờ có thể khớp với cụm từ mà bạn đang tính toán trong tập lệnh, đó là một sting, ngay cả khi bạn đã chuyển đổi nó. Chắc chắn là tôi đang thiếu gì đó. – Phil
Một ý nghĩ để thử ... Có thể sử dụng 'doc ['user_id']' cho trường này sẽ hoạt động? – Phil
Bạn cũng có thể sử dụng Java trong tập lệnh mvel. Tôi sẽ chỉ chuyển đổi chúng sang Strings bằng cách sử dụng java sau đó;) – javanna