Score:0

วิธีส่งค่าไปยังแบบสอบถามภายนอก

ธง ng
abc

ฉันมีบันทึกที่คล้ายกันด้านล่าง

ฉันได้สร้างหุ่นจำลอง ดัชนี และสร้าง การทำแผนที่ เช่นด้านล่างใน เครื่องมือพัฒนา

ใส่ใหม่
{
  "การจับคู่": {
    "คุณสมบัติ": {
      "@timestamp": {
        "ประเภท": "วันที่",
        "รูปแบบ": "yyyy-MM-dd HH:mm:ss.SSS"
      }
    }
  }
}

และ จัดทำดัชนี ข้อมูลดังต่อไปนี้

ใส่ /new/_doc/1
{
  "@timestamp": "2021-11-05 08:12:14.534",
  "ระดับ": "ข้อมูล",
  "รหัส": "1",
  "ข้อความ": "มีการเข้าถึงเว็บไซต์",
  "สถานะ": "คลิก"
}

ใส่ /new/_doc/2
{
  "@timestamp": "2021-10-14 09:11:14.534",
  "ระดับ": "ข้อมูล",
  "รหัส": "3",
  "ข้อความ": "มีการเข้าถึงเว็บไซต์",
  "สถานะ": "คลิก"
}

ใส่ /new/_doc/3
{
  "@timestamp": "2021-09-09 02:08:20.534",
  "ระดับ": "ข้อมูล",
  "รหัส": "4",
  "ข้อความ": "มีการเข้าถึงเว็บไซต์",
  "สถานะ": "คลิก"
}

ฉันสามารถดึงข้อมูลจำนวนทั้งหมดโดยใช้ด้านล่าง ขอ แบบสอบถาม

รับใหม่/_search
{
  "aggs": {},
  "ขนาด": 0,
  "ฟิลด์": [],
  "แบบสอบถาม": {
    "บูล": {
      "ต้อง": [],
      "กรอง": [
        {
          "บูล": {
            "ควร": [
              {
                "match_phrase": {
                  "ข้อความ": "มีการเข้าถึงเว็บไซต์"
                }
              }
            ]
            "minimum_should_match": 1
          }
        },
        {
          "พิสัย": {
            "@timestamp": {
              "gte": "2021-10-01",
              "lte": "2021-10-30"
            }
          }
        }
      ]
      "ควร": [],
      "ต้องไม่": []
    }
  }
}

ได้รับ การตอบสนอง ดังต่อไปนี้,

{
  "เอา" : 0,
  "timed_out" : เท็จ
  "_shards" : {
    "ทั้งหมด" : 1,
    "ประสบความสำเร็จ" : 1,
    "ข้าม" : 0,
    "ล้มเหลว" : 0
  },
  "ฮิต" : {
    "ทั้งหมด" : {
      "มูลค่า" : 1,
      "ความสัมพันธ์" : "เสมอ"
    },
    "max_score" : null,
    "ฮิต" : [ ]
  }
}

อย่างที่คุณเห็นฉันต้อง ฮาร์ดโค้ด เดอะ วันที่ เพื่อดึงค่าเฉพาะ เดือน นั่นคือการดึงข้อมูลเดียวกันสำหรับ กันยายน เดือนฉันต้องแก้ไข ช่วงวันที่และเวลา ตามด้านล่างในคำขอ curl

"พิสัย": {
  "@timestamp": {
    "gte": "2021-09-01",
    "lte": "2021-09-30"
    }
    }

ด้านล่างนี้คือ คำขอโทรขด.

