: You are including the russian stemmed fields in the dismax query, and
: the analysis of those fields discards numbers, hence 1970 is ignored,
: right?  Either querying only the literals, or fixing the stemmed text
: to not discard numbers may help (or get you further along at least).

more specificly, you are putting your entire search in quotes, which is
causing it to be treated as a single searchable entity across several
fields -- a single DisjunctionMaxQuery, instead of multiple disjunctions
wrapped in a boolean.  When that quoted chunk of text is analyzed by your
russian analyzer the 1970 is strpped out, so docs that match just the word
parts in the russian field are considered matches.

if you don't use quotes around your input, then the dismax parser will ask
each of the analyzers for hte various fields to analyze the white space
seperated words independently, and you will get a one dismax clause for
each, including one clause just for "1970" across each of the fields.

Allthough it does not appear to be the source of your problem at the
moment, you may also find yourself getting similar "partial matches" if
you don't explicitly set the "mm" param, it determines the minimum number
of clauses the must match for a query to be considered ... if you set it
to "100%" then every part of the input must match something (allthough the
matches can still come from any of the various qf fields)


-Hoss

Reply via email to