Beispiel #1
0
        /// <param name="targetTable"> target table or view</param>
        /// <returns></returns>
        private SearchJob BuildSearchJob(string targetTable)
        {
            const int IndexCacheCount = 3;

            SearchJob search = new SearchJob();

            BuildIndexRoot();

            string indexPath = _indexDir;

            if (string.IsNullOrEmpty(indexPath))
            {
                indexPath = BuildIndexPath(targetTable);
            }

            if (!IndexExists(indexPath))
            {
                throw new Exception("Invalid index path: " + indexPath);
            }

            search.IndexesToSearch.Add(indexPath);
            search.SearchFlags        = search.SearchFlags | SearchFlags.dtsSearchDelayDocInfo;
            search.MaxFilesToRetrieve = _maxHitCount;

            if (_enableDtIndexCache)
            {
                if (_cache == null)
                {
                    _cache = new IndexCache(IndexCacheCount);
                }
                search.SetIndexCache(_cache);
            }

            return(search);
        }