amazon cloudsearch не может добавить документ с помощью boto?

Я пытаюсь использовать последнюю версию 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», возникает ошибка:

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

В любом случае никакие документы не добавляются/фиксируются. Облако кажется очень сложным в использовании... у кого-нибудь есть идеи?


person Rolando    schedule 02.04.2015    source источник
comment
вы нашли решение?   -  person jatinkumar patel    schedule 26.05.2015


Ответы (1)


Сегодня я столкнулся с той же проблемой с бото. Я пробовал, прошло некоторое время и, наконец, найти решение.

Используйте облачный поиск2. Я использую 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 вы можете найти мой ответ.

Как мне подключиться к существующему домену CloudSearch в бото?

person jatinkumar patel    schedule 26.05.2015
comment
Сначала у меня была такая же проблема... Я изменил код с помощью cloudsearch2, и он работает нормально! Спасибо за Ваш ответ! - person barbasa; 31.05.2015
comment
Можете ли вы проголосовать за этот ответ, так что он будет полезен для других и может сэкономить время. - person jatinkumar patel; 02.06.2015