0

好吧,坦率地说,我认为我的问题不合适,因为肯定可以在这里找到解决方案,但我想知道的是,如果用户输入了三个布尔函数之一,我如何让我的搜索反映这一点。

我在想的是,如果NOT在查询中输入(或任何变体),我可以用 aNOT-在其相应的 solr 查询中替换它。AND这并不是什么大问题,因为 Solr 默认情况下按和OR的顺序排列不同的单词ANDOR但我无法找到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);

任何帮助将非常感激。

4

1 回答 1

0

是的。对于这种情况,我们可以在 solr 查询中使用连接。 加入 solr 查询

于 2014-04-05T08:44:35.277 回答