Пример #1
0
        private void CreateIndex(int numHits)
        {
            int numDocs = 500;

            Analyzer analyzer = Analyzer.NewAnonymous(createComponents: (fieldName, reader2) =>
            {
                return(new TokenStreamComponents(new MockTokenizer(reader2, MockTokenizer.WHITESPACE, true)));
            });
            Directory directory = new SeekCountingDirectory(this, new RAMDirectory());
            // note: test explicitly disables payloads
            IndexWriter writer = new IndexWriter(directory, NewIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).SetMaxBufferedDocs(10).SetMergePolicy(NewLogMergePolicy(false)));

            for (int i = 0; i < numDocs; i++)
            {
                Document doc = new Document();
                string   content;
                if (i % (numDocs / numHits) == 0)
                {
                    // add a document that matches the query "term1 term2"
                    content = this.term1 + " " + this.term2;
                }
                else if (i % 15 == 0)
                {
                    // add a document that only contains term1
                    content = this.term1 + " " + this.term1;
                }
                else
                {
                    // add a document that contains term2 but not term 1
                    content = this.term3 + " " + this.term2;
                }

                doc.Add(NewTextField(this.field, content, Documents.Field.Store.YES));
                writer.AddDocument(doc);
            }

            // make sure the index has only a single segment
            writer.ForceMerge(1);
            writer.Dispose();

            SegmentReader reader = GetOnlySegmentReader(DirectoryReader.Open(directory));

            this.searcher = NewSearcher(reader);
        }
        private void  CreateIndex(int numHits)
        {
            int numDocs = 500;

            Directory   directory = new SeekCountingDirectory(this);
            IndexWriter writer    = new IndexWriter(directory, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);

            writer.SetUseCompoundFile(false);
            writer.SetMaxBufferedDocs(10);
            for (int i = 0; i < numDocs; i++)
            {
                Document      doc = new Document();
                System.String content;
                if (i % (numDocs / numHits) == 0)
                {
                    // add a document that matches the query "term1 term2"
                    content = this.term1 + " " + this.term2;
                }
                else if (i % 15 == 0)
                {
                    // add a document that only contains term1
                    content = this.term1 + " " + this.term1;
                }
                else
                {
                    // add a document that contains term2 but not term 1
                    content = this.term3 + " " + this.term2;
                }

                doc.Add(new Field(this.field, content, Field.Store.YES, Field.Index.ANALYZED));
                writer.AddDocument(doc);
            }

            // make sure the index has only a single segment
            writer.Optimize();
            writer.Close();

            SegmentReader reader = SegmentReader.GetOnlySegmentReader(directory);

            this.searcher = new IndexSearcher(reader);
        }
Пример #3
0
 private void  CreateIndex(int numHits)
 {
     int numDocs = 500;
     
     Directory directory = new SeekCountingDirectory(this);
     IndexWriter writer = new IndexWriter(directory, new WhitespaceAnalyzer(), true, IndexWriter.MaxFieldLength.LIMITED);
     writer.UseCompoundFile = false;
     writer.SetMaxBufferedDocs(10);
     for (int i = 0; i < numDocs; i++)
     {
         Document doc = new Document();
         System.String content;
         if (i % (numDocs / numHits) == 0)
         {
             // add a document that matches the query "term1 term2"
             content = this.term1 + " " + this.term2;
         }
         else if (i % 15 == 0)
         {
             // add a document that only contains term1
             content = this.term1 + " " + this.term1;
         }
         else
         {
             // add a document that contains term2 but not term 1
             content = this.term3 + " " + this.term2;
         }
         
         doc.Add(new Field(this.field, content, Field.Store.YES, Field.Index.ANALYZED));
         writer.AddDocument(doc);
     }
     
     // make sure the index has only a single segment
     writer.Optimize();
     writer.Close();
     
     SegmentReader reader = SegmentReader.GetOnlySegmentReader(directory);
     
     this.searcher = new IndexSearcher(reader);
 }
Пример #4
0
        private void CreateIndex(int numHits)
        {
            int numDocs = 500;

            Analyzer analyzer = new AnalyzerAnonymousInnerClassHelper(this);
            Directory directory = new SeekCountingDirectory(this, new RAMDirectory());
            // note: test explicitly disables payloads
            IndexWriter writer = new IndexWriter(directory, NewIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).SetMaxBufferedDocs(10).SetMergePolicy(NewLogMergePolicy(false)));

            for (int i = 0; i < numDocs; i++)
            {
                Document doc = new Document();
                string content;
                if (i % (numDocs / numHits) == 0)
                {
                    // add a document that matches the query "term1 term2"
                    content = this.Term1 + " " + this.Term2;
                }
                else if (i % 15 == 0)
                {
                    // add a document that only contains term1
                    content = this.Term1 + " " + this.Term1;
                }
                else
                {
                    // add a document that contains term2 but not term 1
                    content = this.Term3 + " " + this.Term2;
                }

                doc.Add(NewTextField(this.Field, content, Documents.Field.Store.YES));
                writer.AddDocument(doc);
            }

            // make sure the index has only a single segment
            writer.ForceMerge(1);
            writer.Dispose();

            SegmentReader reader = GetOnlySegmentReader(DirectoryReader.Open(directory));

            this.Searcher = NewSearcher(reader);
        }