如何在字符串字段中插入单个反斜杠 - solr

How insert a single backslash in a string field - solr

在我的 SOLR 集合中,我有一个带有正则表达式的字符串字段,名为“regex”表示日期。

我需要为日期插入一个包含单个反斜杠的正则表达式,但我无法使用文档更新 JSON 界面插入它:

如果我在正则表达式字段中插入一个反斜杠:

{   
    "id":"a0091da5-2e6c-41d8-97a4-a19fc3c43002",
    "attribute_name": "ArrivalTime",
    "allowed_values": "Date and Time",
    "regex": "\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?Z?"
}

在我收到的查询响应中没有:

"regex":"d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d(?:.d+)?Z?"

相反,如果我在正则表达式字段中插入 2 个反斜杠:

{   
    "id":"a0091da5-2e6c-41d8-97a4-a19fc3c43002",
    "attribute_name": "ArrivalTime",
    "allowed_values": "Date and Time",
    "regex": "\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:\.\d+)?Z?"
}

我收到 2 个反斜杠:

"regex":"\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(?:.\d+)?Z?"

如何只插入一个反斜杠?谢谢

响应是应该的 - 因为它是 JSON,反斜杠也需要在响应中转义:否则语义将是你给出的例子(d{4}-[01]d... ).

当您将响应解析为 JSON 时,该字符串将被取消转义并且内容将是您所期望的(除非您再次在输出中进一步转义)。