public Query getQuery(Element e) throws ParserException {String fieldName = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName");String text = DOMUtils.getNonBlankTextOrFail(e);BooleanQuery.Builder bq = new BooleanQuery.Builder();bq.setMinimumNumberShouldMatch(DOMUtils.getAttribute(e, "minimumNumberShouldMatch", 0));try (TokenStream ts = analyzer.tokenStream(fieldName, text)) {TermToBytesRefAttribute termAtt = ts.addAttribute(TermToBytesRefAttribute.class);Term term = null;ts.reset();while (ts.incrementToken()) {term = new Term(fieldName, BytesRef.deepCopyOf(termAtt.getBytesRef()));bq.add(new BooleanClause(new TermQuery(term), BooleanClause.Occur.SHOULD));}ts.end();}catch (IOException ioe) {throw new RuntimeException("Error constructing terms from index:" + ioe);}Query q = bq.build();float boost = DOMUtils.getAttribute(e, "boost", 1.0f);return new BoostQuery(q, boost);}

public Query getQuery ( Element e ) throws ParserException { String fieldName = DOMUtils . getAttributeWithInheritanceOrFail ( e , "fieldName" ) ; String text = DOMUtils . getNonBlankTextOrFail ( e ) ; BooleanQuery . Builder bq = new BooleanQuery . Builder ( ) ; bq . setMinimumNumberShouldMatch ( DOMUtils . getAttribute ( e , "minimumNumberShouldMatch" , 0 ) ) ; try ( TokenStream ts = analyzer . tokenStream ( fieldName , text ) ) { TermToBytesRefAttribute termAtt = ts . addAttribute ( TermToBytesRefAttribute . class ) ; Term term = null ; ts . reset ( ) ; while ( ts . incrementToken ( ) ) { term = new Term ( fieldName , BytesRef . deepCopyOf ( termAtt . getBytesRef ( ) ) ) ; bq . add ( new BooleanClause ( new TermQuery ( term ) , BooleanClause . Occur . SHOULD ) ) ; } ts . end ( ) ; } catch ( IOException ioe ) { throw new RuntimeException ( "Error constructing terms from index:" + ioe ) ; } Query q = bq . build ( ) ; float boost = DOMUtils . getAttribute ( e , "boost" , 1.0f ) ; return new BoostQuery ( q , boost ) ; }
public virtual Query GetQuery(XmlElement e){string fieldName = DOMUtils.GetAttributeWithInheritanceOrFail(e, "fieldName");string text = DOMUtils.GetNonBlankTextOrFail(e);BooleanQuery bq = new BooleanQuery(DOMUtils.GetAttribute(e, "disableCoord", false));bq.MinimumNumberShouldMatch = DOMUtils.GetAttribute(e, "minimumNumberShouldMatch", 0);TokenStream ts = null;try{ts = analyzer.GetTokenStream(fieldName, text);ITermToBytesRefAttribute termAtt = ts.AddAttribute<ITermToBytesRefAttribute>();Term term = null;BytesRef bytes = termAtt.BytesRef;ts.Reset();while (ts.IncrementToken()){termAtt.FillBytesRef();term = new Term(fieldName, BytesRef.DeepCopyOf(bytes));bq.Add(new BooleanClause(new TermQuery(term), Occur.SHOULD));}ts.End();}catch (IOException ioe){throw new Exception("Error constructing terms from index:" + ioe);}finally{IOUtils.DisposeWhileHandlingException(ts);}bq.Boost = DOMUtils.GetAttribute(e, "boost", 1.0f);return bq;}
