Hello, Thanks for your answer.
I mean that in the second case listed in my mail, the query is parsedQuery = +(DisjunctionMaxQuery(((edgefield1:musee)^1.1 | edgefield2:musee)) DisjunctionMaxQuery(((edgefield1:maillol)^1.1 | edgefield2:maillol)) DisjunctionMaxQuery(((edgefield1:61)^1.1 | edgefield2:61)) DisjunctionMaxQuery(((edgefield1:r)^1.1 | edgefield2:r)) DisjunctionMaxQuery(((edgefield1:grenelle)^1.1 | edgefield2:grenelle)) DisjunctionMaxQuery(((edgefield1:75007)^1.1 | edgefield2:75007)) DisjunctionMaxQuery(((edgefield1:paris)^1.1 | edgefield2:paris)))~7 and so the way I read it is "musee" can match edgefield1 OR edgefield2, "maillol" can match edgefield1 OR edgefield2, and so on, so solr can return a doc where some query words match with edgefield1 and some other query words with edgefield2. But in the first case listed in my mail parsedQuery = "+DisjunctionMaxQuery((((wordfield:musee wordfield:maillol wordfield:61 Synonym(wordfield:r wordfield:ru wordfield:rue) wordfield:grenelle wordfield:75007 wordfield:paris)~7)^1.1 | ((edgefield:musee edgefield:maillol edgefield:61 edgefield:r edgefield:grenelle edgefield:75007 edgefield:paris)~7)))" The OR is different, it is all words must match wordfield OR all words must match edgefield, but no mix between the two fields are allowed. So I cannot search both fields at the same time. I hope this is clear! I would like to search both fields in same query. Best regards, Elisabeth Le lun. 13 nov. 2023 à 17:02, Mikhail Khludnev <m...@apache.org> a écrit : > Hello Elisabeth. > DisMax analyses user input across the given qf fields. If the number of > resulting tokens are different it can't apply defaults logic - per word sum > over per field maximums; and flips to max over sums. The good news is that > the difference between two approaches is only scoring. > WDYM exactly by absence of "matching words to be in two different fields"? > > On Mon, Nov 13, 2023 at 5:01 PM elisabeth benoit < > elisaelisael...@gmail.com> > wrote: > > > Hello, > > > > I am using solr 7.3.1 with ExtendedDismaxQParser. > > > > I have a edgengrams field and a normal text field. When I mix those two > in > > the same query, ie *qf=edgefield wordfield* and use option > *debugQuery=on*, > > I see that the parsedQuery is different, ie all words should match the > same > > field. > > > > ie parsedQuery = > > > > "+DisjunctionMaxQuery((((wordfield:musee wordfield:maillol wordfield:61 > > Synonym(wordfield:r wordfield:ru wordfield:rue) wordfield:grenelle > > wordfield > > :75007 wordfield:paris)~7)^1.1 | ((edgefield:musee edgefield:maillol > > edgefield:61 edgefield:r edgefield:grenelle edgefield:75007 edgefield > > :paris)~7)))" > > > > When instead I use two edgefields with *qf=**edgefield1 **edgefield2* > > > > parsedQuery = > > +(DisjunctionMaxQuery(((edgefield1:musee)^1.1 | edgefield2:musee)) > > DisjunctionMaxQuery(((edgefield1:maillol)^1.1 | edgefield2:maillol)) > > DisjunctionMaxQuery(((edgefield1:61)^1.1 | edgefield2:61)) > > DisjunctionMaxQuery(((edgefield1:r)^1.1 | edgefield2:r)) > > DisjunctionMaxQuery(((edgefield1:grenelle)^1.1 | edgefield2:grenelle)) > > DisjunctionMaxQuery(((edgefield1:75007)^1.1 | edgefield2:75007)) > > DisjunctionMaxQuery(((edgefield1:paris)^1.1 | edgefield2:paris)))~7 > > > > In the second case, edismax allows matching words to be in two different > > fields, but not in first case. > > > > Is there a way to have the same behaviour, ie case two, in all cases? > > > > best regards, > > Elisabeth > > > > > -- > Sincerely yours > Mikhail Khludnev >