1

我使用edismax查询解析器来处理针对Solr 4.10.3服务器的用户查询。

我将q.op参数配置为AND并完全禁用mm参数,以便仅达到 100% 匹配。

当用户在单个字段中搜索多个术语时,一切正常。

例如,查询food:(beer cola Pizza)仅返回那些在food字段中包含所有术语beercolaPizza的文档,这是预期的行为。

但是当用户在多个字段中搜索时,Solr 似乎忘记了q.op配置并且表现得好像参数设置为OR

例如,查询food:(beer cola Pizza) AND color:(green yellow blue)返回所有那些在字段food中包含术语beercola Pizza之一的文档以及包含术语greenyellow OR之一的文档字段颜色为蓝色,这不是预期的行为。

一种解决方法是使用+ 运算符明确地准备每个术语,如下所示:food:(+beer +cola +pizza) AND color:(+green +yellow +blue)

但是我需要在我们的 java-webapplication 中添加这个运算符,这是一种“硬代码”功能。当用户决定将q.op运算符配置回OR时,我认为硬编码+会导致问题。

有没有办法通过配置达到预期的搜索结果?

4

0 回答 0