相关疑难解决方法(0)

在solr查询中使用OR和NOT

我正在处理类似于以下的solr查询:

((myField:superneat AND myOtherField:somethingElse) OR NOT myField:superneat)
Run Code Online (Sandbox Code Playgroud)

运行此时,不会返回任何结果.使用OR NOT任一侧的标准会返回我期望的结果 - 它们只是不能很好地协同工作.在myField匹配superneat的情况下,我还打算确保将myOtherField设置为somethingElse,但如果myField不是superneat,则将其包含在结果中.

有人能解释为什么solr没有返回这种查询的结果吗?是否应该以某种方式重构查询 - 或者是否有不同的方法可以使用solr来实现所需的结果?

lucene search solr

81
推荐指数
6
解决办法
11万
查看次数

使用AND和OR运算符进行Solr字段查询(fq)

我一直在努力用AND和OR运算符形成一个solr字段查询.为什么solr为1和2,3和4查询返回不同的结果,即使所有查询都具有相同的逻辑 -

  1. fq =(名称:abc AND -city:(1 3))OR(名称:abc AND -loc:(3 KD 5 7))
  2. fq =(名称:abc AND(-city:(1 3)OR -loc:(3 KD 5 7)))
  3. fq = name:abc&fq = - (city:(1 3)AND loc:(3 KD 5 7))
  4. fq = name:abc&fq =( - city:(1 3)OR -loc:(3 KD 5 7))

有谁可以帮我理解solr内部如何执行上述查询?

solr

2
推荐指数
1
解决办法
9337
查看次数

使用 solr 查找缺失值时出现负面方面查询的问题

我正在为我们的网站开发产品过滤器,但在使用“facet.missing = true”时遇到了一些困难。

我知道我应该使用像“fq=-facetField:[* TO *]”这样的查询过滤器来将结果过滤到缺少该字段的产品。

我为我的应用程序构建了一个全局过滤器助手,它为所有查询动态构建 fq 参数,以防止任何人错过基于用户权限的过滤器,它基本上如下所示(php):

$params['fq'] = sprintf('((%s) AND (%s))', $custom, $system);
Run Code Online (Sandbox Code Playgroud)

其中 $system 是基于全局权限的过滤器,它可能看起来像(不是实际但相似):

(isdiscontinued:0 AND ishidden:0 AND contract:3)
Run Code Online (Sandbox Code Playgroud)

$custom 包含用户通过 UI 构建的实际过滤器查询。假设笔记本蓝牙过滤器的名称为 fq_bluetooth,其值为:No、Yes 或值丢失。这将使最终的 fq 看起来像:

((-fq_bluetooth:[* TO *]) AND ((isdiscontinued:0 AND ishidden:0 AND contract:3)))
Run Code Online (Sandbox Code Playgroud)

但是,这会为我为此类别发送的查询返回 0 个产品。

如果我将过滤器查询修改为:

((fq_bluetooth:[* TO *]) AND ((isdiscontinued:0 AND ishidden:0 AND contract:3)))
Run Code Online (Sandbox Code Playgroud)

然后我得到了 Yes + No 计数的预期结果,不考虑未指定的。

我应该如何格式化过滤器查询以使其正常工作?

[编辑]

我可能还想结合这些方面,并且可能只过滤没有蓝牙的产品或未指定蓝牙的产品。所以也许像这样(当然这也不起作用):

((-fq_bluetooth:[* TO *] OR fq_bluetooth:"No") AND ((isdiscontinued:0 AND ishidden:0 AND contract:3)))
Run Code Online (Sandbox Code Playgroud)

我注意到 debugQuery 打开,我看到一个过滤器查询,如:

fq_bluetooth:("No" OR -[* TO …
Run Code Online (Sandbox Code Playgroud)

solr faceted-search solr4

1
推荐指数
1
解决办法
1599
查看次数

标签 统计

solr ×3

faceted-search ×1

lucene ×1

search ×1

solr4 ×1