Lucene.NET can't find some words when searching?
for example "on"
Below is a search for Lucene using the StandardAnalyzer.
Name of the field to search "LcnKey"
LcnKeys = "on lining brake sv"
Let's split the search clause to create a string[]
if keyword="linin brak" it will return the result.
if keyword="linin brak on" it does not return the result.
var searchTerms = keyword.Split(' ').Where(x => !string.IsNullOrEmpty(x)).ToArray();
BooleanQuery lcnKeyQuery = new BooleanQuery();
foreach (var lcnKey in searchTerms)
{
if (lcnKey.Length <= 3)
lcnKeyQuery.Add(new TermQuery(new Term("LcnKeys", $"{lcnKey}")), Occur.MUST);
else
lcnKeyQuery.Add(new WildcardQuery(new Term("LcnKeys", $"*{lcnKey}*")), Occur.MUST);
}
var scoreDocs = indexSearcher.Search(lcnKeyQuery, 1000).ScoreDocs;
lcnKeyQuery={(+LcnKeys:on+LcnKeys:*brak* +LcnKeys:*linin*)} => this query does not find the relevant row
lcnKeyQuery={(+LcnKeys:sv+LcnKeys:*brak* +LcnKeys:*linin*)} => this query finds the relevant row