亚马逊cloudsearch无法用boto添加文件?

时间:2015-04-02 04:19:20

标签: python amazon-web-services boto amazon-cloudsearch

我正在尝试使用最新的boto 2.36(?)和cloudsearch,我使用connect_cloudsearch2进行连接:

user =    {
        'id': 4,
        'username': 'daniella',
        'last_activity': 1334253279,
        'follower_count': 7,
        'location': 'USA',
        'snippet': 'Just like Dan, I like to watch a good sunset, but heights scare me.',
    }
doc_service = domain.get_document_service()
for user in users:
   doc_service.add(user['id'], user['last_activity'], user)
   #doc_service.add(user['id'], user) #this does not work either
complete = doc_service.commit()

我得到的错误是doc_service.add(它直接来自文档):

TypeError: add() takes exactly 3 arguments (4 given)

如果评论过" doc_service.add"使用line而不是它上面的行,错误是:

boto.cloudsearch2.document.CommitMismatchError: Incorrect number of adds returned. Commit: 1 Response: 0

在任何一种情况下都不会添加/提交任何文档。 云似乎很难使用......任何人都有任何想法?

1 个答案:

答案 0 :(得分:1)

今天我遇到了与boto相同的问题。我试过了一段时间,最后找到了解决方案。

使用cloudsearch2。我正在使用 boto2.38.0

import boto.cloudsearch2
from boto.cloudsearch2.layer2 import Layer2
from boto.cloudsearch2.domain import Domain

# from boto.cloudsearch.domain import Domain
conn = boto.cloudsearch2.connect_to_region("xxxxxx",
                aws_access_key_id='xxxxxxxxxx',
                aws_secret_access_key='xxxxxxxxx')

domain_data =  conn.describe_domains('domaainname')

domain_data = (domain_data['DescribeDomainsResponse']
                          ['DescribeDomainsResult']
                          ['DomainStatusList'])

domain = Domain(conn, domain_data[0])

doc_service = domain.get_document_service()

user =    {
        'id': 4,
        'username': 'daniella',
        'last_activity': 1334253279,
        'follower_count': 7,
        'location': 'USA',
        'snippet': 'Just like Dan, I like to watch a good sunset, but heights scare me.',
    }


doc_service.add(user['id'],  user)
result = doc_service.commit()
print result

让我知道这是否解决了您的问题?

对于get_search_service,您可以找到我的答案。

How do I connect to an existing CloudSearch domain in boto?