В моем приложении Rails у меня есть модель вопроса, настройка с помощью sunspot solr с полем «текст», и я бы хотел искать в этом поле логическое ИЛИ между словами. Я обнаружил, что установка minimum_match на 1 решает мою проблему, однако я также хотел бы заказать результаты, увеличив вопросы, содержащие более одного слова. Есть ли способ сделать это с Solr? Документация не очень полезна для функций ранжирования.Оценка результатов минимального совпадения Solr
Edit: это полный запрос я выступаю в контроллере
@questions = Question.solr_search do
fulltext params[:query], :minimum_match => 1
end.results
В моем опыте, а также отметил [здесь] (http: //blog.websolr.com/post/1299174416/how-do-i-query-with-boolean-logic-using-sunspot) и [здесь] (http://sunspot.github.com/sunspot/docs/Sunspot/DSL/StandardQuery.html) в минимальном абзаце соответствия, поведение по умолчанию поиска является логическим И между словами. Также я использую такой фильтр ' ' для текстовых полей, которые я не знаю, может ли привести к поведению по умолчанию ... –
Сложнее подумать о том, что зажат в качестве такового, что благоприятствует документам, которые соответствуют большинству условий из запроса. Это обычное поведение, ожидаемое большинством людей. Первая ссылка, которую вы опубликовали, объясняет это довольно хорошо. ': minimum_match => 1' должно быть по умолчанию. Он вступает в силу только в том случае, если вы увеличиваете его (что ограничивает результаты документами, в которых больше условий соответствует). –
NGramFilterFactory действительно полезен только в нескольких конкретных ситуациях (EdgeNGramFilterFactory помогает при префиксном поиске/автозаполнении). Вы, вероятно, согласитесь на кучу результатов, которых вы не хотите (например, поиск «zz» будет соответствовать чему-либо с «pizza»). Возможно, вы можете публиковать больше о том, что вы пытаетесь сделать. –