示例#1
0
        private List <FileVO> LooseFindStringColumn(string name, string columnName)
        {
            List <FileVO>             all            = GetAll();
            List <SortableSearchItem> resultSortable = new List <SortableSearchItem>();
            double curDistance;
            string currentCompareTo;

            for (int i = 0; i < all.Count; i++)
            {
                currentCompareTo = all[i].Name;

                curDistance = Common.Search.StringSearchFunctions.MixedDistance.AverageNormalizedDistance(
                    name, currentCompareTo, ConfigurationManager.LEVENSTEIN_DISTANCE_UPPER_LIMIT);

                if (curDistance > 0)
                {
                    resultSortable.Add(new SortableSearchItem(curDistance, all[i]));
                }
            }

            resultSortable.Sort(SortableSearchItem.GetComparer());
            all.Clear();

            foreach (SortableSearchItem item in resultSortable)
            {
                all.Add(item.Record as FileVO);
            }

            return(all);
        }
示例#2
0
        public List <DocumentVO> Find(List <Filter> filters)
        {
            if (filters.Count == 0)
            {
                return(new List <DocumentVO>());
            }

            SortFilters(filters);
            List <SearchFilter> searchFilters = new List <SearchFilter>();

            foreach (Filter filter in filters)
            {
                searchFilters.Add(FiltersManager.GetFilter(filter));
            }

            List <SortableSearchItem> primaryResult = FindInDB(searchFilters[0]);

            for (int i = 1; i < searchFilters.Count; i++)
            {
                searchFilters[i].Apply(primaryResult);
            }

            primaryResult.Sort(SortableSearchItem.GetComparer());
            List <DocumentVO> res = ExtractNormalList(primaryResult);

            foreach (DocumentVO fol in res)
            {
                ((IDocumentDAO)dataAccessObject).FullLoad(fol);
            }

            return(res);
        }
示例#3
0
        private List <SortableSearchItem> GenerateSortableList(List <DocumentVO> documents)
        {
            List <SortableSearchItem> result = new List <SortableSearchItem>();
            SortableSearchItem        temp;

            for (int i = 0; i < documents.Count; i++)
            {
                temp = new SortableSearchItem((double)i / documents.Count, documents[i]);
                result.Add(temp);
            }

            return(result);
        }