okay, thanks, for the answer. the thing is when there is no *wordf**ield* in the *qf* param, but only *edgefield1* and *edgefield2*, I get this parsedQuery
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 SolR does return documents but when I have instead* wordf**ield* and *edgefield* in *qf*, I get this parsedQuery 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)))" and SolR does not return any documents. That is what makes me thing there is something wrong with the second parsedQuery. Best regards, Elisabeth Le lun. 13 nov. 2023 à 20:15, Mikhail Khludnev <m...@apache.org> a écrit : > > > > 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. > > > It doesn't work this way. These two queries differs only in scoring/results > ordering. i.e > this query matches docs: {wordfield:musee, edgefield:musee} as well as { > wordfield:musee,edgefield:maillol}, {wordfield:musee}, { > edgefield:maillol}. > This explanation might be useful > https://lucidworks.com/post/solr-boolean-operators/ > Note: DisMax works like OR/| but takes max instead of sum as a score. > > On Mon, Nov 13, 2023 at 7:21 PM elisabeth benoit < > elisaelisael...@gmail.com> > wrote: > > > 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 > > > > > > > > -- > Sincerely yours > Mikhail Khludnev >