コンテンツのコーパスをインデックスするために、EC2 インスタンスで Elasticsearch の実装を使用して公開した RESTful API があります。ターミナル (MacOSX) から以下を実行して検索をクエリできます。
curl -XGET 'http://ES_search_demo.com/document/record/_search?pretty=true' -d '{
"query": {
"bool": {
"must": [
{
"text": {
"record.document": "SOME_JOURNAL"
}
},
{
"text": {
"record.articleTitle": "farmers"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 50,
"sort": [],
"facets": {}
}'
上記を または を使用して API リクエストに変換するにはどうすればよいですpython/requests
かpython/urllib2
(どちらを選択すればよいかわかりません - urllib2 を使用してきましたが、requests の方が優れていると聞きました...)? ヘッダーとして渡すのですか、それとも他の方法で渡すのですか?
ベストアンサー1
リクエストの使用:
import requests
url = 'http://ES_search_demo.com/document/record/_search?pretty=true'
data = '''{
"query": {
"bool": {
"must": [
{
"text": {
"record.document": "SOME_JOURNAL"
}
},
{
"text": {
"record.articleTitle": "farmers"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 50,
"sort": [],
"facets": {}
}'''
response = requests.post(url, data=data)
API が返す応答の種類に応じて、response.text
またはを確認する必要がありますresponse.json()
(または、最初に検査する必要があります)。ここ のresponse.status_code
クイックスタート ドキュメント、特にこのセクション を参照してください。