cloudant,nothing found on db path

6638 단어
org.ektorp.DocumentNotFoundException: nothing found on db path:/cbs_track/_design/tech_demo/_view/view_location?descending=true, Response body: {"error":"not_found","reason":"missing"} at org.ektorp.http.StdResponseHandler.createDbAccessException(StdResponseHandler.java:40) at org.ektorp.http.StdResponseHandler.error(StdResponseHandler.java:68) at org.ektorp.http.RestTemplate.handleResponse(RestTemplate.java:122) at org.ektorp.http.RestTemplate.getUncached(RestTemplate.java:27) at org.ektorp.impl.DefaultQueryExecutor.executeQuery(DefaultQueryExecutor.java:49) at org.ektorp.impl.StdCouchDbConnector.executeQuery(StdCouchDbConnector.java:441) at org.ektorp.impl.StdCouchDbConnector.queryView(StdCouchDbConnector.java:472) at com.ibm.cbs.services.techdemo.TechDemo.main(TechDemo.java:135)
이 오류를 보고할 수 있는 이유는 클라우드에 지정한 문서를 만들지 않았기 때문입니다.tech_demo 및 지정 2단계 인덱스view_location.
solution:
2단계 인덱스 (cloudant에서 view라고 함) 를 기반으로 하는 조회는 다음 주소 뒤에 인자를 추가합니다.
“https://.cloudant.com//_design//_view/
선택할 수 있는 매개 변수는 descending,endkey_docid、 group、group_level、 include_docs,inclusive,keys,limit,stale 등을 참조하십시오.
“https://docs.cloudant.com/api.html#querying-a-view”.
보충:
1. 2단계 인덱스와 조회를 간단히 소개합니다.
2급 인덱스는 Cloudant에서View라고도 불리며 맵Reduce를 통해 계산된 b+트리 인덱스입니다.이 인덱스는 Cloudant 백그라운드의MapReduce 작업을 통해 생성된 것입니다. 이 인덱스는 모든 노드에서 병행적으로 실행되며 증가된 방식으로 인덱스를 업데이트하여 추가, 변경, 삭제된 문서의 변화를 반영합니다.
2단계 색인을 만드는 것은 맵과 Reduce 두 부분으로 구성됩니다.맵 부분은 자바스크립트를 통해 정의됩니다. 예를 들어 다음 예에서 문서에'type'이라는 대상이 존재하고 그 값이'entry'라면 문서에 있는userid 라는 대상을 인덱스합니다.
Reduce 섹션은 Cloudant 내의 _count、_sum、_stats 등 조작부호는 자주 사용하는 온라인 분석을 완성할 수 있다.
모든 데이터베이스에 대해 임의의 수량의 2단계 인덱스를 만들 수 있다.2단계 인덱스의 정의는 설계 문서(Design Document)에 기록되고 같은 설계 문서의 2단계 인덱스는 동시에 업데이트됩니다.2단계 색인에 대한 정의 및 방법은 다음과 같습니다. "https://docs.cloudant.com/api.html#creating-views”.
Note: 디자인 문서(Design Document)는 일반 데이터를 저장하지 않고 함수를 저장하는 특수한 문서입니다.
RMDB에서 인덱스(index)와 보기(view)는 완전히 다른 conception입니다.cloudantDB에서view라고 이름을 지었지만 실제로는 b+트리 인덱스입니다.어떻게 쓰는지 알면 OK야.
2. cloudant에서 view를 만듭니다.

Creating a View (Map-Reduce Index)(quote from here)


To create a view, upload a design document containing the index:
// Uploads the design document with view index:
// {
//   "_id": "_design/name",
//   "views": {
//     "view1": {
//       "map":"function(doc){emit(doc.field, 1)}",
//       "reduce": "function(key, value, rereduce){return sum(values)}"
//     }
//   }
// }

Map<String, Object> view1 = new HashMap<>();
view1.put("map", "function(doc){emit(doc.field, 1)}");
view1.put("reduce", "function(key, value, rereduce){return sum(values)}");

Map<String, Object> views = new HashMap<>();
views.put("view1", view1);

Map<String, Object> view_ddoc = new HashMap<>();
view_ddoc.put("_id", "_design/name");
view_ddoc.put("views", views);

db.save(view_ddoc);

실행하면 cloudant에서 xxdb 홈페이지에서 만든doc와view를 볼 수 있습니다.
query는 이런 방식으로query:https://.cloudant.com//_design//_view/, 많은 매개 변수와 함께 사용할 수 있습니다.

좋은 웹페이지 즐겨찾기