Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [ElasticType(Name = "WebResource", SearchAnalyzer = "full_name", IndexAnalyzer = "partial_name", DateDetection = true, NumericDetection = true)]
- public class WebResource
- {
- public string _id;
- [ElasticProperty(Type = FieldType.integer_type, Index = FieldIndexOption.not_analyzed)]
- public string Id
- {
- get
- {
- if (_id == null || _id == Guid.Empty.ToString())
- {
- _id = Guid.NewGuid().ToString();
- }
- return _id;
- }
- set
- {
- _id = value;
- }
- }
- [ElasticProperty(Type = FieldType.string_type, Index = FieldIndexOption.analyzed)]
- public string Keywords { get; set; }
- [ElasticProperty(Type = FieldType.string_type, Index = FieldIndexOption.analyzed)]
- public string Content { get; set; }
- }
- Client.Search<WebResource>(g => g.Query(k => k.Term(l => l.Content, searchText) || k.Term(l => l.Keywords, searchText)).Highlight(k => k.OnFields(p => p.OnField("Keywords"), p => p.OnField("Content")).FragmentSize(200)));
- Action<HighlightFieldDescriptor<WebResource>> actWeb = (t) => t.OnField(g => g.Content);
- Action<HighlightFieldDescriptor<WebResource>> actKey = (t) => t.OnField(g => g.Keywords);
- Action<HighlightDescriptor<WebResource>> higDesc = t => t.OnFields(actWeb,actKey);
- SearchDescriptor<WebResource> searchdesc = new SearchDescriptor<WebResource>();
- searchdesc.Query( t => t.Term( k => k.Content,searchText) || t.Term( l =>l.Keywords,searchText));
- searchdesc.Highlight(higDesc);
- var resp = Client.Search(searchdesc);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement