Выбор эластичного поискового индекса динамически Python - PullRequest
0 голосов
/ 02 июля 2019

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

import os
import time
import datetime
from datetime import datetime
import shutil
from elasticsearch import Elasticsearch
from esindex import createIndex
client=Elasticsearch()

У меня есть тысячи изображений, и название изображения будет: 1559624525_cb704087042c76bf.jpg. Я делю имя на две части: метку времени (1559624525) и мачид (cb704087042c76bf) и записываю его в индекс es.

path="/home/ubuntu/images/"
for root, dirs, files in os.walk(path):
    for name in files:
        try:        
            dat=name.split('_')[0]
            machid=name.split('_')[1]
            machid=machid.split('.')[0]
            createIndex(machid)  ##this creates index dynamically
            dat=int(dat)
            dat=datetime.utcfromtimestamp(dat).strftime('%d-%m-%Y %H:%M:%S')
            dte=dat.split(' ')[0]
            id=id+1                 
            doc = {'sequence_id':id,'imagename': name, 'time_stamp': dat, 'date'=dte}
            #print(doc)
            client.index(index=machid,  body=doc)  ##this line is not working.  If i comment this out, shutil works.
            shutil.copy('/home/ubuntu/images/'+ name, '/home/ubuntu/test/')
            os.remove('/home/ubuntu/images/' + name)
        except Exception:
            continue        

как я могу ввести документ вasticsearch, динамически выбирая индекс.

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Видимо, я понял, что мой код работает. В функции createIndex у меня было поле даты, которое было установлено на дату, однако приведенный выше код анализирует дату как текст. Чтобы проверить, когда я изменил дату на текст в createIndex, все стало на свои места. Отвечая на это, чтобы завершить цикл QA.

0 голосов
/ 03 июля 2019
  1. распечатать исключение в блоке кроме
  2. Проверка machid не пуста
  3. Поскольку ошибок нет, используйте Cat APIS для проверки любых индексов, созданных в ES. curl -X GET "localhost: 9200 / _cat / indices"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...