在solr中查找带冒号的字符串值

Find string values with colon in solr

我有一个值为 "rr:34:56" 的文本字段。我通过 REST API 尝试了以下查询但没有成功。

q=rr\\:3* - 查询 returns 无。调试 returns ""rawquerystring": "rr\:3*", "querystring": "rr\:3*", "parsedquery": "text:rr:3*".

解析器是 LuceneQParser。

所以问题如下。我如何找到其中包含冒号的字符串字段?

假设您将该字段索引为 "StrField",您应该使用单个反斜杠转义冒号(例如 rr:12\:23)

查询格式正确(意味着 rr:33 将查询值 rr:33),但您没有查询任何特定字段,因此搜索是针对您的默认字段执行的。这可能不会给您想要的结果(简单检查,搜索 rr*),您可能需要 fieldname:rr\:34*

在我的案例中,解决方案是从 LuceneQParser 切换到 edismax 并在 qf 中传递 "text"。