我正在尝试查询一个名为body的text_general字段,例如9:15,9:15 pm,9:15p等等。我通过REST API尝试了以下两个查询但没有成功:
q=body:9\:15*
没有给我打击,缺少提及9:15 q=body:"9:15"*
向我提供了所有文档,包括没有类似9:15的文档在Chrome中调试,我直接在浏览器中输入这些内容。我还在值上尝试了encodeURIComponent,以确保HTTP转换中的内容不会丢失。同样的结果。
我猜这里有一个简单的答案,我对Solr查询工作方式的心理模型只是破碎了。
答案 0 :(得分:1)
在这种情况下,我经常做两件事:
打开Solr查询调试,所以我可以看到它真正进入查询。您将在响应结束时看到额外的节点。
&debug=query
使用分析工具检查现场分析器。 (url基于Solr的示例核心)
http://localhost:8983/solr/#/collection1/analysis?analysis.fieldvalue=9%3A30pm&analysis.query=9%3A30&analysis.fieldtype=text_general&verbose_output=0
这两种方法都应该准确地告诉您查询出了什么问题。在第二个中,您可以检查匹配工作的方式,而无需重新编制索引。
答案 1 :(得分:1)
您的时间字符串在Unicode standard annex UAX#29之后被标记化。 所以应该剥去结肠。 我想如果你检查一下,你会发现你的结果应该包含9或15。