2011-08-10 15 views
5

मैं वास्तव में दोनों Lucene और ravendb पर रस्सियों सीख रहा हूँ - मैं रेवेन में निम्नलिखित दस्तावेज़ है -RavenDB उन्नत Lucene क्वेरी

var searchValue = "InternalEvent:Desec:(" + String.Join(" AND ", searchTerms) + ")"; 
var eventEntities = session.Advanced.LuceneQuery<EventCacheEntity>() 
            .WaitForNonStaleResultsAsOfLastWrite() 
            .Skip(0) 
            .Take(_pageLimit) 
            .Where(searchValue); 

खोज -

{ 
    "InternalEvent": { 
    "Desec": "MachineInfo: 1F8BFBFF000106A5_2103933941_00155D365607_WIN-UWJJ7OPR9TM_1, UserInfo: NT AUTHORITY\\LOCAL SERVICE_3, ProcessInfo: \\Device\\HarddiskVolume1\\Windows\\System32\\taskeng.exe, Pid: 5772, ObjInfo: , EventId: New Process Stopped", 
    "MachineInfo": "1F8BFBFF000106A5_2103933941_00155D365607_WIN-UWJJ7OPR9TM_1", 
    "UserInfo": "NT AUTHORITY\\LOCAL SERVICE_3", 
    "ProcessInfo": "\\Device\\HarddiskVolume1\\Windows\\System32\\taskeng.exe", 
    "Pid": 5772, 
    "ObjInfo": "", 
    "EventId": "New Process Stopped", 
    "Occured": "2011-08-08T23:25:31.8220000+01:00" 
    }, 
    "Key": "6c4abf6a-156e-4224-8eac-72cde756b3c6" 
} 

मैं के साथ डेटा बेस क्वेरी करने कर रहा हूँ किसी भी चीज़ के लिए जैसे सर्च टर्म्स में केवल एक शब्द की तरह मशीन है जो निश्चित रूप से फ़ील्ड desec में है। मैं क्या गलत कर रहा हूं?

मुझे ल्यूसीन क्वेरी सिंटैक्स में नेस्टेड फ़ील्ड्स के बारे में भी यकीन नहीं है- यानी इंटरनेलेवेंट: डीसेक ??

उत्तर

4

वाक्य रचना एकत्रित फ़ील्ड के लिए InternalEvent.Desec है, लेकिन मैं वास्तव में यकीन है कि आप खोज शब्दों

+0

मैं एक करते हैं और डिफ़ॉल्ट या खोज के स्थान पर खोज करना चाहते हैं के साथ क्या करना कोशिश कर रहे हैं नहीं कर रहा हूँ। – NiladriBose

+0

मैंने इसे काम किया .... हम्म आधे काम वास्तव में। मैंने डीसेक क्षेत्र के लिए एक स्थिर सूचकांक जोड़ा और विश्लेषण करने के लिए फ़ील्ड इंडेक्सिंग को बदल दिया। और यह काम करना शुरू कर दिया। मेरी एकमात्र समस्या यह है कि जब मैं इंडेक्स क्रिएशन। क्रिएटइंडेक्स (टाइपऑफ (EventIndex_ByDesc) का उपयोग कर इंडेक्स बनाते समय एक गैर डिफ़ॉल्ट डेटाबेस का उपयोग कर रहा हूं। एस्प्लोर, स्टोर); सूचकांक डिफ़ॉल्ट डेटाबेस में बनाया जाता है। इसलिए मुझे ब्राउज़र इंटरफ़ेस का उपयोग करके मैन्युअल रूप से अनुक्रमणिका बनाना पड़ा। क्या यह प्रोग्रामेटिक तरीके से करने का कोई तरीका है? – NiladriBose

+0

इसका उपयोग करके हल किया गया - var store = new documentStore {url = "http: // localhost: 8080", DefaultDatabase = "Universal"}; और फिर इंडेक्सक्रिएशन को कॉल करना। पता नहीं है कि यह इरादा तरीका है या नहीं? उदाहरण के लिए एक एपीआई संदर्भ .chm है। – NiladriBose