Home > Articles > Details

Why is the boolean fuzzy query in elasticsearch not returning results


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.


If you log in, you will be notified when someone leaves a comment.

Other users would like to know if this solution helped you.


© 2022 - ErnesTech - Privacy