/// <summary>
        /// Set up a new index in RAM with three test phrases and the supplied Analyzer.
        /// </summary>
        /// <exception cref="Exception"> if an error occurs with index writer or searcher </exception>
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        //ORIGINAL LINE: @Override public void setUp() throws Exception
        public override void setUp()
        {
            base.setUp();
            analyzer = new ShingleAnalyzerWrapper(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false), 2);
            directory = newDirectory();
            IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig(TEST_VERSION_CURRENT, analyzer));

            Document doc;
            doc = new Document();
            doc.add(new TextField("content", "please divide this sentence into shingles", Field.Store.YES));
            writer.addDocument(doc);

            doc = new Document();
            doc.add(new TextField("content", "just another test sentence", Field.Store.YES));
            writer.addDocument(doc);

            doc = new Document();
            doc.add(new TextField("content", "a sentence which contains no test", Field.Store.YES));
            writer.addDocument(doc);

            writer.close();

            reader = DirectoryReader.open(directory);
            searcher = newSearcher(reader);
        }
        /// <summary>
        /// Set up a new index in RAM with three test phrases and the supplied Analyzer.
        /// </summary>
        /// <exception cref="Exception"> if an error occurs with index writer or searcher </exception>
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void setUp() throws Exception
        public override void setUp()
        {
            base.setUp();
            analyzer  = new ShingleAnalyzerWrapper(new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false), 2);
            directory = newDirectory();
            IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig(TEST_VERSION_CURRENT, analyzer));

            Document doc;

            doc = new Document();
            doc.add(new TextField("content", "please divide this sentence into shingles", Field.Store.YES));
            writer.addDocument(doc);

            doc = new Document();
            doc.add(new TextField("content", "just another test sentence", Field.Store.YES));
            writer.addDocument(doc);

            doc = new Document();
            doc.add(new TextField("content", "a sentence which contains no test", Field.Store.YES));
            writer.addDocument(doc);

            writer.close();

            reader   = DirectoryReader.open(directory);
            searcher = newSearcher(reader);
        }
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        //ORIGINAL LINE: @Override public void setUp() throws Exception
        public override void setUp()
        {
            base.setUp();
            directory = newDirectory();
            IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig(TEST_VERSION_CURRENT, new SimpleAnalyzer(TEST_VERSION_CURRENT)));

            Document doc = new Document();
            doc.add(new StringField("partnum", "Q36", Field.Store.YES));
            doc.add(new TextField("description", "Illidium Space Modulator", Field.Store.YES));
            writer.addDocument(doc);

            writer.close();

            reader = DirectoryReader.open(directory);
            searcher = newSearcher(reader);
        }
Example #4
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void setUp() throws Exception
        public override void setUp()
        {
            base.setUp();
            directory = newDirectory();
            IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig(TEST_VERSION_CURRENT, new SimpleAnalyzer(TEST_VERSION_CURRENT)));

            Document doc = new Document();

            doc.add(new StringField("partnum", "Q36", Field.Store.YES));
            doc.add(new TextField("description", "Illidium Space Modulator", Field.Store.YES));
            writer.addDocument(doc);

            writer.close();

            reader   = DirectoryReader.open(directory);
            searcher = newSearcher(reader);
        }
 //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
 //ORIGINAL LINE: @Override public void setUp() throws Exception
 public override void setUp()
 {
     base.setUp();
     dir = new RAMDirectory();
     appAnalyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
     IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, appAnalyzer));
     int numDocs = 200;
     for (int i = 0; i < numDocs; i++)
     {
       Document doc = new Document();
       string variedFieldValue = variedFieldValues[i % variedFieldValues.Length];
       string repetitiveFieldValue = repetitiveFieldValues[i % repetitiveFieldValues.Length];
       doc.add(new TextField("variedField", variedFieldValue, Field.Store.YES));
       doc.add(new TextField("repetitiveField", repetitiveFieldValue, Field.Store.YES));
       writer.addDocument(doc);
     }
     writer.close();
     reader = DirectoryReader.open(dir);
 }
Example #6
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: @Override public void setUp() throws Exception
        public override void setUp()
        {
            base.setUp();
            dir         = new RAMDirectory();
            appAnalyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
            IndexWriter writer  = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, appAnalyzer));
            int         numDocs = 200;

            for (int i = 0; i < numDocs; i++)
            {
                Document doc = new Document();
                string   variedFieldValue     = variedFieldValues[i % variedFieldValues.Length];
                string   repetitiveFieldValue = repetitiveFieldValues[i % repetitiveFieldValues.Length];
                doc.add(new TextField("variedField", variedFieldValue, Field.Store.YES));
                doc.add(new TextField("repetitiveField", repetitiveFieldValue, Field.Store.YES));
                writer.addDocument(doc);
            }
            writer.close();
            reader = DirectoryReader.open(dir);
        }
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        //ORIGINAL LINE: public void testIndexWriter_LUCENE4656() throws java.io.IOException
        public virtual void testIndexWriter_LUCENE4656()
        {
            Directory directory = newDirectory();
            IndexWriter writer = new IndexWriter(directory, newIndexWriterConfig(TEST_VERSION_CURRENT, null));

            TokenStream ts = new EmptyTokenStream();
            assertFalse(ts.hasAttribute(typeof(TermToBytesRefAttribute)));

            Document doc = new Document();
            doc.add(new StringField("id", "0", Field.Store.YES));
            doc.add(new TextField("description", ts));

            // this should not fail because we have no TermToBytesRefAttribute
            writer.addDocument(doc);

            assertEquals(1, writer.numDocs());

            writer.close();
            directory.close();
        }
