2012-07-05 10 views
23

मुझे सीडीरॉम जैसे ऑफलाइन स्टोरेज में ऑफलाइन एचटीएमएल एप्लिकेशन के लिए क्लाइंट साइड सर्च इंजन बनाने की जरूरत है। मैं इसे पहले ही Win32 के साथ बना रहा हूं और कैटलॉग फ़ाइल 2 जीबी (एमडीबी फाइल) के करीब है।शुद्ध जावास्क्रिप्ट और HTML5 के साथ क्लाइंट साइड पूर्ण पाठ खोज इंजन कैसे बनाएं?

मेरा ऑफ़लाइन वेब एप्लिकेशन सीईएफ (क्रोमियम एंबेडेड फ्रेमवर्क) और फोनगैप का उपयोग करता है ताकि मैं ब्राउज़र वेब सुरक्षा को अक्षम कर सकूं। मैंने सोचा कि इंडेक्सड डीबी मेरी मदद कर सकता है लेकिन, मैं स्टोरेज फ़ाइल को अन्य मीडिया में कॉपी करने के लिए वैसे भी नहीं ढूंढ पाया।

  1. मेरी कैटलॉग फ़ाइल 2 जीबी के करीब होगी, इसलिए मैं स्मृति में सभी रिकॉर्ड नहीं पढ़ सकता।
  2. मुझे फोनगैप के साथ आउटपुट मीडिया क्रॉस-प्लेट बनाने की ज़रूरत है, इसलिए मैं अंतिम खोज के लिए ActiveX ऑब्जेक्ट्स का उपयोग नहीं कर सकता। इसके अलावा मैं उन उपकरणों द्वारा वेब सुरक्षा प्रतिबंध अक्षम कर सकता हूं।
  3. मैं किसी भी विंडोज़ एप्लिकेशन के साथ कैटलॉग फ़ाइल और मीडिया बना सकता हूं। मुख्य नोट कि कैटलॉग से पूछताछ करने वाली आउटपुट फ़ाइल शुद्ध जावास्क्रिप्ट होना चाहिए।

क्या कोई एचटीएमएल 5 बड़ी स्टोरेज सिस्टम उपलब्ध है (मैं फोनजीएपी द्वारा वेब सुरक्षा अक्षम कर सकता हूं) ऑफ़लाइन एचटीएमएल एप्लिकेशन सर्च कैटलॉग बनाने के लिए जिसे अन्य हटाने योग्य मीडिया में कॉपी किया जा सकता है?

+1

