Nano Hash - криптовалюты, майнинг, программирование

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

Я только начинаю работать с boto для подключения к Amazon CloudSearch.

У меня работают примеры, но я не могу найти примеры подключения к существующему домену, все примеры создают новый домен.

Ковыряясь, я нашел get_domain, но это не работает, если я вызываю его для объекта соединения.

>>> conn.get_domain('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Layer2' object has no attribute 'get_domain'

Любые предложения относительно того, как я могу подключиться к существующему домену?

[править] Я начал с этого: http://boto.cloudhackers.com/en/latest/cloudsearch_tut.html

Итак, все, что я делаю это

import boto
conn = boto.connect_cloudsearch()

Ответы:


1

Вы можете либо выполнить conn.list_domains(), который вернет список объектов домена для всех ваших текущих доменов, либо вы можете выполнить conn.lookup('foo'), который вернет объект домена для указанного имени домена.

06.10.2012
  • Спасибо! (Я удалил предыдущий комментарий о том, что это не работает, это была ошибка оператора). 07.10.2012
  • вызов conn.lookup('name') вызывает следующую ошибку: AttributeError: объект 'Layer2' не имеет атрибута 'lookup'. Просматривая код, я не могу найти метод «поиска» в CloudSearch. 05.02.2013
  • Хм. Модуль cloudsearch.layer2 определенно определяет метод lookup. Он был у него с 22/08/2012, когда он был добавлен с этим коммитом (github.com/ boto/boto/commit/). Возможно, вы используете более старую версию boto? 05.02.2013
  • Ба, только что обновил мой boto до 2.9.5, и поиск не найден, я думаю, он был перемещен с тех пор? 04.06.2013
  • Это все еще там. Это в boto/cloudsearch/layer2.py. 04.06.2013
  • boto.connect_cloudsearch возвращает экземпляр layer1. Я использовал boto.connect_cloudsearch2, который использует слой 2 и имеет метод lookup. 14.06.2014

  • 2

    Это идеальное решение. Я использую boto 2.38.0.

    У меня была такая же проблема, с которой сталкиваются другие. Затем я сделал этот скрипт для подключения домена поиска aws и получения результата

    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])
    search_service = domain.get_search_service()
    results = search_service.search(q="abc")
    
    print map(lambda x: x, results)
    

    Сообщите мне о любой ошибке. Я надеюсь, что это сработает для всех.

    26.05.2015

    3

    Используя boto 2.36, я заработал, взглянув на исходный код.

    import boto.cloudsearch
    # login to AWS
    conn = boto.connect_cloudsearch2(region="us-west-1",
                    aws_access_key_id='xxxxx',
                    aws_secret_access_key='xxxxx')
    
    
    # get the right Domain:
    domain = conn.lookup('toolbox')
    
    print domain
    
    19.03.2015

    4

    у меня это сработало,
    у нас только один домен,
    dom = Domain(con,con.describe_domains()[0])

    08.07.2013

    5

    Сначала я реализовал соединение, используя подход Layer2:

    Layer2(region='region name').lookup('domain name').

    Однако после некоторого профилирования я обнаружил, что задержка при создании соединения очень велика.

    Когда я говорю «очень высокий», я имею в виду, что время создания соединения соперничало со временем выполнения запроса и получения ответа (в большинстве случаев> 500 мс).

    Поэтому моим решением было создать Domain напрямую. Примечание: это решение ненадежно, но оно значительно снижает задержку

    Вы можете создать домен, выполнив что-то вроде (многие из этих значений можно найти, выполнив aws cloudsearch describe-domains):

            domain = Domain(boto.cloudsearch2.connect_to_region('region name'), {
                'Created': True,
                'Deleted': False,
                'Processing': False,
                'RequiresIndexDocuments': False,
                'DomainId': 'domain_id',
                'DomainName': 'domain_name',
                'SearchInstanceCount': 2,
                'SearchPartitionCount': 1,
                'DocService': {
                    'Endpoint': 'doc_service_endpoint',
                },
                'ARN': 'domain_arn',
                'SearchService': {
                    'Endpoint': 'search_service_endpoint'
                }
            })
    
    07.06.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..