我想在数组中添加元素,或在Vespa的自定义搜索结果中从地图中删除一些键。
例如:在搜寻者点击中,我有以下字段:
fields:
n: 0,
myArray: [0, 1, 2]
myMap: {"key1":"value1", "key2":"value2"}
我想在数组中附加值(3,4)并从地图中删除键(key2),以返回结果:
fields:
n: 0,
myArray: [0, 1, 2, 3, 4]
myMap: {"key1":"value1"}
我已跟随参考链接Inspecting Structured Data,但无法从已创建的检查器对象中添加或删除条目。我不想为我的数组/结构创建一个新的SlimeAdapter对象。因为这将需要完全遍历数组并将单个条目添加到我的新对象中,这是我想要避免的。
请提出相同的解决方法。
答案 0 :(得分:1)
从匹配中返回的所有字段值均为只读。造成这种情况的原因有很多,但最重要的是性能。
如果要在搜索器中编辑字段的结构化数据,则需要完全遍历该字段,或者创建一个包装器来跟踪您的编辑并生成一个视图,该视图包含应用了更改的只读数据
您提到您不想做第一个选择。如果出于观察到的性能原因,则可以考虑第二种选择。
如果您通常这样做,请考虑将其退还。