2013-08-21 5 views
5

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

.Query(qry => qry 
    .QueryString(qs => qs 
     .Query(qString) 
    ) 
) 
.Highlight(h => h 
    .PreTags("<b>") 
    .PostTags("</b>") 
    .OnFields(f => f 
     .OnField("Title") 
     .OnField("Summary") 
    ) 
) 

का अर्थ है कि मुझे केवल "सारांश" फ़ील्ड से लौटाई गई हाइलाइट मिलती है। यदि मैं सीधे समकक्ष क्वेरी के साथ elasticsearch से पूछता हूं तो मैं दोनों क्षेत्रों से हाइलाइट पुनर्प्राप्त कर सकता हूं। उदा।

{ 
    "query": { 
    "query_string": { 
     "query": "apple" 
    } 
    }, 
    "highlight": { 
    "pre_tags": ["<b>"], 
    "post_tags": ["</b>"], 
    "fields": { 
     "Title": {}, 
     "Summary": {} 
    } 
    } 
} 

क्या यह नेस्ट के साथ ऐसा करना संभव है? क्या मुझसे कुछ गलत हो रही है?

उत्तर

8

प्रत्येक हाइलाइट किए गए फ़ील्ड को एक अलग "ओनफ़ील्ड" की आवश्यकता होती है।

.Highlight(h => h 
    .PreTags("<b>") 
    .PostTags("</b>") 
    .OnFields(
     f => f.OnField("Title"), 
     f => f.OnField("Summary") 
    ) 
) 

एक और उदाहरण देखें here

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