Question: Why is the boolean #fuzzy query in elastic search not returning results?
Login to See the Rest of the Answer
Answer: If you are using the #NEST #ElasticSearch library in #Asp.Net Core C# Application, the field you are trying to query using a Fuzzy boolean query should be of the type "Keyword". When you index your data into Elastic Search there are types you set to let Elastic #Search index the data and chunk it appropriately.
However, if your data was indexed using #Dynamic Indexing where Elastic Search figures out what the type of that specific data field is, then the Fuzzy #query will work if you pass in one single word as a query. Keep in mind that this word should not contain any characters like (" or, or + or % or &) otherwise it won't work. See the code below:
string query = OriginalQuery.Replace("-", " ").Replace("%", " ").Replace("?", " ").Replace("#", " ").Replace(":", "").Replace("<", "").Replace(">", "").Replace("+", ""); var response = await _elasticClient.SearchAsync<POCO> (s => s.Query(q => q.Fuzzy(b => b.Field(k => k.MyFieldToQueryOn) .Value(query) .Fuzziness(Fuzziness.Auto) .MaxExpansions(1000000) ) ).Sort(a => a.Descending(k => k.Score))) .ConfigureAwait(false);
If this helped you leave a comment below.