1

こんにちは、ドキュメントを Cloudsearch ドメインに追加しようとしています。

http://docs.pythonboto.org/en/latest/cloudsearch_tut.html#adding-documents-to-the-index

私のコードスニペットは次のとおりです。

import boto
conn = boto.connect_cloudsearch(aws_access_key_id='<>',aws_secret_access_key='<>')
domain = conn.lookup('testfoo')
doc_service = domain.get_document_service()
doc_service.add(doc_id, version, data)

最初に 、GAE で同じリクエストの問題 Boto CloudSearch を取得しました: TypeError: request() が予期しないキーワード引数 'config' を取得しました

そのため、構成kwargを削除しました(結果もわかりません)。

boto.cloudsearch.document.CommitMismatchError: Incorrect number of adds returned. Commit: 1 Response: 0

私のデータはこんな感じです

[
{
        "raw" : "whole bunch of raw text",
        "title" : "My new title",
        "blurb" : "A really exciting article",
        "document_type" : "Tech Guide",
        "url" : "http://www.foobar/7199/tech-advice"
}
]

どんな助けでも大歓迎です

4

2 に答える 2

1

問題は、jsonをデータで構築したときに、jsonではなく文字列であることが判明しました。したがって、これがクラウドサーチ ドメインに送信される json を生成し、id と「追加」操作を組み合わせると、「フィールド」が含まれます。 title", "blurb" : "本当にエキサイティングな記事", "document_type" : "Tech Guide", "url" : " http://www.foobar/7199/tech-advice " } ]" 文字列として

解決策は、単にデータがjsonエンコーディングを必要とすることです

doc_service.add(doc_id, バージョン, json.loads(データ) )

于 2013-03-06T12:25:30.247 に答える
0

ここでは、データから [] を削除するだけです。単一のオブジェクトがある場合は、辞書で渡す必要があるためです。{}

[ { "raw" : "生のテキスト全体", "title" : "私の新しいタイトル", "blurb" : "本当にエキサイティングな記事", "document_type" : "Tech Guide", "url" : " http ://www.foobar/7199/tech-advice " } ]

于 2015-05-27T07:32:57.550 に答える