我正在尝试使用最新的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
在任何一种情况下都不会添加/提交任何文档。 云似乎很难使用......任何人都有任何想法?
答案 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,您可以找到我的答案。