मुझे सही दिशा में एक सूचक नहीं मिल रहा है, मुझे यह भी यकीन नहीं है कि मुझे कौन से नियमों का शोध करना चाहिए, लेकिन गुगलिंग के अनगिनत घंटे मुझे मंडलियों में कताई कर रहे हैं , इसलिए उम्मीद है कि स्टैक ओवरफ्लो की खुफिया जानकारी के सामूहिक छिद्र मदद कर सकते हैं।मूल्यांकन बूलियन तर्क पेड़ की दिशा में मार्गदर्शन की आवश्यकता है
समस्या यह है कि मुझे डेटा को फ़िल्टर करने का एक तरीका चाहिए जिसे मैं केवल यौगिक तर्क वृक्ष कह सकता हूं। वर्तमान में प्रणाली एक सरल और फ़िल्टरिंग प्रणाली लागू करता है। उदाहरण के लिए, मान लें कि हमारे पास लोगों का डेटासेट है। आप फिल्टर का एक समूह जोड़ते हैं जो सभी लोगों को दिखाता है जहां (लिंग = महिला) और (आयु> 23) और (आयु < 30) और (स्थिति = एकल)। आसान है, प्रत्येक आइटम के माध्यम से पुनरावृत्त, केवल एक वैध आइटम संग्रह में जोड़ें अगर हर शर्त सच है।
मुझे जिस समस्या का सामना करना पड़ रहा है वह यह है कि मैं उपयोगकर्ता को जटिल प्रश्नों को शामिल करने में सक्षम होने के तरीके को कैसे संभाला जा सकता हूं? मैं एक पेड़ की तरह कुछ सोच रहा हूं जहां प्रत्येक नोड प्रतिनिधित्व करता है और अभिव्यक्ति अपने बच्चों को सही या गलत करने का मूल्यांकन करती है। एक सरल उदाहरण होगा - (नीचे लिंग == पुरुष और आयु == 25) या (लिंग == महिला और स्थिति == सिंगल)) और IQ> 120. क्षमा करें मैं एक बेहतर उदाहरण के बारे में नहीं सोच सकता क्षण। लेकिन आप इस प्रकार के अभिव्यक्ति पेड़ का प्रतिनिधित्व करने और इन फ़िल्टरों के खिलाफ संग्रह में वस्तुओं का मूल्यांकन करने के बारे में कैसे जाएंगे। कुछ संदर्भ क्या हैं जो मदद करेंगे? नरक, कुछ ख़राब Google खोज क्या हैं जो सकारात्मक दिशा में ले जा सकते हैं ?!
किसी भी व्यक्ति को धन्यवाद जो कोई सहायता प्रदान कर सकता है। मुझे दिखाओ सभी लोगों को जहां सेक्स पुरुष है और आंखों के रंग हरा होता है या सेक्स महिलाएं हैं, आंखें नीली हैं, या -
यहाँ लोगों की एक डेटासेट का उपयोग करके
- क्वेरी पेड़ के रूप में एक यौगिक क्वेरी का एक उदाहरण है स्थिति एकल है। माता-पिता के रूप में (लिंग == पुरुष & & आंखें == हरा) || (सेक्स == महिला & & (आंखें == ब्लू || स्थिति == एकल))
तो पेड़ रूप im में सोच रही थी
o-Root Node
- And - Sex = Male
- And - Eyes = Blue
- Or - Sex = Female
- And Eyes = Blue
- Or Status = Single
मेरा मानना है कि समाधान में इस तरह के प्रत्येक नोड का प्रतिनिधित्व करने के लिए है जैसे
Node
{
OpType - AND or OR
ExpressionField - The field to evaluate
ExpressionOp - =, !=, >, >=, <, <=
ExpressionValue - the value to compare the field's value against
Function Evaluate() - returns a bool
}
किसी दिए गए नोड के लिए
तो एक डेटा संरचना, chilren का मूल्यांकन, यदि आप एक और नोड कर रहे हैं, तो सच वापसी अगर सच में अपनी अभिव्यक्ति परिणाम और अपने सभी बच्चों और सच या किसी का मूल्यांकन या बच्चा सच्चाई का मूल्यांकन करता है और फिर से काम करता है।
हर वैचारिक स्थिति को पूरा करने के लिए लगता है जिसे मैं फेंक सकता हूं, लेकिन जब से मैं इसे लागू करता हूं तब से हम इसे तब तक करेंगे। मैं बाद में असली कोड पोस्ट करूंगा जब इसकी कामकाजी और चित्र दूसरों के लिए इस समस्या का बेहतर वर्णन करने में मदद करें।
सुझाव दें कि आप स्पष्ट करते हैं कि आपका डेटा किस प्रकार है: SQL डीबी? मुझे लगता है कि "as3" टैग एक्शनस्क्रिप्ट 3 को संदर्भित करता है: यदि हां, तो क्या आप वास्तव में सी # या एएस 3 विशिष्ट तकनीकों की तलाश में हैं, या सिर्फ "सिद्धांत" के लिए? – BillW
डेटा स्मृति में है, हालांकि तकनीकी रूप से कार्यान्वयन फ्लैश और चांदी की रोशनी दोनों में है, लेकिन मैं एक विशिष्ट कार्यान्वयन की तुलना में सामान्य समाधान को समझने में बहुत अधिक रुचि रखता हूं। समस्या के क्रूक्स में उपयोगकर्ता को यूआई प्रस्तुत करना शामिल है जो उन्हें डेटासेट को फ़िल्टर करने के लिए गतिशील रूप से जटिल क्वेरी बनाने की अनुमति देता है। मुझे क्वेरी का प्रतिनिधित्व करने के लिए एक ठोस डेटा संरचना की आवश्यकता है। प्रकार - - अब तक मैं के लिए एक नोड निम्नलिखित है और या या - फील्ड - ऑपरेशन -! - डाटासेट इस नोड लक्षित कर रहा है के क्षेत्र =, =,>, < <=, > = - मान - मूल्य – JTtheGeek
के खिलाफ ऑपरेशन लागू करने के लिए स्पष्ट स्पष्टीकरण! मेरा सुझाव है कि आप स्पष्ट करते हैं कि डेटा संरचना सी #/सिल्वरलाइट में है: यदि ऐसा है, तो मुझे लगता है कि आप "भारी उठाने" के लिए लिंक का उपयोग करेंगे। यदि आप पहले से ही लिंक के साथ उच्च स्तर पर हैं, लैम्बडा, अज्ञात विधियों इत्यादि का उपयोग करते हुए, यह एक बात है: यदि आप नहीं हैं, तो आप लिंक अध्ययन संसाधनों पर एसओ (यदि आप इसके लिए पूछते हैं) पर अच्छी सलाह ले सकते हैं (इमो जोन स्कीट की "सी # गहराई" लिंक पर शानदार सी # पुस्तक है जो लिंक के शानदार कवरेज के साथ है)। यह आपके विचार के लिए अप्रासंगिक हो सकता है, लेकिन आप कुंजी के रूप में "जो भी" कुंजी और निष्पादन योग्य (अनाम) विधियों के साथ एक शब्दकोश का उपयोग कर सकते हैं। - बिलडब्ल्यू – BillW