Tôi có các bản ghi tương tự bên dưới.
Tôi đã tạo ra hình nộm mục lục
và tạo ra lập bản đồ
như dưới đây trong những công cụ của nhà phát triển
ĐẶT mới
{
"ánh xạ": {
"tính chất": {
"@dấu thời gian": {
"loại": "ngày",
"định dạng": "yyyy-MM-dd HH:mm:ss.SSS"
}
}
}
}
và lập chỉ mục
dữ liệu như dưới đây,
ĐẶT /mới/_doc/1
{
"@timestamp": "2021-11-05 08:12:14.534",
"cấp độ": "THÔNG TIN",
"id": "1",
"text": "trang web được truy cập",
"trạng thái": "đã nhấp"
}
ĐẶT /mới/_doc/2
{
"@timestamp": "2021-10-14 09:11:14.534",
"cấp độ": "THÔNG TIN",
"id": "3",
"text": "trang web được truy cập",
"trạng thái": "đã nhấp"
}
ĐẶT /mới/_doc/3
{
"@timestamp": "2021-09-09 02:08:20.534",
"cấp độ": "THÔNG TIN",
"id": "4",
"text": "trang web được truy cập",
"trạng thái": "đã nhấp"
}
Tôi có thể tìm nạp tổng số bằng cách sử dụng bên dưới yêu cầu
truy vấn,
NHẬN mới/_tìm kiếm
{
"ags": {},
"kích thước": 0,
"lĩnh vực": [],
"truy vấn": {
"bool": {
"phải": [],
"lọc": [
{
"bool": {
"Nên": [
{
"match_phrase": {
"text": "trang web được truy cập"
}
}
],
"tối_thiểu_nên_match": 1
}
},
{
"phạm vi": {
"@dấu thời gian": {
"gte": "2021-10-01",
"lte": "30-10-2021"
}
}
}
],
"Nên": [],
"không được": []
}
}
}
Nhận phản ứng
như sau,
{
"lấy" : 0,
"timed_out" : sai,
"_shard" : {
"tổng" : 1,
"thành công" : 1,
"bỏ qua" : 0,
"thất bại" : 0
},
"lượt truy cập" : {
"toàn bộ" : {
"giá trị" : 1,
"quan hệ" : "eq"
},
"max_score" : không,
"hit" : [ ]
}
}
Như bạn thấy, tôi cần phải mã cứng
các ngày tháng
để lấy giá trị cho một cụ thể tháng
tức là để lấy thông tin tương tự cho vách ngăn
tháng, tôi cần sửa đổi phạm vi ngày giờ
như bên dưới trong yêu cầu cuộn tròn,
"phạm vi": {
"@dấu thời gian": {
"gte": "2021-09-01",
"lte": "2021-09-30"
}
}
Dưới đây là yêu cầu cuộc gọi cuộn tròn
.
curl -u đàn hồi:xxx -XGET "http://10.10.10.10:9200/new/_search?pretty" -H 'Content-Type: application/json' -d'
{
"ags": {},
"kích thước": 0,
"lĩnh vực": [],
"truy vấn": {
"bool": {
"phải": [],
"lọc": [
{
"bool": {
"Nên": [
{
"match_phrase": {
"text": "trang web được truy cập"
}
}
],
"tối_thiểu_nên_match": 1
}
},
{
"phạm vi": {
"@dấu thời gian": {
"gte": "2021-10-01",
"lte": "30-10-2021"
}
}
}
],
"Nên": [],
"không được": []
}
}
}'
Làm thế nào tôi có thể vượt qua năm
và tháng
một cách linh hoạt (tức là không thực sự mã hóa cứng nó yêu cầu) đối với yêu cầu cuộn tròn sẽ tìm nạp thông tin cho cụ thể đó tháng
, năm
?
cập nhật -
Tôi có thể nhận được kết quả của tháng trước (tháng 11) hoặc 2 tháng trước (tháng 10), v.v. bằng cách sử dụng bên dưới,
tháng trước - tháng 11
-
"gte": "now-M",
"lt": "bây giờ/M"
2 tháng - tháng mười
"gte": "hiện-2M/M",
"lte": "bây giờ-2M/M"
Nhưng có cách nào để cung cấp mong muốn năm
và tháng
để lấy kết quả?
Cảm ơn,