Поведение запроса Solr - PullRequest
       51

Поведение запроса Solr

1 голос
/ 06 апреля 2011

У меня есть установка Solr, которая содержит рецепты.

В каждом рецепте есть несколько ингредиентов, и в настоящее время я создаю поиск рецептов, который можно ввести «включает / исключает», а затем у меня есть система взвешивания домашнего варки, которая появляется после этого.

Однако построение запросов отключено и поэтому нуждается в уточнении.

// Works perfect - 109 results
ingredients:chicken OR tomatoes OR bacon

// Down to 7 results - Definitely wrong
ingredients:chicken OR tomatoes OR bacon AND -ingredients:garlic 

Я пытался построить этот запрос любым способом, но не могу найти приемлемый «нечеткий фильтр»

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Я бы сделал:

ingredients:((chicken OR tomatoes OR bacon) AND NOT garlic)

Это работает для меня.

Вы можете добавить все исключения, например:

ingredients:((chicken OR tomatoes OR bacon) AND NOT (garlic OR peanuts OR spinach))
0 голосов
/ 06 апреля 2011

Попробуйте ingredients:chicken OR tomatoes OR bacon AND (-ingredients:garlic)

Я предполагаю, что вы используете Solr 3.1 с edismax.

Я обнаружил, что включение отрицательных запросов в круглые скобки работает. У меня не было времени, чтобы разобраться в этом более подробно и выяснить, является ли это ожидаемым поведением или это ошибка. Если вы исследуете это более подробно и подтвердите, что это ошибка, тогда, пожалуйста, откройте вопрос Jira здесь .

Обратите внимание, что запрос, который я предложил выше, будет искать помидоры / бекон в полях по умолчанию согласно вашей конфигурации. Если вы хотите искать их только в ingredients, используйте ingredients:(chicken OR tomatoes OR bacon) AND (-ingredients:garlic)

...