curl -u ยืดหยุ่น:xxx -XGET "http://10.10.10.10:9200/new/_search?pretty" -H 'ประเภทเนื้อหา: แอปพลิเคชัน/json' -d'
{
  "aggs": {},
  "ขนาด": 0,
  "ฟิลด์": [],
  "แบบสอบถาม": {
    "บูล": {
      "ต้อง": [],
      "กรอง": [
        {
          "บูล": {
            "ควร": [
              {
                "match_phrase": {
                  "ข้อความ": "มีการเข้าถึงเว็บไซต์"
                }
              }
            ]
            "minimum_should_match": 1
          }
        },
        {
          "พิสัย": {
            "@timestamp": {
              "gte": "2021-10-01",
              "lte": "2021-10-30"
            }
          }
        }
      ]
      "ควร": [],
      "ต้องไม่": []
    }
  }
}'

ผ่านไปได้ยังไง ปี และ เดือน แบบไดนามิก (เช่นไม่มีการขอฮาร์ดโค้ดจริง ๆ ) ไปยังคำขอ curl ซึ่งจะดึงข้อมูลสำหรับรายการนั้น ๆ เดือน, ปี?


อัปเดต -

ฉันสามารถรับผลลัพธ์ของเดือนที่แล้ว (พ.ย.) หรือ 2 เดือนที่ผ่านมา (ต.ค.) เป็นต้นโดยใช้ด้านล่าง

เดือนที่แล้ว - พ.ย -

"gte": "ตอนนี้-M",
"lt": "ตอนนี้/M"

2 เดือน - ต.ค

"gte": "ตอนนี้-2M/M",
"lte": "ตอนนี้-2M/M"

แต่มีวิธีการให้ที่ต้องการ ปี และ เดือน เพื่อดึงผลลัพธ์?

ขอบคุณ,

Score:0
ธง ng

คุณสามารถใช้ได้ คณิตศาสตร์วันที่ พร้อมวันที่ที่กำหนดไว้อย่างครบถ้วน:

"พิสัย": {
  "@timestamp": {
    "gte": "2021-10-01",
    "lte": "2021-10-01||+1เดือน/วัน"
  }
}
abc avatar
ng flag
abc
ขอบคุณ ตกลง แต่ในกรณีนั้น ไม่สามารถใช้คำขอ curl เดี่ยวได้ เช่น สำหรับเดือนใหม่ทุก ๆ เดือนเพื่อรับข้อมูลของเดือนที่แล้ว ฉันต้องเปลี่ยนการประทับเวลาในคำขอ curl เช่นสำหรับเดือนปัจจุบัน ธ.ค. ถ้าฉันต้อง ดึงข้อมูลสำหรับเดือนพฤศจิกายน จากนั้นฉันต้องเปลี่ยน `เดือน' ในการประทับเวลา และจะต้องทำเช่นเดียวกันเมื่อเดือนมกราคมจะเป็นเดือนปัจจุบัน และฉันต้องดึงข้อมูลสำหรับเดือนธันวาคม เร็ว ๆ นี้ฉันต้องเปลี่ยนปีด้วย ดังนั้นสิ่งนี้จึงไม่ดี ฉันไม่ต้องการสร้างคำขอ curl แยกต่างหากสำหรับทุกเดือน ดังนั้นฉันจึงกำลังมองหาว่าฉันสามารถส่งปีและเดือนโดยไม่ใช้วิธีฮาร์ดโค้ดได้หรือไม่
ng flag
คุณเรียกใช้ 'curl' นั้นได้อย่างไร หากเป็นสคริปต์ทุบตี คุณสามารถใช้สคริปต์ทุบตี: `YEAR=2010; เดือน = 10; curl ... "range": { "@timestamp": { "gte": "$YEAR-$MONTH-01", "lte": "$YEAR-$MONTH-01||+1M/d" } } ` ?
abc avatar
ng flag
abc
ฉันกำลังเรียกใช้ curl เช่นเดียวกับที่ฉันได้วางด้านบน (โดยไม่มีสคริปต์ทุบตี ฯลฯ .. ) แต่ใช่รวมถึง curl นี้ในสคริปต์ทุบตีและการระบุปีและเดือนเป็นตัวแปรอาจเป็นตัวเลือกที่ดี ฉันจะลองสิ่งนี้ ขอบคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา