Как мне сделать расширенный поисковый запрос, используя «ИЛИ» в Solr Dismax - PullRequest
3 голосов
/ 25 июня 2010

Как вы можете указать запрос типа "Java с (разработчик ИЛИ программист)", используя обработчик solr dismax ...

Работает со стандартным обработчиком solr, но не с dismax

Ответы [ 3 ]

2 голосов
/ 26 июня 2010

Значением по умолчанию для dismax является ИЛИ (необязательно), и если вы хотите, чтобы термины были обязательными, вы должны добавить знак плюс перед ними. Таким образом, предположим, что ваш запрос должен содержать «java with» что-то вроде «+ java + with developer programmer».

мм используется для установки количества необязательных предложений, которые должны совпадать. По умолчанию это 100%, поэтому, возможно, потребуется некоторая настройка, чтобы получить желаемый результат. Есть несколько примеров, которые можно найти здесь

0 голосов
/ 10 сентября 2011

Это может быть немного не по теме, но здесь кажется, что слова программист и разработчик являются синонимами и лучше всего помещаются в файл синонимов, эффективно устраняя необходимость в выражении типа «программист или разработчик». В противном случае настройка минимального значения должна быть ближайшей. Наилучший путь - перейти на новую версию solr с EDISMAX, поскольку она будет поддерживать стандартный синтаксис и dismax.

0 голосов
/ 25 июня 2010

Вы должны понимать, что dismax не предназначен для обработки таких запросов.Dismax поддерживает упрощенную версию синтаксиса Lucene QueryParser.При использовании он позволяет пользователям только предоставлять ключевые слова и не беспокоиться о синтаксисе.

Более подробную информацию о dismax вы можете найти здесь .Обратите внимание на часть о параметре mm, которая позволяет имитировать логические запросы с dismax.

...