From: Manuel F. <M.F...@ca...> - 2009-06-22 08:52:23
|
A send the mail to early :) The queries are incorrect in the mail: Here are the correct : >From Java: +(CNS_CAT:testcat CNS_DAT:testcat) +(CNS_CAT:barfoo CNS_DAT:barfoo) >From C: (+CNS_CAT:testcat +CNS_DAT:testcat) (+CNS_CAT:barfoo +CNS_DAT:barfoo) Sorry Manuel. Von: Manuel Freiholz [mailto:M.F...@ca...] Gesendet: Montag, 22. Juni 2009 10:17 An: clu...@li... Betreff: [CLucene-dev] MultiFieldQueryParser - compared to Java Hi, i have an index with the following fields and data (clucene 0.9.21b): | CNS_PATHID | CNS_CAT | CNS_DAT ------------------------------------------- | 1 | testcat | foobar | 2 | testcat | barfoo | 3 | testcat2 | boingflip (Default operator AND) When I search for "testcat barfoo" over the fields CNS_CAT and CNS_DAT I want the result "2". I use the MultiFieldQueryParser to generate a Query object from the user query. If I do this in Java, everything works. Generated query from Java: +(CNS_CAT:testcat CNS_CAT:testcat) +(CNS_DAT: barfoo CNS_DAT:barfoo) The query means, that the value "testcat" and "barfoo" MUST exist in ANY of the given fields. If I do this with C, I get the following generated query: Generated query from C: (+CNS_CAT:testcat +CNS_DAT:testcat) ( The query means, that the value "testcat" and "barfoo" MUST exist in ALL of the given fields. It also seems like, that the change with "setDefaultOperator" has no effect. I hardcoded it into the QueryParserBase constructor to have an effect. Where is my mistake?^^ Thank you very much. Manuel. |