【发布时间】:2015-08-08 01:44:42
【问题描述】:
我是 Solr 的新手,我有一个非常具体的问题需要解决: 我有一个包含我的 Solr 文档的 csv 文件。现在,我确实有一个列(字段),它不仅是多值的,而且还包含“子字段” 例如
"id":"0101",
"addMaterials":[{"name":"Mat1", "property":"prop1"},
{"name":"Mat2","property":"prop2"},
{"name":"Mat3","property":"prop3"}],
"mainProperty":"mainproperty1",
"URL":"http://www.mySite..."
其中 id、addMaterials、mainProperty 和 URL 是我的主要字段,而“name”和“property”是我的子字段。我知道 Solr 旨在处理非规范化文档,但非规范化不是我的应用程序可能的解决方案。
我的想法是分离我的数据集并将字段(具有子字段)移动到另一个文档,并以某种方式创建一个新字段以将其链接到原始文档(例如 fromIdField)。
还有其他解决方案吗?我的最低目标是索引 addMaterials 字段的值(即使没有索引子字段)
来自:
"addMaterials":[{"name":"Mat1", "property":"prop1"},
{"name":"Mat2","property":"prop2"},
{"name":"Mat3","property":"prop3"}],
到
"addMaterials":{"name":"Mat1", "property":"prop1"}
"addMaterials":{"name":"Mat2", "property":"prop2"}
"addMaterials":{"name":"Mat3", "property":"prop3"}
提前致谢。
【问题讨论】:
-
我找到了解决问题的方法。我没有分离我的数据集,而是将 addMaterials 字段保留为多值字段并忽略了子字段。所以我只有一个要索引的多值字段。我所做的是使用 Solr 的更新/请求来索引我的 csv 文件并将 },{ 作为我的 addMaterials multiValued 字段中的分隔符。索引文档如下所示:
标签: indexing nested field multivalue