Example #8
0
        /*
         * public void testPerFieldAnalyzer() throws Exception {
         * PerFieldAnalyzerWrapper analyzer = new PerFieldAnalyzerWrapper(new SimpleAnalyzer(TEST_VERSION_CURRENT));
         * analyzer.addAnalyzer("partnum", new KeywordAnalyzer());
         *
         * QueryParser queryParser = new QueryParser(TEST_VERSION_CURRENT, "description", analyzer);
         * Query query = queryParser.parse("partnum:Q36 AND SPACE");
         *
         * ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
         * assertEquals("Q36 kept as-is",
         *          "+partnum:Q36 +space", query.toString("description"));
         * assertEquals("doc found!", 1, hits.length);
         * }
         */

//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void testMutipleDocument() throws Exception
        public virtual void testMutipleDocument()
        {
            RAMDirectory dir    = new RAMDirectory();
            IndexWriter  writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
            Document     doc    = new Document();

            doc.add(new TextField("partnum", "Q36", Field.Store.YES));
            writer.addDocument(doc);
            doc = new Document();
            doc.add(new TextField("partnum", "Q37", Field.Store.YES));
            writer.addDocument(doc);
            writer.close();

            IndexReader reader = DirectoryReader.open(dir);
            DocsEnum    td     = TestUtil.docs(random(), reader, "partnum", new BytesRef("Q36"), MultiFields.getLiveDocs(reader), null, 0);

            assertTrue(td.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
            td = TestUtil.docs(random(), reader, "partnum", new BytesRef("Q37"), MultiFields.getLiveDocs(reader), null, 0);
            assertTrue(td.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
        }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void testIndexWriter_LUCENE4656() throws java.io.IOException
        public virtual void testIndexWriter_LUCENE4656()
        {
            Directory   directory = newDirectory();
            IndexWriter writer    = new IndexWriter(directory, newIndexWriterConfig(TEST_VERSION_CURRENT, null));

            TokenStream ts = new EmptyTokenStream();

            assertFalse(ts.hasAttribute(typeof(TermToBytesRefAttribute)));

            Document doc = new Document();

            doc.add(new StringField("id", "0", Field.Store.YES));
            doc.add(new TextField("description", ts));

            // this should not fail because we have no TermToBytesRefAttribute
            writer.addDocument(doc);

            assertEquals(1, writer.numDocs());

            writer.close();
            directory.close();
        }
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        //ORIGINAL LINE: public void testLimitTokenCountIndexWriter() throws java.io.IOException
        public virtual void testLimitTokenCountIndexWriter()
        {
            foreach (bool consumeAll in new bool[] {true, false})
            {
              Directory dir = newDirectory();
              int limit = TestUtil.Next(random(), 50, 101000);
              MockAnalyzer mock = new MockAnalyzer(random());

              // if we are consuming all tokens, we can use the checks,
              // otherwise we can't
              mock.EnableChecks = consumeAll;
              Analyzer a = new LimitTokenCountAnalyzer(mock, limit, consumeAll);

              IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, a));

              Document doc = new Document();
              StringBuilder b = new StringBuilder();
              for (int i = 1;i < limit;i++)
              {
            b.Append(" a");
              }
              b.Append(" x");
              b.Append(" z");
              doc.add(newTextField("field", b.ToString(), Field.Store.NO));
              writer.addDocument(doc);
              writer.close();

              IndexReader reader = DirectoryReader.open(dir);
              Term t = new Term("field", "x");
              assertEquals(1, reader.docFreq(t));
              t = new Term("field", "z");
              assertEquals(0, reader.docFreq(t));
              reader.close();
              dir.close();
            }
        }
        /*
          public void testPerFieldAnalyzer() throws Exception {
        PerFieldAnalyzerWrapper analyzer = new PerFieldAnalyzerWrapper(new SimpleAnalyzer(TEST_VERSION_CURRENT));
        analyzer.addAnalyzer("partnum", new KeywordAnalyzer());

        QueryParser queryParser = new QueryParser(TEST_VERSION_CURRENT, "description", analyzer);
        Query query = queryParser.parse("partnum:Q36 AND SPACE");

        ScoreDoc[] hits = searcher.search(query, null, 1000).scoreDocs;
        assertEquals("Q36 kept as-is",
                  "+partnum:Q36 +space", query.toString("description"));
        assertEquals("doc found!", 1, hits.length);
          }
          */
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        //ORIGINAL LINE: public void testMutipleDocument() throws Exception
        public virtual void testMutipleDocument()
        {
            RAMDirectory dir = new RAMDirectory();
            IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new KeywordAnalyzer()));
            Document doc = new Document();
            doc.add(new TextField("partnum", "Q36", Field.Store.YES));
            writer.addDocument(doc);
            doc = new Document();
            doc.add(new TextField("partnum", "Q37", Field.Store.YES));
            writer.addDocument(doc);
            writer.close();

            IndexReader reader = DirectoryReader.open(dir);
            DocsEnum td = TestUtil.docs(random(), reader, "partnum", new BytesRef("Q36"), MultiFields.getLiveDocs(reader), null, 0);
            assertTrue(td.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
            td = TestUtil.docs(random(), reader, "partnum", new BytesRef("Q37"), MultiFields.getLiveDocs(reader), null, 0);
            assertTrue(td.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
        }
        /// <summary>
        /// Make sure we skip wicked long terms.
        /// </summary>
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        //ORIGINAL LINE: public void testWickedLongTerm() throws java.io.IOException
        public virtual void testWickedLongTerm()
        {
            RAMDirectory dir = new RAMDirectory();
            IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new ClassicAnalyzer(TEST_VERSION_CURRENT)));

            char[] chars = new char[IndexWriter.MAX_TERM_LENGTH];
            Arrays.fill(chars, 'x');
            Document doc = new Document();
            //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
            //ORIGINAL LINE: final String bigTerm = new String(chars);
            string bigTerm = new string(chars);

            // This produces a too-long term:
            string contents = "abc xyz x" + bigTerm + " another term";
            doc.add(new TextField("content", contents, Field.Store.NO));
            writer.addDocument(doc);

            // Make sure we can add another normal document
            doc = new Document();
            doc.add(new TextField("content", "abc bbb ccc", Field.Store.NO));
            writer.addDocument(doc);
            writer.close();

            IndexReader reader = IndexReader.open(dir);

            // Make sure all terms < max size were indexed
            assertEquals(2, reader.docFreq(new Term("content", "abc")));
            assertEquals(1, reader.docFreq(new Term("content", "bbb")));
            assertEquals(1, reader.docFreq(new Term("content", "term")));
            assertEquals(1, reader.docFreq(new Term("content", "another")));

            // Make sure position is still incremented when
            // massive term is skipped:
            DocsAndPositionsEnum tps = MultiFields.getTermPositionsEnum(reader, MultiFields.getLiveDocs(reader), "content", new BytesRef("another"));
            assertTrue(tps.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
            assertEquals(1, tps.freq());
            assertEquals(3, tps.nextPosition());

            // Make sure the doc that has the massive term is in
            // the index:
            assertEquals("document with wicked long term should is not in the index!", 2, reader.numDocs());

            reader.close();

            // Make sure we can add a document with exactly the
            // maximum length term, and search on that term:
            doc = new Document();
            doc.add(new TextField("content", bigTerm, Field.Store.NO));
            ClassicAnalyzer sa = new ClassicAnalyzer(TEST_VERSION_CURRENT);
            sa.MaxTokenLength = 100000;
            writer = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, sa));
            writer.addDocument(doc);
            writer.close();
            reader = IndexReader.open(dir);
            assertEquals(1, reader.docFreq(new Term("content", bigTerm)));
            reader.close();

            dir.close();
        }
        // LUCENE-1448
        // TODO: instead of testing it this way, we can test
        // with BaseTokenStreamTestCase now...
        //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
        //ORIGINAL LINE: public void testEndOffsetPositionWithTeeSinkTokenFilter() throws Exception
        public virtual void testEndOffsetPositionWithTeeSinkTokenFilter()
        {
            Directory dir = newDirectory();
            Analyzer analyzer = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
            IndexWriter w = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer));
            Document doc = new Document();
            TokenStream tokenStream = analyzer.tokenStream("field", "abcd   ");
            TeeSinkTokenFilter tee = new TeeSinkTokenFilter(tokenStream);
            TokenStream sink = tee.newSinkTokenStream();
            FieldType ft = new FieldType(TextField.TYPE_NOT_STORED);
            ft.StoreTermVectors = true;
            ft.StoreTermVectorOffsets = true;
            ft.StoreTermVectorPositions = true;
            Field f1 = new Field("field", tee, ft);
            Field f2 = new Field("field", sink, ft);
            doc.add(f1);
            doc.add(f2);
            w.addDocument(doc);
            w.close();

            IndexReader r = DirectoryReader.open(dir);
            Terms vector = r.getTermVectors(0).terms("field");
            assertEquals(1, vector.size());
            TermsEnum termsEnum = vector.iterator(null);
            termsEnum.next();
            assertEquals(2, termsEnum.totalTermFreq());
            DocsAndPositionsEnum positions = termsEnum.docsAndPositions(null, null);
            assertTrue(positions.nextDoc() != DocIdSetIterator.NO_MORE_DOCS);
            assertEquals(2, positions.freq());
            positions.nextPosition();
            assertEquals(0, positions.startOffset());
            assertEquals(4, positions.endOffset());
            positions.nextPosition();
            assertEquals(8, positions.startOffset());
            assertEquals(12, positions.endOffset());
            assertEquals(DocIdSetIterator.NO_MORE_DOCS, positions.nextDoc());
            r.close();
            dir.close();
        }