在solr中使用冒号查找字符串值

时间:2015-04-14 05:02:30

标签: solr

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

q = rr \\:3 * - 查询不返回任何内容。 debug返回"" rawquerystring":" rr \\:3 *",     " querystring":" rr \\:3 *",     " parsedquery":" text:rr:3 *"。

Parser是LuceneQParser。

所以问题是如下。我怎样才能找到包含冒号的字符串字段?

3 个答案:

答案 0 :(得分:3)

假设您将该字段编入索引为" StrField"你应该使用一个反斜杠(例如rr:12 \:23)

来逃避冒号

答案 1 :(得分:0)

查询格式正确(意味着rr:33将查询值rr:33),但您不会查询任何特定字段,因此将针对您的默认字段执行搜索。这可能无法为您提供所需的结果(轻松检查,搜索rr*),而您可能需要fieldname:rr\:34*

答案 2 :(得分:0)

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