2014-04-04 4 views
0

Ну, честно говоря, я считаю, что мой вопрос не подходит, так как определенно можно найти решение здесь, но то, что я хочу узнать, - это если пользователь вводит одну из трех логических функций, как я могу заставить мой поиск отражать что.Можно ли дать И, ИЛИ, НЕ возможность через ввод ключевого слова в Solr?

Что я думал, если в запросе введено NOT (или любой вариант), могу ли я заменить его на NOT или - в соответствующем запросе solr. AND и OR не так много, поскольку Solr по умолчанию оценивает разные слова в порядке AND, а затем OR, но я не могу найти способ для NOT. Когда я вижу анализ (тип поля, который мне нужно использовать, - text_en_splitting_tight), NOT удаляется после SF; Я думаю, это фильтр остановки.

Есть ли способ, которым я могу достичь этого только через Solr, или мне придется использовать свой php-скрипт для разделения и замены ввода ключевого слова, а затем передать его в запрос solr?

EDIT:

Должен ли я сделать что-то с stopwords.txt под конф для остановки фильтра?

То, что я работаю с простой запрос, как указано ниже:

$query = $client->createSelect(); //create search query 
$query->setQuery($searchInput);  //include fields required for searching 
$query->setStart($start)->setRows($rows); 
$query->setFields($returnFields); 
$edismax = $query->getEDisMax(); 
$edismax->setQueryFields($edismaxFields); 
$resultSet = $client->select($query); 

Любая помощь будет оценена.

+0

Кабина, пожалуйста, приведите несколько примеров запросов, над которыми вы работаете? – Fuxi

ответ