Как я могу заставить Apache Solr сопоставлять документы, которые содержат только некоторые условия поиска?

#solr

#solr

Вопрос:

Я пытаюсь реализовать поиск Solr в моем php-проекте. У меня есть одно текстовое поле

 <field name="title" type="text_general" indexed="true" stored="true"/>
  

Пример данных

 Foo Bar
  

Когда я пытаюсь выполнить поиск по Foo or Foo Bar , он работает хорошо. Но если я попытаюсь выполнить поиск по Hello Foo or Hello Bar , он не работает.

Как я могу реализовать этот поиск по типу с помощью Solr?

Комментарии:

1. Как вы выполняете поиск? (Может быть с примером кода)

2. Использование Rest Api solr/select/?q=Hello Fooamp;indent=onamp;wt=jsonamp;defType=edismaxamp;qf=titleamp;fl=id,title

Ответ №1:

Поведение зависит от того, на какой оператор по умолчанию в схеме установлен. Если для него установлено значение AND , оба условия должны совпадать. Найдите что-то похожее на <solrQueryParser defaultOperator="AND" /> , чтобы узнать, что вы в настоящее время установили для него.

Вы можете переопределить настройку schema.xml либо с помощью q.op=OR в строке запроса, либо с помощью mm параметра (минимум должен совпадать (100% => И, 0% => ИЛИ), что позволяет вам сказать «в поле должно присутствовать не менее 75% терминов»).