Я был действительно успешен с самого начала с MultiFieldQueryParser (Lucene 3.0.3):
public class MultiFieldQueryParserTests {
@Test
public void testMultiFieldQueryParser() throws Exception {
MultiFieldQueryParser parser = new MultiFieldQueryParser(Version.LUCENE_30,
new String[] { "field1", "field2", "field3" },
new WhitespaceAnalyzer());
Query q = parser.parse("test phrase*");
System.out.println("query " + q);
q = parser.parse("\"test phrase*\"");
System.out.println("query " + q);
}
}
Что приводит к:
query (field1:test field2:test field3:test) (field1:phrase* field2:phrase* field3:phrase*)
query field1:"test phrase*" field2:"test phrase*" field3:"test phrase*"
Или я что-то здесь упустил?