private static ISearchBuilder CreateSearchBuilder(IIndex index, string[] positiveTerms, string[] negativeTerms) { var searchBuilder = index.CreateSearchBuilder(); // Search positive terms foreach (var item in positiveTerms) { if (item.IndexOf("-") > 0 || item.IndexOf("-") == (item.Length - 1)) { searchBuilder = searchBuilder .WithField(Common.DocumentIndex.FieldNames.Content, item.ToLower(), item.Contains("*")) .NotAnalyzed(); } else { searchBuilder = searchBuilder .WithField(Common.DocumentIndex.FieldNames.Content, item.ToLower(), item.Contains("*")) .ExactMatch() .Mandatory(); } } // Search negative terms foreach (var item in negativeTerms) { searchBuilder = searchBuilder .WithField(Common.DocumentIndex.FieldNames.Content, item.ToLower(), false) .Forbidden(); } searchBuilder .SortByInteger(Common.DocumentIndex.FieldNames.DocumentCode) .Ascending(); return(searchBuilder); }