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