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
>

Reply via email to