मैं भी इस समस्या को पूरा करता हूं। फिर मैं फ़ील्डडेटा मेमोरी की जांच करता हूं। अनुरोध नीचे
उपयोग:
`GET /_stats/fielddata?fields=*`
उत्पादन प्रदर्शन:
"logstash-2016.04.02": {
"primaries": {
"fielddata": {
"memory_size_in_bytes": 53009116,
"evictions": 0,
"fields": {
}
}
},
"total": {
"fielddata": {
"memory_size_in_bytes": 53009116,
"evictions": 0,
"fields": {
}
}
}
},
"logstash-2016.04.29": {
"primaries": {
"fielddata": {
"memory_size_in_bytes":0,
"evictions": 0,
"fields": {
}
}
},
"total": {
"fielddata": {
"memory_size_in_bytes":0,
"evictions": 0,
"fields": {
}
}
}
},
तुम मेरे अनुक्रमित आधार datetime नाम दें, और निष्कासन सभी 0. अलावा, 2016/04/02 स्मृति 53,009,116 है देख सकते हैं, लेकिन 2016.04.2 9 0 भी है।
तो मैं इस निष्कर्ष पर कर सकते हैं, पुराने डेटा सभी स्मृति पर कब्जा है, इसलिए नए डेटा नहीं कर सकते इसका इस्तेमाल, और फिर जब मैं agg क्वेरी नए डेटा बनाने के लिए, यह CircuitBreakingException
आप config/elasticsearch सेट कर सकते हैं बढ़ा। yml
indices.fielddata.cache.size: 20%
यह मेमोरी सीमा तक पहुंचने पर डेटा को बेदखल कर सकता है।
लेकिन वास्तविक समाधान हो सकता है कि आपको मेमोरी में मेमोरी जोड़नी चाहिए। और फील्डडेटा मेमोरी उपयोग की निगरानी अच्छी आदतें हैं।
और अधिक विस्तार: https://www.elastic.co/guide/en/elasticsearch/guide/current/_limiting_memory_usage.html
आप डेवलपर टूल्स खोलकर, नेटवर्क टैब का चयन करके, फिर खोज क्वेरी को फिर से चलाकर क्रोम में यह त्रुटि भी देख सकते हैं। यह त्रुटि संदेश '_msearch? 'ईवेंट के' प्रतिक्रिया 'फ़ील्ड में उपलब्ध होगा। इससे मदद मिलती है यदि आपके पास सर्वर लॉग तक सीधे पहुंच नहीं है। – anothermh