首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有错误的pysolr更新文档

带有错误的pysolr更新文档
EN

Stack Overflow用户
提问于 2016-11-16 12:32:16
回答 1查看 1.2K关注 0票数 4

更新: Pysolr版本: 3.2.0

,这似乎是solr中的一个bug。当不更新操作中的任何内容时,它将删除此doc.

以前,我在using pysolr in atomic update中使用了代码,但在下面的情况下我犯了错误。

现在,文档模式可能如下所示:

代码语言:javascript
复制
doc = {
   'id':    ...,
   'title': ...,
   'body':  ...,
}

我已经编制了一批文档的索引,现在我想用一个新的anchor_text字段更新每个文档。这是我的代码:

代码语言:javascript
复制
solr = pysolr.Solr(url_solr)
doc_update = {
   'id': ...,
   'anchor_text': [a,b,c,...]
}
solr.add([doc_update], fieldUpdates={
    'anchor_text': 'set'
})

但是我发现一些原始的文档是删除的,只有id字段左边。在更新之后,类似这样的内容:

代码语言:javascript
复制
doc = {
  'id':...
}

特别是,对于那些anchor_text字段是空列表的人,原始文档将被删除。而其他人则不然。(也许我猜是因为我只看到了几个案例)。

我看过源代码,但没有发现任何有价值的东西。这里发生了什么事?

在更新文档中使用pysolr的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 15:13:30

我遇到了同样的问题(python-3.6,pysolr-3.6,solr 6.4.1)。由于我在网上找不到更多的信息,所以我使用了一个请求解决方法,如果对任何人都有用的话,我将离开这里。

代码语言:javascript
复制
import requests
import json

def update_single_solr_field(doc_id_field, doc_id, field_update_name, field_update_value):
    # Updates a single field in a document with id 'doc_id'.
    # Updates only the 'field_update_name' field to the 'field_update_value', leaving other fields intact

    base_url = 'http://localhost:8983/'
    solr_url = 'solr/mysolrcore/'
    update_url = 'update?commit=true'
    full_url = base_url + solr_url + update_url
    headers = {'content-type': "application/json"}

    payload = [{
        doc_id_field: doc_id,
        field_update_name: {
            'set': field_update_value
        }
    }]

    response = requests.post(full_url, data=json.dumps(payload), headers=headers)

    return response

# example
id_field_name = 'id'
doc_id_to_update = '1700370208'
field_to_update = 'weight_field'
field_to_update_value = 20000
response_update = update_single_solr_field(id_field_name, doc_id_to_update, field_to_update, field_to_update_value)

print(response_update)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40632264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档