Solr edismax парсер и поиск по нескольким полям

Я использую парсер запросов edismax для обработки пользовательских запросов к нашему серверу Solr 4.10.3.

Я настроил для параметра q.op значение AND и полностью отключил параметр mm, чтобы получить совпадения только на 100%.

Когда пользователи ищут несколько терминов в одном поле, все работает нормально.

Например, запрос food:(beer cola pizza) возвращает только те документы, которые содержат все термины beer, cola и pizza в поле food, что является ожидаемым поведением.

Но когда пользователи выполняют поиск в нескольких полях, Solr, кажется, забывает о конфигурации q.op и ведет себя так, как будто для параметра установлено значение OR.

Например, запрос food:(beer cola pizza) AND color:(green yellow blue) возвращает все те документы, которые содержат одно из терминов beer, cola OR pizza в поле food и те, которые содержат одно из терминов green, yellow OR синий в поле цвета, который не соответствует ожидаемому поведению.

Обходной путь заключается в точной подготовке каждого термина с оператором +, например, следующим образом: еда:(+ пиво + кола + пицца) И цвет:(+ зеленый + желтый + синий).

Но мне нужно добавить этот оператор в наше java-веб-приложение, которое является своего рода функцией "жесткого кода". Я думаю, что когда пользователи решат сконфигурировать оператор q.op обратно на ИЛИ, жестко закодированный + вызовет проблемы.

Есть ли способ достичь ожидаемых результатов поиска по конфигурации?

0 ответов

Другие вопросы по тегам