我有一个值为" rr:34:56"的文本字段。我通过REST API尝试了以下查询,但没有成功。
q = rr \\:3 * - 查询不返回任何内容。 debug返回"" rawquerystring":" rr \\:3 *", " querystring":" rr \\:3 *", " parsedquery":" text:rr:3 *"。
Parser是LuceneQParser。
所以问题是如下。我怎样才能找到包含冒号的字符串字段?
答案 0 :(得分:3)
假设您将该字段编入索引为" StrField"你应该使用一个反斜杠(例如rr:12 \:23)
来逃避冒号答案 1 :(得分:0)
查询格式正确(意味着rr:33将查询值rr:33
),但您不会查询任何特定字段,因此将针对您的默认字段执行搜索。这可能无法为您提供所需的结果(轻松检查,搜索rr*
),而您可能需要fieldname:rr\:34*
。
答案 2 :(得分:0)
在我的情况下,解决方案是从LuceneQParser切换到edismax并传递" text"在qf。