public virtual void TestDemo() { Analyzer analyzer = new MockAnalyzer(random()); // Store the index in memory: Directory directory = newDirectory(); // To store an index on disk, use this instead: // Directory directory = FSDirectory.open(new File("/tmp/testindex")); RandomIndexWriter iwriter = new RandomIndexWriter(random(), directory, analyzer); Document doc = new Document(); string longTerm = "longtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongtermlongterm"; string text = "this is the text to be indexed. " + longTerm; doc.add(newTextField("fieldname", text, Field.Store.YES)); iwriter.addDocument(doc); iwriter.close(); // Now search the index: IndexReader ireader = DirectoryReader.open(directory); // read-only=true IndexSearcher isearcher = newSearcher(ireader); Assert.AreEqual(1, isearcher.search(new TermQuery(new Term("fieldname", longTerm)), 1).totalHits); Query query = new TermQuery(new Term("fieldname", "text")); TopDocs hits = isearcher.search(query, null, 1); Assert.AreEqual(1, hits.totalHits); // Iterate through the results: for (int i = 0; i < hits.scoreDocs.length; i++) { Document hitDoc = isearcher.doc(hits.scoreDocs[i].doc); Assert.AreEqual(text, hitDoc.get("fieldname")); } // Test simple phrase query PhraseQuery phraseQuery = new PhraseQuery(); phraseQuery.add(new Term("fieldname", "to")); phraseQuery.add(new Term("fieldname", "be")); Assert.AreEqual(1, isearcher.search(phraseQuery, null, 1).totalHits); ireader.close(); directory.close(); }
private IList<Query> BuildQueries() { IList<Query> queries = new List<Query>(); BooleanQuery booleanAB = new BooleanQuery(); booleanAB.add(new TermQuery(new Term("contents", "a")), BooleanClause.Occur_e.SHOULD); booleanAB.add(new TermQuery(new Term("contents", "b")), BooleanClause.Occur_e.SHOULD); queries.Add(booleanAB); PhraseQuery phraseAB = new PhraseQuery(); phraseAB.add(new Term("contents", "a")); phraseAB.add(new Term("contents", "b")); queries.Add(phraseAB); PhraseQuery phraseABC = new PhraseQuery(); phraseABC.add(new Term("contents", "a")); phraseABC.add(new Term("contents", "b")); phraseABC.add(new Term("contents", "c")); queries.Add(phraseABC); BooleanQuery booleanAC = new BooleanQuery(); booleanAC.add(new TermQuery(new Term("contents", "a")), BooleanClause.Occur_e.SHOULD); booleanAC.add(new TermQuery(new Term("contents", "c")), BooleanClause.Occur_e.SHOULD); queries.Add(booleanAC); PhraseQuery phraseAC = new PhraseQuery(); phraseAC.add(new Term("contents", "a")); phraseAC.add(new Term("contents", "c")); queries.Add(phraseAC); PhraseQuery phraseACE = new PhraseQuery(); phraseACE.add(new Term("contents", "a")); phraseACE.add(new Term("contents", "c")); phraseACE.add(new Term("contents", "e")); queries.Add(phraseACE); return queries; }