मेरे पास कुछ लॉगस्टैश इनपुट है जहां मैं डुप्लिकेट को हटाने के लिए document_id
का उपयोग करता हूं। हालांकि, अधिकांश इनपुट में document_id
नहीं है। निम्नलिखित document_id
के माध्यम से वास्तविक अंगूठे हैं, लेकिन यदि यह अस्तित्व में नहीं है, तो इसे सचमुच %{document_id}
के रूप में स्वीकार किया जाता है, जिसका अर्थ है कि अधिकांश दस्तावेज़ एक-दूसरे के डुप्लिकेट के रूप में देखे जाते हैं। यहां मेरा आउटपुट ब्लॉक जैसा दिखता है:documentstid के साथ elasticsearch के लिए logstash आउटपुट; जब मेरे पास document_id नहीं है तो क्या करें?
output {
elasticsearch_http {
host => "127.0.0.1"
document_id => "%{document_id}"
}
}
मैंने सोचा कि मैं आउटपुट में सशर्त उपयोग करने में सक्षम हो सकता हूं। यह विफल रहता है, और त्रुटि कोड के नीचे दी गई है।
output {
elasticsearch_http {
host => "127.0.0.1"
if document_id {
document_id => "%{document_id}"
}
}
}
Error: Expected one of #, => at line 101, column 8 (byte 3103) after output {
elasticsearch_http {
host => "127.0.0.1"
if
मैं कुछ "अगर" बयान करने की कोशिश की और वे सब असफल है, जिसके कारण मैं समस्या यह है कि ब्लॉक में किसी भी तरह की एक सशर्त रहा है मान लेते हैं। यहाँ विकल्प मैंने कोशिश कर रहे हैं: इस को हल करने के
if document_id <> "" {
if [document_id] <> "" {
if [document_id] {
if "hello" <> "" {
सही है। जैसा कि मैंने वैल से कहा था, अगर यूआईआईडी गलती से छोड़ा जाता है तो मैं इसे पसंद करता हूं। – tedder42