एचटीएमएल 5 की बड़ी स्टोरेज सिस्टम [वेब एसक्यूएल] (http://www.html5rocks.com/en/tutorials/webdatabase/todo/) है, लेकिन यह निश्चित रूप से ग्राहक पर डेटा को केंद्रीय रूप से नहीं बचाता है, इसलिए मैं ' मुझे यकीन नहीं है कि यह आपके लिए उपयुक्त है या नहीं। – Utkanos

+1

आपकी टिप्पणी के लिए धन्यवाद लेकिन WebSQL IndexedDB द्वारा बहिष्कृत। इंडेक्सड डीबी मेरे लिए अच्छा है लेकिन मुझे यह जानने की ज़रूरत है कि मैं इंडेक्सड डीबी में विशिष्ट डेटाबेस को अन्य हटाने योग्य मीडिया में कैसे ले जा सकता हूं या कॉपी कर सकता हूं। ऐसा लगता है कि वे क्लाइंट में बस उपलब्ध हैं जो डेटाबेस बनाते हैं और उन्हें अन्य स्थान पर स्थानांतरित नहीं किया जा सकता :( – Madnik7G

उत्तर

1

.json फ़ाइल में पूरा डेटाबेस सहेजना निश्चित रूप से कुशल नहीं होगा, लेकिन आपके डेटाबेस को टुकड़ों में विभाजित करना होगा और मांग पर लोड की गई .json फ़ाइलों को सहेजना ठीक काम करेगा - हालांकि परीक्षण की आवश्यकता होगी।

और - मोंगोडीबी BSON में डेटाबेस स्टोर करता है। आप इस फ़ाइल प्रारूप में अपने डेटाबेस को संग्रहीत करने और इसे अपने एप्लिकेशन से लोड करने के बारे में भी सोच सकते हैं (मैं सुझाव देता हूं कि पूरे डेटाबेस को छोटे हिस्सों में विभाजित करें)।

// संपादित करें - यदि आप फ़ाइल को फ़ाइल के रूप में छोड़ने जा रहे हैं, तो मुझे नहीं लगता कि किसी भी प्रकार की अनुमतियां सेट करना संभव है। आप फ़ाइल को एन्क्रिप्ट/obfuscate करने का प्रयास कर सकते हैं, लेकिन मुझे नहीं पता कि यह प्रदर्शन या डेटाबेस की सामग्री को कैसे प्रभावित करेगा।

और हां, एक स्टैंडअलोन एचटीएमएल + जेएस एप्लीकेशन होना संभव है जो किसी भी प्रकार के सर्वर के बिना बीएसओएन डेटाबेस पढ़ेगा। यदि आप और जानना चाहते हैं तो this link देखें। मैंने इससे पहले सुना है, लेकिन जब शुद्ध जेएस में बीएसओएन फाइलों को संभालने की बात आती है तो मुझे पूरी तरह से कोई अनुभव नहीं है, इसलिए मैं इससे आपकी मदद नहीं कर सकता। सभी मैं कर सकता क्या आप जानते हैं कि ऐसी बात से मौजूद है यह बताने के लिए था :)

+0

धन्यवाद, आप मोंगोडीबी के बारे में परिचय देने के लिए धन्यवाद, लेकिन इसका मतलब है कि मुझे जेएसओएन फ़ाइल प्रारूप के साथ जावास्क्रिप्ट के साथ क्लाइंट डीबीइंजिन बनाना चाहिए? लेकिन यह स्टैंडअलोन प्रोजेक्ट ही है, क्या आप जानते हैं कि क्लाइंट जावास्क्रिप्ट के माध्यम से केवल क्लाइंट जावास्क्रिप्ट के माध्यम से क्लाइंट जावास्क्रिप्ट के माध्यम से क्लाइंट जावास्क्रिप्ट के माध्यम से केवल मोंगोडीबी डेटाबेस तक पहुंच को पढ़ना संभव है? – Madnik7G

+0

@ मैडनिक 7 जी मैंने टिप्पणी के पात्रों की सीमा के कारण मेरा जवाब संपादित कर लिया है। – biphobe

+0

1) मुझे किसी भी सुरक्षा की आवश्यकता नहीं है, मुझे बस संग्रहीत रिकॉर्ड तक तेजी से पहुंच की आवश्यकता है। 2) मैं नहीं जानता कि मैं जवाब के रूप में है या नहीं यह स्वीकार करना चाहिए, यह स्मृति में सभी फाइल देखने के BSON लोड, भी मैं 2GB के पास में क्योंकि मेरी db फ़ाइल db अनुक्रमित की जरूरत है। मुझे आश्चर्य है कि मोंगोडीबी पदानुक्रमित सूचकांक के साथ कई खंड फाइलें बना रहा है क्योंकि इसे जावास्क्रिप्ट द्वारा सभी डीबी लोड नहीं करना चाहिए। क्या आप एक नमूना जानते हैं जो क्लाइंट जावास्क्रिप्ट के साथ mongoDB का उपयोग करता है? – Madnik7G

8

रेयेस इस सटीक उद्देश्य के लिए एक प्रतिलिपि प्राप्त खोज इंजन क्या कर रहा है: https://github.com/reyesr/fullproof

पिछले साल सितंबर में पेरिस जे एस के दौरान उन्होंने किया था अवधारणाओं का एक प्रस्तुति पीछे: http://kornr.net/prez/paris.js22/#/

आशा है कि यह आपकी आवश्यकता का उत्तर देगा।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद। लेकिन जैसा कि मैंने तेजी से अवलोकन किया था, यह कुछ प्रकार के डीबी इंजन है जैसे इंडेक्सडेब कुछ पेशेवरों और विपक्ष के साथ, मेरा मुद्दा यह है कि मेरे वर्तमान डीबी को पूर्व-भरे डेटा के साथ दूसरे कंप्यूटर और फोन पर कैसे स्थानांतरित किया जाए। – Madnik7G

6

मुझे लगता है कि इस बीच lunr.js पर विचार किया जाना चाहिए। इसमें गितूब पर 3 बार सितारे हैं।

संबंधित मुद्दे