【问题标题】:Solr remove quotes from multivalued value or update at onceSolr 从多值值中删除引号或立即更新
【发布时间】:2018-11-05 19:15:51
【问题描述】:

我已使用 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']"
          ^                            ^
           ]

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

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

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

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

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

【问题讨论】:

    标签: solr solr5


    【解决方案1】:

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

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

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

    这样,通过从, 上的字段拆分值,这些值将被索引为实际的多值字段。如果您的 CSV 文件中有实际的 JSON 列表,我强烈建议您从字段中删除 ['] 作为预处理步骤。

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 2015-07-29
      • 2017-12-11
      • 2019-06-04
      • 2020-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多