का उपयोग करके लोचदार खोज NEST दृढ़ता से टाइप किए गए क्लाइंट का उपयोग करके मैं सी # में लोचदार खोज का उपयोग कर रहा हूं। मैं एक सूचकांक प्रविष्टियां युक्त है:नेस्ट फील्ड बूस्टिंग
[ElasticType(Name = "Entry", IdProperty = "Id")]
public class Entry
{
public string Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Award { get; set; }
public int Year { get; set; }
}
कहाँ वर्ष प्रविष्टि, जैसे 2012 के वर्ष है, और पुरस्कार एंट्री जीता के प्रकार, जो अशक्त हो सकता है।
मैं फिर विभिन्न गुणों के लिए बूस्टिंग का उपयोग करके इन प्रविष्टियों को खोजना चाहता हूं। निम्नलिखित कोड में, मैं विवरण पर मिलान करने वाले लोगों की तुलना में, शीर्षक पर मिलान करने वाले परिणामों को उच्च स्थान पर रखना चाहता हूं।
private IQueryResponse<Entry> GetMatchedEntries(string searchText)
{
return _elasticClient.Search<Entry>(
body =>
body.Query(q =>
q.QueryString(qs =>
qs.OnFieldsWithBoost(d =>
d.Add(entry => entry.Title, 5.0)
.Add(entry => entry.Description, 2.0))
.Query(searchText))));
}
मैं अब उन है जो पुरस्कार जीता द्वारा परिणामों को बढ़ावा, और भी नए प्रविष्टियां (वर्ष तक यानी) बढ़ाने के लिए कहा गया है।
मैं यह कैसे कर सकता हूं? क्या यह ऐसा कुछ है जो अनुक्रमण सेवा के हिस्से के रूप में या खोज के हिस्से के रूप में किया जाना चाहिए?
इस Martijn पोस्ट करने के लिए धन्यवाद:
देखते हैं। –
यह ध्यान दिया जाना चाहिए कि यह केवल Elasticsearch <1.0 के साथ काम करेगा। आपको Elasticsearch> = 1.0 में फ़ंक्शन स्कोर क्वेरी का उपयोग करना चाहिए। https://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-function-score-query.html। Https://www.elastic.co/guide/en/elasticsearch/reference/0.90/query-dsl-function-score-query.html के समाधान भी देखें –