का उपयोग कर एक गतिशील वस्तु इंडेक्स मैं एक एपीआई एप्लिकेशन बना रहा हूं जो अनिवार्य रूप से उपयोगकर्ता को एक दस्तावेज़ बनाने की अनुमति देता है, जिसे संरचित किया जा सकता है, हालांकि वे चाहते हैं, जिसे एलैस्टिकसेर्च में संग्रहीत किया जाएगा। अनिवार्य रूप से, मैं उपयोगकर्ताओं के लिए हमारे लोचदार खोज उदाहरण तक पहुंचने के लिए एक सरल इंटरफ़ेस प्रदान कर रहा हूं। मैं कार्यान्वयन को यथासंभव सरल रखने की कोशिश कर रहा हूं। यहां तक कि मैं अब तक क्या कर रहा हूं। एनईईटी
उम्मीद शरीर के लिए वस्तु:
public class DocumentModel
{
public string Index { get; set; }
public string Type { get; set; }
public string Id { get; set; }
[ElasticProperty(Type = FieldType.Nested)]
public dynamic Document { get; set; }
}
सरल कार्यान्वयन:
[HttpPost]
[Route("")]
public IHttpActionResult Post(DocumentModel document)
{
Uri nodeLocation = new Uri("http://localhost:9200");
IConnectionPool connectionPool = new SniffingConnectionPool(new List<Uri> { nodeLocation });
ConnectionSettings settings = new ConnectionSettings(connectionPool);
ElasticClient esClient = new ElasticClient(settings);
IIndexResponse result = esClient.Index(document, i => i
.Index(document.Index)
.Type(document.Type)
.Id(document.Id));
return Ok(result.IsValid);
}
यह ठीक काम करता है, लेकिन यह सूचकांक, प्रकार शामिल है, और ईद स्रोत में। जो मैं वास्तव में करना चाहता हूं वह इंडेक्सिंग के दौरान केवल उन तीन टुकड़ों की जानकारी प्रदान करता है, लेकिन वास्तव में केवल सूचकांक दस्तावेज़। दस्तावेज़, जो एक गतिशील प्रकार का है। लेकिन, कि, घोंसला से सहमत नहीं के रूप में यह IDE में और संकलन समय पर एक त्रुटि फेंकता लगता है:
"एक अनाम समारोह या विधि समूह एक गतिशील बाध्य आपरेशन के एक घटक मूल्य के रूप में इस्तेमाल नहीं किया जा सकता""एक लैम्ब्डा अभिव्यक्ति का उपयोग किसी गतिशील रूप से प्रेषित ऑपरेशन के लिए तर्क के रूप में नहीं कर सकता है, बिना किसी प्रतिनिधि या अभिव्यक्ति वृक्ष प्रकार के इसे कास्ट किए।"
मैं केवल document.Document
कैसे इंडेक्स कर सकता हूं? गतिशील प्रकार का उपयोग करने से अज्ञात संरचना के आने वाले JSON दस्तावेज़ को संभालने का कोई बेहतर तरीका है?
मेरी इच्छा है कि रॉ। इंडेक्स ने नई इंडेक्स – Adrian
में पुरानी इंडेक्स से माता-पिता के रिश्तों को रखा है 'गतिशील' के विकल्प के रूप में मैंने 'शब्दकोश <स्ट्रिंग, ऑब्जेक्ट>' या कक्षा से उत्तराधिकारी का उपयोग किया है। चेतावनी: यदि आप 'शब्दकोश' एनईईटी से प्राप्त करते हैं तो आपके दस्तावेज़ पर अन्य गुणों को स्वचालित नहीं किया जाएगा (उन्हें इसके बजाय शब्दकोश में डालें)। यह परिवर्तनीय विशेषताओं के लिए भी अच्छी तरह से काम करता है: सामान्य गुण POCO गुणों में चला गया, परिवर्तनीय गुण 'डेटा' गुण (प्रकार' शब्दकोश <स्ट्रिंग, ऑब्जेक्ट> ') के साथ गए। इस थोक विधि का उपयोग करना आसान है। 'इंकर्स' आदि की जांच के लिए 'थोक' पर कॉल का नतीजा न भूलें! – nothingisnecessary