示例#1
0
        public Searcher(string mainFolder, string taxonomyFolder, string thumbsFolder)
        {
            MaxResultCount = 50;
            mainSearchManager = new SearchManager(FSDirectory.open(new java.io.File(mainFolder)));
            taxonomyReader = new DirectoryTaxonomyReader(FSDirectory.open(new java.io.File(taxonomyFolder)));

            analyzer = FindAPhotoAnalyzers.ForSearching();
            parser = new MultiFieldQueryParser(FieldName.DefaultSearchFields, analyzer);
            parser.setAllowLeadingWildcard(true);

            thumbSearchManager = new SearchManager(FSDirectory.open(new java.io.File(thumbsFolder)));

            using (var wrapper = mainSearchManager.Wrapper())
            {
                indexPreferences = new IndexPreferences(wrapper.IndexSearcher);
            }
        }
        private void VisitAllDocuments(IndexWriter writer, Action<IndexWriter,Document> action)
        {
            using (var searchManager = new SearchManager(writer.getDirectory()))
            {
                using (var search = searchManager.Wrapper())
                {
                    var results = search.IndexSearcher.search(new MatchAllDocsQuery(), writer.maxDoc());
                    for (int idx = 0; idx < results.totalHits; ++idx)
                    {
                        if (shutdown)
                        {
                            break;
                        }

                        CheckForCommit(writer);
                        action(writer, search.IndexSearcher.doc(results.scoreDocs[idx].doc));
                    }
                }
            }
        }