【问题标题】:update the field value(s) with the dynamic values in solr using python使用 python 用 solr 中的动态值更新字段值
【发布时间】:2021-04-27 07:52:06
【问题描述】:

我有更新值的字典,我想使用 python 代码用 solr 中的动态值更新字段值。

基本上我正在使用以下逻辑从 tweepy 获取推文:

outtweets = [[
  dict_1["favorite_count"]=tweet.favorite_count
  dict_1["retweet_count"]=tweet.retweet_count
for idx, tweet in enumerate(all_tweets)]

但是favorite_countretweet_count 这个字段在每次更改时都是动态的。

在 Apache solr 下已经存在的数据/模式。

{
"favorite_count":0,
"retweet_count":16,
}

由于字段是动态的,如何在 solr 中更新这些特定值?

【问题讨论】:

  • 你必须解释更多 - 你想更新什么? Solr 的价值?您要更新的文档是什么?你用的是什么 Solr 客户端?您目前如何向 Solr 发送更新或文档?
  • 我已经更新了问题,如果我能解释这个场景,请参见上面!
  • 您必须在文档中附加一个 id,这样您才能知道这些数字所描述的内容。之后,使用pysolr 或其他 solr 客户端将文档发送到 Solr 将按照常规方式完成(您需要在 Solr 中添加描述文档格式的模式)。更新文档意味着只需再次发送具有新计数和相同 ID 的相同文档。
  • 其实id这么多属性,我只提了两个需要更新
  • 如果您只想为已经存在的任何文档更新这两个值,您可以使用就地更新(确保您已启用@987654327 @ 用于这些字段):solr.apache.org/guide/8_8/… - 否则,每次要更新值时提交整个文档。

标签: python dictionary solr tweepy


【解决方案1】:

您可以使用 Solr 原子更新仅更新这两个字段。

import pysolr
solr = pysolr.Solr("http://localhost:8983/solr/collectionName")
solr.add({'id':1, 'favorite_count': {'set': 0}, 'retweet_count': {'set': 16}})
solr.commit()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-11
    • 2012-12-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    相关资源
    最近更新 更多