Solr从多值中移除引号或立即更新

时间:2018-05-26 17:18:50

标签: solr solr5

我使用 CURL 命令将数据索引到 SOLR 核心,其中数据为 CSV 格式。命令为curl 'http://localhost:8983/solr/my_collection/update?commit=true' --data-binary @my_docs.csv -H 'Content-type:application/csv'

数据已成功导入,但我遇到了 multiValued 字段的问题。 在我的 .csv 文件中, multiValued 字段的值与此"['parking','garden','spa']"类似,因此现在我的solr核心上导入的数据看起来像下面格式的额外双引号

"amenities": [
          "['parking', 'garden', 'spa']"
          ^                            ^
           ]

要从我的多值字段中删除双引号,我已经从SOLR ADMIN UI部分的文档部分尝试了这种方式,我使用此格式成功进行了原子更新JSON

{
 "id":"2118506",
 "amenities":{"set":["parking", "garden", "spa""]},
} 

我知道我可以使用这种方式通过使用 SET 在solr上发送curl请求来使用这种方式更新所有索引文档但是此时我很难因为我已经索引了20M文档。

所以我现在只想知道有什么方法可以在查询时删除 multiValued 字段中的双引号,或者用一个更简单的方法从字段值中删除双引号命令而不指定单个文档ID

N.B 现在我很难从每个csv文件中删除双引号并尝试重新索引文档

1 个答案:

答案 0 :(得分:1)

双引号的原因是因为您的值被索引为字符串 - 它没有被索引为多值字段。双引号就在那里,因为JSON表明我们正在谈论一个字符串。

在索引数据时,您需要对此进行更改,您可以use a few special arguments when indexing CSV

f.amenities.split=true&f.amenities.separator=%2C

通过分割,字段中的值,可以将值编入索引为实际的多值字段。如果您的CSV文件中包含实际的JSON列表,我强烈建议您从字段中删除[']作为预处理步骤。