/* * This shows how to construct a phrase query containing shingles. */ //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public void testShingleAnalyzerWrapperPhraseQuery() throws Exception public virtual void testShingleAnalyzerWrapperPhraseQuery() { PhraseQuery q = new PhraseQuery(); TokenStream ts = analyzer.tokenStream("content", "this sentence"); try { int j = -1; PositionIncrementAttribute posIncrAtt = ts.addAttribute(typeof(PositionIncrementAttribute)); CharTermAttribute termAtt = ts.addAttribute(typeof(CharTermAttribute)); ts.reset(); while (ts.incrementToken()) { j += posIncrAtt.PositionIncrement; string termText = termAtt.ToString(); q.add(new Term("content", termText), j); } ts.end(); } finally { IOUtils.closeWhileHandlingException(ts); } ScoreDoc[] hits = searcher.search(q, null, 1000).scoreDocs; int[] ranks = new int[] { 0 }; compareRanks(hits, ranks); }
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); }
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(); }
/* * This shows how to construct a phrase query containing shingles. */ //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public void testShingleAnalyzerWrapperPhraseQuery() throws Exception public virtual void testShingleAnalyzerWrapperPhraseQuery() { PhraseQuery q = new PhraseQuery(); TokenStream ts = analyzer.tokenStream("content", "this sentence"); try { int j = -1; PositionIncrementAttribute posIncrAtt = ts.addAttribute(typeof(PositionIncrementAttribute)); CharTermAttribute termAtt = ts.addAttribute(typeof(CharTermAttribute)); ts.reset(); while (ts.incrementToken()) { j += posIncrAtt.PositionIncrement; string termText = termAtt.ToString(); q.add(new Term("content", termText), j); } ts.end(); } finally { IOUtils.closeWhileHandlingException(ts); } ScoreDoc[] hits = searcher.search(q, null, 1000).scoreDocs; int[] ranks = new int[] {0}; compareRanks(hits, ranks); }