Ejemplo n.º 1
0
        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);
        }