3

我正在尝试在 9:15、9:15pm、9:15p 等时间查询名为 body 的 text_general 字段。我通过 REST API 尝试了以下两个查询,但均未成功:

  • q=body:9\:15*没有给我任何点击,缺少提到 9:15 的文档
  • q=body:"9:15"*给我所有文档,包括与 9:15 类似的文档

在 Chrome 中调试,我直接在浏览器中输入这些。我还尝试对这些值进行 encodeURIComponent,以确保内容不会在 HTTP 翻译中丢失。无论哪种方式,结果都是一样的。

我猜这里有一个简单的答案,我对 Solr 查询如何工作的心智模型刚刚被打破。

4

2 回答 2

1

在这种情况下,我经常做两件事:

  1. 打开 Solr 查询调试,所以我可以看到它确实进入了查询。您将在响应结束时看到额外的节点。

    &debug=query
    
  2. 使用分析工具检查现场分析仪。(基于 Solr 的示例核心的 url)

    http://localhost:8983/solr/#/collection1/analysis?analysis.fieldvalue=9%3A30pm&analysis.query=9%3A30&analysis.fieldtype=text_general&verbose_output=0
    

这两种方法都应该准确地告诉您查询出了什么问题。在第二个中,您可以在不重新索引任何内容的情况下检查匹配的工作方式。

于 2013-08-14T21:29:47.900 回答
1

您的时间字符串按照Unicode 标准附件 UAX#29进行标记化。所以结肠应该被剥离。我想如果你检查一下,你会发现你的结果应该包含 9 或 15。

于 2013-08-15T13:47:37.073 回答