2016-08-23 3 views

답변

1

문서에 입력란을 추가 할 수 있습니까? 사용자를 알고 스크립트를 사용하여 시간을 얻고, 메타 데이터를 문서에 추가하고, 문서를 ES 라이브러리에 추가하는 스크립트를 사용하는 것이 매우 쉽습니다. 저장 추가하려면 당신이 원하는 문서를했을 ::

# coding: utf-8 
true = True 
false = False 
null = None 

import sys 

inDoc = sys.argv[1] 

#print inDoc 
parts = inDoc.split(".") 
if(parts[len(parts)-1].lower()=="json"): 
    with open(inDoc,"r") as INDOC: 
     doc = INDOC.read() 
else: 
    doc = inDoc 

del inDoc 

pyDoc = eval(doc) 

del doc 

pyDoc["#Creator"] = "<Your_Name>" 
import time 
import datetime 
pyDoc["#CreatedAt"] = str(datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S')) 

doc = str(pyDoc) 

del pyDoc 

esDomain = "search-movies-4f3nw7eiia2xiynjr55a2nao2y.us-west-1.es.amazonaws.com/movies/movie/tt0116996" 

import os 
command = "curl -XPUT "+esDomain+" -d '"+str(doc).replace(": True",": true").replace(": False",": false").replace(": None",": null").replace("'",'"')+"'" 

del doc 
del esDomain 

#print (command) 
os.system(command) 

del command 

없음 : 참 : 거짓 또는 다음 코드는 데이터가 어떤 따옴표 또는 인용을 포함하지 않는 한 작동 예를 들어

newDoc.json과 같이 다음 명령을 실행하십시오.

python AddWithStamps.py ./newDoc.json 

문서 디렉토리로 이동 한 후. 또는 다음을 실행할 수도 있습니다 :

python AddWithStamps.py '{"Some": "Document"}' 
+0

저는 (노드를 사용하고 있습니다) 파이썬에 익숙하지 않지만 사용자 이름과 날짜가있는 색인의 모든 문서에 필드를 추가한다고 가정합니까? – Jared

+0

그게 그 놀이 야. – kpie

+0

모든 문서에 대해 전체 필드를 저장하는 대신 내 메타 데이터 전용으로 새 색인을 만드는 것이 낫지 않습니까? – Jared

관련 문제