在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"。
我有一个值为 "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"。