Question: Why is the boolean #fuzzy query in elastic search not returning results?
Please 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)
).Sort(a => a.Descending(k => k.Score)))
Write an Article
If this helped you leave a comment below.