Звучит так, как будто вы хотите, чтобы параметр DisMax "минимальное соответствие".Некоторое время назад я написал в блоге статью о концепции: http://blog.websolr.com/post/1299174416. Также есть вики Solr по минимальному совпадению .
Концепция "минимального соответствия" применяется ко всем«необязательные» термины в вашем запросе - термины, которые не указаны явно, с использованием +/-, являются ли они «+ обязательными» или «-запрещенными».По умолчанию минимальное совпадение составляет 100%, что означает, что должны присутствовать 100% необязательных терминов.Другими словами, все ваши термины считаются обязательными.
Вот почему ваш более длинный запрос в настоящее время не соответствует документам, содержащим более короткие фрагменты этой фразы.Другие ключевые слова в более длинной поисковой фразе считаются обязательными.
Если вы уроните минимальное соответствие до 1
, то только один из дополнительных терминов будет считаться обязательным.В некоторых отношениях это противоположно дефолту в 100%.Как будто ваш запрос quick brown fox…
превращен в quick OR brown OR fox OR …
и т. Д.
Если вы установите минимальное совпадение на 2
, тогда ваша поисковая фраза будет разбита на группы по два термина.Поиск quick brown fox
превращается в (quick brown) OR (brown fox) OR (quick fox) …
и так далее.(Извините, мой псевдо-запрос там, я надеюсь, вы понимаете, в чем суть.)
Параметр минимального соответствия также поддерживает проценты - скажем, 20%
- и некоторые даже более сложные выражения ,Так что есть немало настроек.