ElasticSearch es("localhost:9200");
// Index one document.
for(int i =0 ; i< 1000000 ;i++)
{
Json1::Object jData;
jData.addMemberByKey("id", i);
jData.addMemberByKey("user", "kimchy");
jData.addMemberByKey("post_date", "2009-11-15T14:12:12");
jData.addMemberByKey("message", "trying out Elasticsearch");
char inCh[64] = {0};
sprintf(inCh,"%d",i);
if(!es.index("twitter_new", "tweet_new", inCh, jData))
MyLog::DebugLog ("Index failed.");
}
// Get document.
Json1::Object jResult;
if(!es.getDocument("twitter", "tweet", "1", jResult))
std::cerr << "Failed to get document." << std::endl;
if(jResult["_source"].getObject() != jData)
std::cerr << "Oups, something did not work." << std::endl;
std::cout << "Great we indexed our first document: " << jResult.pretty() << std::endl;
// Update document
Json1::Object jUpdateData;
jUpdateData.addMemberByKey("user", "cpp-elasticsearch");
if(!es.update("twitter", "tweet", "1", jUpdateData))
std::cerr << "Failed to update document." << std::endl;
// Search document.
Json1::Object jSearchResult;
long resultSize = es.search("twitter", "tweet", "{ \"query\": { \"bool\": { \"should\": [ { \"match\": { \"id\": 8888 } },{ \"match\": { \"user\": \"kimchy\" } }]}}}", jSearchResult);
// Delete document.
//if(!es.deleteDocument("twitter", "tweet", "1"))
// std::cerr << "Failed to delete document." << std::endl;
api 代码: http://download.youkuaiyun.com/my