У меня проблемы с использованием SOLR для поиска. Моя схема определяется следующим образом:
<field name="_root_" type="string" indexed="true" stored="false"/>
<field name="_text_" type="text_general" multiValued="true" indexed="true" stored="true"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<field name="deleted" type="booleans" indexed="true" stored="true"/>
<field name="description" type="strings" indexed="true" stored="true"/>
<field name="favorites_count" type="tlongs"/>
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
<field name="image" type="strings"/>
<field name="ingredients" type="strings" multiValued="true" indexed="true" stored="true"/>
<field name="level" type="tlongs"/>
<field name="portions" type="tlongs" indexed="true" required="true" stored="true"/>
<field name="preparation" type="strings"/>
<field name="rating" type="tdoubles"/>
<field name="ratings_count" type="tlongs"/>
<field name="subject" type="strings" indexed="true" required="true" stored="true"/>
<field name="visible" type="booleans" indexed="true" stored="true"/>
Проблема в том, что я пытаюсь выполнить поиск в поле «ингредиенты».
Основной запрос:
q=(subject:"фразовый поисковый ввод" ИЛИ description:"фразовый поисковый ввод") И ингредиенты:("некоторые ингредиенты фразы")
или ингредиенты: searchWord
Запрос без параметра ингредиентов работает нормально, с правильными результатами.
Однако, когда дело доходит до фильтрации ингредиентов, независимо от того, использую ли я fq или напрямую в строке запроса, я получаю неверные результаты или вообще не получаю результатов.
Поле ингредиентов имеет следующие данные:
ингредиенты:[ингредиент 1, ингредиент 2, ингредиент 3 фраза]
Другая проблема заключается в том, что когда ингредиент имеет символы "(" или ")", и я ищу такую фразу - не может найти соответствие.
Версия SOLR: 5.3
Кто-нибудь может помочь мне в этом?
Спасибо!