我正在处理类似于以下的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来实现所需的结果?
我正在使用Solr/Lucene查询语法中的 - 运算符崩溃到一个奇怪的行为.如果我执行查询
-text AND -text
Run Code Online (Sandbox Code Playgroud)
我得到了所有预期的结果(很多),但如果我加上一些括号
-text AND (-text)
Run Code Online (Sandbox Code Playgroud)
要么
(-text) AND (-text)
Run Code Online (Sandbox Code Playgroud)
然后我根本没有结果.我不明白为什么.你对这种行为有解释吗?
先感谢您.
如何过滤到空白字段或特定值的OR表达式?
这似乎没有这样做:
q =( - PrivacyLevel:*)或PrivacyLevel:2
谢谢