相关疑难解决方法(0)

在Solr中搜索日期范围或null/no字段

我想在Solr中的文本字段上执行搜索.我想返回范围内或没有值的所有匹配.这两个搜索词是独立的:

myfield:[start TO finish]
-myfield:[* TO *]
Run Code Online (Sandbox Code Playgroud)

第一个返回范围内的所有匹配项.第二个返回所有没有"myfield"字段值的匹配项. 问题是将这两者结合起来.

这不返回任何匹配项:

myfield:[start TO finish] OR -myfield:[* TO *]
Run Code Online (Sandbox Code Playgroud)

这将返回开始和结束之间的匹配,但不返回空条目:

myfield:[start TO finish] OR (-myfield:[* TO *])
Run Code Online (Sandbox Code Playgroud)

solr

32
推荐指数
2
解决办法
2万
查看次数

使用布尔运算符的奇怪Solr/Lucene行为

我正在使用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)

然后我根本没有结果.我不明白为什么.你对这种行为有解释吗?

先感谢您.

lucene solr

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

这个Solr范围过滤器查询有什么问题?

以下过滤器查询返回零结果(使用*:*作为查询):

-startDate:[* TO *] OR startDate:[* TO NOW/DAY+1DAY]
Run Code Online (Sandbox Code Playgroud)

但如果我只过滤:

-startDate:[* TO *]
Run Code Online (Sandbox Code Playgroud)

我得到3个结果.

如果我只过滤:

startDate:[* TO NOW/DAY+1DAY]
Run Code Online (Sandbox Code Playgroud)

我得到161个结果.

为什么组合的FQ返回零结果?我想要的是过滤器返回任何开始日期为null或开始日期在今天之前的文档.

编辑:

我正在使用Solr 4.2.1.2013.03.26.08.26.55

编辑:

嗯,奇怪的是,听起来有同事建议将括号括在这两个部分:

(-startDate:[* TO *]) OR (startDate:[* TO NOW/DAY+1DAY])
Run Code Online (Sandbox Code Playgroud)

不知怎的,它奏效了.我仍然很好奇为什么会有所作为.希望有人可以解释一下.

谢谢!

search solr solr-query-syntax

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

使用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空字段

我在solr中有一个配置文件列表,用一些空字段索引(例如:国家/类别等).

<arr name="country"> <str>185</str> </arr> <arr name="category"> <int>38</int> </arr> 我想搜索没有国家的个人资料.我用过,-country:['' TO *]因为country是一个字符串字段.

现在我该如何检查它是否为整数字段.该字段可能为空(无字段)或值为0.我试过

category:0
Run Code Online (Sandbox Code Playgroud)

但它没有给我正确的输出,在这种情况下输出是空的.

lucene solr

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

标签 统计

solr ×5

lucene ×2

search ×1

solr-query-syntax ×1