【发布时间】:2016-09-02 08:36:49
【问题描述】:
我将 Json 数据索引到 solr 字段中,例如
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
但是 Json 正在使用转义字符进行索引,所以现在我将 json 作为
"{\"employees\":[\n {\"firstName\":\"John\", \"lastName\":\"Doe\"},\n {\"firstName\":\"Anna\", \"lastName\":\"Smith\"},\n {\"firstName\":\"Peter\", \"lastName\":\"Jones\"}\n]}"
有没有什么方法可以在不转义 json 或转义结果的情况下进行索引,同时仅从 solr 端显示?
【问题讨论】:
-
您是否将其作为 JSON 返回并且值在单个字段中?在这种情况下,Solr 必须对其进行转义,以便将值安全地保存在字段值中。然后,您的 JSON 库将对其进行解码,以便“fieldname”具有 JSON 字符串的值,然后您将再次对其进行解码。
-
是的 @MatsLindh 仅在单个字段中索引 json。我没有得到你的最后一点,即“解码”,请更详细地解释它。
-
解析 JSON 时,转义将被移除(因为它要求结果是有效的 JSON)。如果在检索 JSON 时(在通过库之后)仍然对其进行转义,则听起来您的 JSON 在您编制索引时被库双重转义。
-
@matslindh 谢谢,如何解决这个问题?任何特殊的标记器或分析器,或者可能是字段类型.. 作为 m 尝试基本 json 并通过 solr ui 的更新对其进行索引。
-
不可能说 - Solr 中没有任何固有的东西会给你这个问题。结果应在提交时返回(因为它与标记器/分析器分开存储)。您必须添加更多详细信息才能给出更详细的答案。
标签: solr