代码之家  ›  专栏  ›  技术社区  ›  A l w a y s S u n n y

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

  •  0
  • A l w a y s S u n n y  · 技术社区  · 7 年前

    我已将数据索引到我的 索尔 核心使用 卷曲 数据所在的命令 CSV 总体安排命令是 curl 'http://localhost:8983/solr/my_collection/update?commit=true' --data-binary @my_docs.csv -H 'Content-type:application/csv'

    数据导入成功,但我遇到了一个问题 多值 领域 在我的 .csv 多值 菲尔德就是这样 "['parking','garden','spa']" 所以现在我的solr core上导入的数据看起来像是下面格式的双引号。

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

    移除那个 双引号 从我的 多值 字段我在SOLR ADMIN UI部分的文档部分尝试了这种方式,并成功地用这种JSON格式进行了原子更新

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

    我知道我可以用这种方式通过在solr上发送curl请求来更新所有索引文档 设置 但现在对我来说很难,因为我已经索引了2000万个文档。

    所以我现在只想知道有没有什么方法可以把双引号从 多值 字段,或者使用任何更智能的方法,通过单个curl命令从字段值中删除双引号 不指定单个文档ID

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   MatsLindh    7 年前

    使用双引号的原因是,您的值被作为字符串索引,而不是作为多值字段索引。这里有双引号,因为JSON就是这样表示我们在谈论字符串的。

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

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

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

    推荐文章