Elasti c ошибка поиска при использовании с python - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь подключиться к поиску elasti c, используя это:

app.config['ELASTICSEARCH_URL'] = 'https://localhost:9200/'

Но отображается эта ошибка, которая означает, что поиск elasti c не подключен.

asticsearch .exceptions.ConnectionError: ConnectionError (: Не удалось установить sh новое соединение: [Errno 111] Соединение отклонено), вызванное: NewConnectionError (: Не удалось установить sh новое соединение: [Errno 111] Соединение отклонено)

Я искал в stackoverflow, они говорят, что проблема с сертификатом, и установили для ssl значение true. Я просто хочу знать, как я могу подключить поиск elasti c к python с использованием упомянутого синтаксиса.

Я сделал простой клон кору. Все работает. Позже я решил добавить elasti c поиск в нем. Сначала я подключился.

def add_to_index(index, model):
if not current_app.elasticsearch:
    return
payload = {}
for field in model.__searchable__:
    payload[field] = getattr(model, field)
current_app.elasticsearch.index(index=index, doc_type=index, id=model.id,
                                body=payload) # shows error here.

. При добавлении нового вопроса от пользователя я использовал его для сохранения в базе данных, но теперь я также добавляю его в поиск elasti c вместе с databse.

при отображении ошибки отладки:

quora/models.py", line 34, in after_commit
    add_to_index(obj.__tablename__, obj) 
quora/search.py", line 11, in add_to_index # this function i have written above.
    body=payload)**

Моя модель

class Answer(db.Model):
id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.Text())
timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable='False')
question_id = db.Column(db.Integer, db.ForeignKey('question.id'), nullable='False')

def __repr__(self):
    return f"('{self.id}', '{self.body}', '{self.timestamp}')"


class Question(SearchableMixin, db.Model):

id = db.Column(db.Integer, primary_key=True)
body = db.Column(db.Text())
timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable='False')
__searchable__ = ['body']

def __repr__(self):
    return f"('{self.id}', '{self.body}', '{self.timestamp}')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...