#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% терминов»).