Dynamic parsing different document types from Elastic Search
I am trying to fetch documents with different types of fields and nested fields from elastic search using NEST SDK and I am having issues parsing the documents into their appropriate types for example YoutubeVideo or TrelloCard which have different fields and structure.
I am doing a free text search across all fields for the different types of documents in a single index and want to dynamically map them to specific C# model class for example Class TrelloCard. I have tried using Generics, pattern matching and so on. However I am unable to return the Source object eg. TrelloCard or YoutubeVideo from my search method.
The JSON search result from Elastic search looks like this for the YoutubeVideo document type and the document data that I want to extract and parse is in the "_source" object:
3 Replies
how exactly are you searching in elastic, do you use ElasticClient.SearchAsync or...?
Yes I use NEST ElasticClient.SearchAsync:
I can show the model schemas as well for the classes in use from the SearchResult
Hey, I just wanted to follow up 🙂
by "i tried using generics" you mean you tried
SearchAsync<TDocument>
?
did you look at the query done from the client? tbh i don't remember at the moment if it excludes the _source but i can parse objects with no issues so i think it doesn't