2016-08-23 2 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 

なし:真:偽または次のコードは、あなたのデータは任意の二重引用符または引用されたが含まれていない限り、働く例えば

as newDoc.jsonと入力して、次のコマンドを実行してください。

python AddWithStamps.py ./newDoc.json 

ドキュメントのディレクトリに移動した後。また、あなたが実行することができます:

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

を私は、Pythonに慣れていないよ(私はノードを使用しています)が、私は仮定すると、ユーザー名と日付と私のインデックス内のすべての文書にフィールドを追加しているのですか? – Jared

+0

それは遊びです... – kpie

+0

すべての文書のために余分なフィールドをすべて格納するのではなく、自分のメタデータ専用の新しいインデックスを作成する方が良いのではないでしょうか? – Jared

関連する問題