2013-04-08 7 views
9

मैं लोचदार खोज NEST C# क्लाइंट के माध्यम से एक साधारण क्वेरी चला रहा हूं। जब मैं http के माध्यम से एक ही क्वेरी चलाता हूं तो मुझे परिणाम प्राप्त होते हैं, लेकिन मुझे क्लाइंट से शून्य दस्तावेज़ लौटाते हैं।लोचदार खोज NEST क्लाइंट परिणाम वापस नहीं कर रहा

http://localhost:9200/_search?q=adipiscing

यह है कोड मुझे लगता है कि कुछ भी नहीं लौटा रहा है है:

curl -X POST "http://localhost:9200/blog/posts" -d @blog.json

इस पोस्ट अनुरोध एक JSON परिणाम देता है:

यह मैं कैसे डेटा सेट आबादी है ।

public class Connector 
{ 
    private readonly ConnectionSettings _settings; 
    private readonly ElasticClient _client; 

    public Connector() 
    { 
     _settings = new ConnectionSettings("localhost", 9200); 
     _settings.SetDefaultIndex("blog"); 
     _client = new ElasticClient(_settings); 
    } 

    public IEnumerable<BlogEntry> Search(string q) 
    { 
     var result = 
      _client.Search<BlogEntry>(s => s.QueryString(q)); 

     return result.Documents.ToList(); 
    } 
} 

मुझे क्या याद आ रही है? अग्रिम धन्यवाद ..

उत्तर

11

घोंसला प्रकार और सूचकांक नाम लगता है की कोशिश करता है और अपने मामले में यह प्रयोग करेंगे/ब्लॉग/blogentries

blog क्योंकि है कि तुम क्या कहा था डिफ़ॉल्ट सूचकांक है और blogentries क्योंकि यह लोअरकेस जाएगा और Search<T> पर जाने वाले प्रकार के नाम को बहुवचन करें।

आप किस प्रकार और सूचकांक की तरह तो नियंत्रित कर सकते हैं:

.Search<BlogEntry>(s=>s.AllIndices().Query(...)); 

यह घोंसला करने देगा पता है कि तुम वास्तव में सभी सूचकांकों पर खोज करने के लिए और इतने घोंसला जड़ पर /_search में अनुवाद करेंगे, आदेश के बराबर चाहते हैं आप कर्ल पर जारी किया।

क्या आप सबसे अधिक संभावना चाहते हैं: /blog/posts/_search

+0

धन्यवाद एक बहुत में

.Search<BlogEntry>(s=>s.Type("posts").Query(...)); 

ताकि घोंसला खोजें! अब मुझे सही मैपिंग –

+0

धन्यवाद देना है, धन्यवाद, मैं इसके साथ संघर्ष कर रहा था क्योंकि मेरे मॉडल का नाम इंडेक्स नाम से मेल नहीं खाता था। इसके अलावा, ऑब्जेक्ट नाम प्रारंभकर्ता सिंटेक्स का उपयोग करते समय इंडेक्स नाम का अनुमान नहीं लगाया जाता है (मुझे लगता है कि यह सभी अनुक्रमणिका में डिफ़ॉल्ट है)। यह और अधिक स्पष्ट बनाने के लिए एक तरीका है अच्छा होगा। (मैं कहूंगा कि "स्पष्ट से स्पष्ट स्पष्ट है" सिद्धांत यहां काम करेगा) – Giovanni

+0

यह सभी सूचकांकों के लिए डिफ़ॉल्ट नहीं होना चाहिए, भले ही आप ऑब्जेक्ट प्रारंभकर्ता सिंटैक्स का उपयोग करें, दिमाग पर टिकट खोलने वाला दिमाग आपके कोड की तरह दिखता है? –

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