/** * create a FieldQuery object. * * @param query a query * @return the created FieldQuery object */ public FieldQuery getFieldQuery( Query query ){ return new FieldQuery( query, phraseHighlight, fieldMatch ); }
/** * create a {@link FieldQuery} object. * * @param query a query * @return the created {@link FieldQuery} object */ public FieldQuery getFieldQuery( Query query, IndexReader reader ) throws IOException { return new FieldQuery( query, reader, phraseHighlight, fieldMatch ); }
/** * create a {@link FieldQuery} object. * * @param query a query * @return the created {@link FieldQuery} object */ public FieldQuery getFieldQuery( Query query ) { // TODO: should we deprecate this? // because if there is no reader, then we cannot rewrite MTQ. try { return new FieldQuery( query, null, phraseHighlight, fieldMatch ); } catch (IOException e) { // should never be thrown when reader is null throw new RuntimeException (e); } }
public static void main( String[] args ) throws Exception { Analyzer analyzer = new WhitespaceAnalyzer(); QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "f", analyzer ); Query query = parser.parse( "a x:b" ); FieldQuery fieldQuery = new FieldQuery( query, true, false ); Directory dir = new RAMDirectory(); IndexWriter writer = new IndexWriter( dir, analyzer, MaxFieldLength.LIMITED ); Document doc = new Document(); doc.add( new Field( "f", "a a a b b c a b b c d e f", Store.YES, Index.ANALYZED, TermVector.WITH_POSITIONS_OFFSETS ) ); doc.add( new Field( "f", "b a b a f", Store.YES, Index.ANALYZED, TermVector.WITH_POSITIONS_OFFSETS ) ); writer.addDocument( doc ); writer.close(); IndexReader reader = IndexReader.open( dir, true ); FieldTermStack ftl = new FieldTermStack( reader, 0, "f", fieldQuery ); reader.close(); }