public CannedTokenizer(System.IO.TextReader reader, TokenAndPos[] tokens) : base(reader) { this.tokens = tokens; this.termAtt = AddAttribute<ICharTermAttribute>(); this.posIncrAtt = AddAttribute<IPositionIncrementAttribute>(); }
public override sealed bool IncrementToken() { ClearAttributes(); if (upto < tokens.Length) { TokenAndPos token = tokens[upto++]; termAtt.SetEmpty(); termAtt.Append(token.token); posIncrAtt.PositionIncrement = (token.pos - lastPos); lastPos = token.pos; return(true); } else { return(false); } }
public virtual void TestMultiPhraseQueryParsing() { TokenAndPos[] INCR_0_QUERY_TOKENS_AND = new TokenAndPos[] { new TokenAndPos("a", 0), new TokenAndPos("1", 0), new TokenAndPos("b", 1), new TokenAndPos("1", 1), new TokenAndPos("c", 2) }; QueryParser qp = new QueryParser(TEST_VERSION_CURRENT, "field", new CannedAnalyzer(INCR_0_QUERY_TOKENS_AND)); Query q = qp.Parse("\"this text is acually ignored\""); assertTrue("wrong query type!", q is MultiPhraseQuery); MultiPhraseQuery multiPhraseQuery = new MultiPhraseQuery(); multiPhraseQuery.Add(new Term[] { new Term("field", "a"), new Term("field", "1") }, -1); multiPhraseQuery.Add(new Term[] { new Term("field", "b"), new Term("field", "1") }, 0); multiPhraseQuery.Add(new Term[] { new Term("field", "c") }, 1); assertEquals(multiPhraseQuery, q); }
public CannedAnalyzer(TokenAndPos[] tokens) { this.tokens = tokens; }