Điểm:0

Cách chuyển giá trị để truy vấn bên ngoài

lá cờ ng
abc

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"
      }
    }
  }
}

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ămthá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ămtháng để lấy kết quả?

Cảm ơn,

Điểm:0
lá cờ ng

Bạn có thể dùng ngày toán học với ngày được xác định đầy đủ:

"phạm vi": {
  "@dấu thời gian": {
    "gte": "2021-10-01",
    "lte": "2021-10-01||+1 triệu/ngày"
  }
}
abc avatar
lá cờ ng
abc
Cảm ơn Ok nhưng một lần nữa trong trường hợp đó, không thể sử dụng yêu cầu cuộn tròn đơn lẻ, tức là cho mỗi tháng mới để lấy dữ liệu của tháng trước, tôi cần thay đổi dấu thời gian trong yêu cầu cuộn tròn, tức là cho tháng hiện tại là tháng 12, nếu tôi phải tìm nạp dữ liệu cho tháng 11, sau đó tôi cần thay đổi `tháng` trong dấu thời gian và điều tương tự sẽ phải thực hiện khi tháng 1 sẽ là tháng hiện tại và tôi cần tìm nạp dữ liệu cho tháng 12. Chẳng mấy chốc tôi cũng cần phải thay đổi năm. vì vậy điều này là không tốt. Tôi không muốn tạo các yêu cầu cuộn tròn riêng biệt cho mỗi tháng, do đó tôi đang tìm kiếm xem liệu tôi có thể vượt qua năm và tháng không thông qua cách mã hóa cứng không?
lá cờ ng
Làm thế nào để bạn chạy `curl` đó? Nếu đó là tập lệnh bash, bạn có thể sử dụng tập lệnh bash: `YEAR=2010; THÁNG=10; cuộn tròn ... "phạm vi": { "@timestamp": { "gte": "$YEAR-$MONTH-01", "lte": "$YEAR-$MONTH-01||+1M/d" } } ` ?
abc avatar
lá cờ ng
abc
Tôi đã chạy curl như chính xác như cách tôi đã dán ở trên (không có tập lệnh bash, v.v.) nhưng vâng, bao gồm cả curl này trong tập lệnh bash và cung cấp năm và tháng dưới dạng một biến có thể là một lựa chọn tốt. Tôi sẽ thử cái này. Cảm ơn

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.