好吧,坦率地说,我认为我的问题不合适,因为肯定可以在这里找到解决方案,但我想知道的是,如果用户输入了三个布尔函数之一,我如何让我的搜索反映这一点。
我在想的是,如果NOT
在查询中输入(或任何变体),我可以用 aNOT
或-
在其相应的 solr 查询中替换它。AND
这并不是什么大问题,因为 Solr 默认情况下按和OR
的顺序排列不同的单词AND
,OR
但我无法找到NOT
. 当我看到分析时(我需要使用的字段类型是text_en_splitting_tight
),NOT
在SF之后被删除;我猜这是停止过滤器。
有没有办法我可以仅通过 Solr 实现这一点,或者我是否必须使用我的 php 脚本来隔离和替换关键字输入,然后将其传递给 solr 查询?
编辑:
我必须对停止过滤器的conf下的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);
任何帮助将非常感激。