CircleCI弹性搜索与Haystack

时间:2015-07-12 04:22:15

标签: python django elasticsearch django-haystack circleci

我有问题让CircleCI完成我的Django项目的弹性搜索测试。

这是来自settings.py

的施法
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
        'URL': 'http://127.0.0.1:9200/',
       'INDEX_NAME': 'index_elasticsearch',
   },
}

HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'

以下是CircleCI报告中的错误。它几乎出现在与数据库的每次互动中。

File "/home/ubuntu/virtualenvs/venv-system/local/lib/python2.7/site-packages/elasticsearch/helpers/__init__.py", line 155, in streaming_bulk
raise BulkIndexError('%i document(s) failed to index.' % len(errors), errors)
BulkIndexError: ('1 document(s) failed to index.', [{u'index': {u'_type': u'modelresult', u'_id': u'website.query.1', u'ok': True, u'_version': 19, u'_index': u'index_elasticsearch'}}])

这是我的circle.yml文件,用于配置CircleCI测试器:

machine:
  environment:
    DATABASE_URL: mysql://ubuntu:@localhost:3306/circle_test
    CUSTOM_DATABASE_URL: mysql://ubuntu:@localhost:3306/circle_test
services:
   - elasticsearch

1 个答案:

答案 0 :(得分:1)

目前,CirleCI的默认版ElasticSearch目前为v0.90.2,而Haystack v2.4.X仅支持ElasticSearch v1.X:

http://django-haystack.readthedocs.org/en/latest/installing_search_engines.html#elasticsearch

您希望在运行测试之前明确下载v1.X +版本的ElasticSearch作为依赖项:

https://circleci.com/docs/installing-elasticsearch

这对我有用。