Logstash กับการ Clean HTML Tag
มันมีโจทย์อยู่ว่า ข้อมูลที่จะ index เข้า ES อยู่บน MySQL โดยใช้ Logstash ดึงมา ซึ่งข้อมูลมันมีบางส่วนที่ user ใส่เข้ามาแบบมี HTML Tag ด้วย แถมมี ascii บางตัวแฝงมาด้วยซึ่งเข้าใจว่ามาจากการ copy แปะจาก MS Word ทีนี้ทำยังไงก็ได้ให้ Clean พวกนี้ออกไปก่อนเข้า ES
ตอนแรกพยายามค้นหาว่ามันมี filter อะไรที่ strip พวก HTML Tag หรือเปล่า เข้าไปแอบดูเค้าคุยกันก็มีแต่คนบอกว่าไม่มี ถ้าใกล้เคียงก็ filter XML แต่มันใช้ไม่ได้กับ HTML โดนกดดันอย่างหนักจากจารย์โตผู้ที่ต้องเอาข้อมูลไปประมวลต่อ ว่าให้เอา Tag ออกก่อนๆ เพราะจารย์โตขี้เกียจ strip ตอนแสดงผล ก็ช่วยกันหาข้อมูล ก็พบว่าหนทางที่จะเป็นไปได้สุดก็มี gsub นี่แหละเพราะสามารถทำ reg ได้ ตอนนี้ก็สรุปได้ว่าใช้วิธีนี้
filter {
mutate
{
gsub => [
"abstract", "<.*?>", " "
]
gsub => [
"abstract","\u00A0|\u00C2", " "
]
}
}
มันใส่ reg ทีเดียวได้หลายแบบมะ แบบว่าทำไม่เป็น ฮาๆ