2015-02-17 2 views
1

якобы у меня есть 4 слова (давайте назовем их a,b,c и d ради примера), и я хочу, чтобы искать в solr, чтобы соответствовать 3 из них. я мог бы написать запрос со всеми перестановками следующим образом:Solr запроса: х из русских слов соответствует

(a AND b AND c)OR(a AND b AND d)OR(b AND c and d) 

Это будет работать и сопоставляет документы с 3 из этих 4 слов.

но все становится беспорядочно, когда у меня есть 10 слов, и вам нужно их сопоставить 3 из них. Число требуемых перестановок растет экспоненциально.

, очевидно, благодаря сложности Solr запросов идет лопнул (он становится слишком медленным, чтобы ответить)

Я искал по всему Интернету, чтобы узнать, если есть специальная команда, которую я мог бы использовать что-то вроде этого , Я ничего не мог найти. Мне просто интересно, есть ли какие-то трюки, которые можно было бы сделать для достижения чего-то подобного.

+0

Вы хотите найти ровно 3 слова из 4? – Mysterion

+1

@ Mysterion, который был всего лишь примером, я хочу сделать, чтобы соответствовать k из n слов. Я хочу сказать, возвратить мне документы, которые имеют по крайней мере k из n слов – nafas

ответ

2

Посмотрите на параметр mm парсера eDisMax.

+0

Я думаю, что это именно то, что я ищу помощника, я получу ответ, как принято, как только я выясню, как использовать параметр mm (правильно) – nafas

+0

спасибо снова, что это было легче, чем ожидалось. единственное, что mm должно использоваться вдоль side defType = edismax или defType = dismax для правильной работы. – nafas

 Смежные вопросы

  • Нет связанных вопросов^_^