2014-04-29 3 views
0

DocumentMap을 사용하여 대량 인덱스를 만들려고합니다. 그DocumentMap으로 중첩 된 개체를 인덱싱하십시오.

case class Comment(id: String, fromId: String, fromName: String, message: String,  creationTime: String, likeCount: Int =0) 
    extends DocumentMap { 
    def map = Map("id" -> id, "fromId" -> fromId, "fromName" -> fromName, "message" -> message, "createdTime" -> creationTime, "likeCont" -> likeCount) 
} 

case class Post(id: String, fromId: String, fromName: String, message: String, fullUrl: String, createdTime: String, updateTime: String, likeCont: Int= 0, comments: List[Comment] = Nil) 
    extends DocumentMap { 
    def map = Map("id" -> id, "fromId" -> fromId, "fromName" -> fromName, "message" -> message, "fullUrl" -> fullUrl, "createdTime" -> createdTime, "updateTime" -> updateTime, "likeCount" -> likeCont, 
    "comments" -> comments) 
    } 

같은 클래스를지도 그리고 이것은

val test =jsonValue(0).as[Post] 


    client.execute { 
    index into "posts/test" doc test 
    } 

데이터 (지금 내가 할 수있는 유일한 인덱스 단일 항목), 나는 두 가지 질문

1.Should을 얼마나 메신저 색인입니다 색인 생성 전에 중첩 된 속성 주석을 매핑합니까 ?? 이제 모든 목록이 단일 문자열로 색인화되기 때문입니다.

2. 게시 개체의 목록을 색인하는 방법은 무엇입니까 ?? 이제는 하나의 객체 만 색인 할 수 있습니다.

솔루션

1.first 매우 중요한 상자 인덱싱 전에 매핑.

2. 그런 대량 색인을 사용하십시오. 중첩으로

val ops = for (j <- jsonValue) yield index into "posts/test" doc j.as[Post] 

client.bulk(ops: _*) 

감사 미키

답변

0

당신은 매핑을 작성하고 주석 필드를 설정할 수를 입력합니다. 그런 다음 모든 주석 필드가 올바르게 색인화됩니다. 기본적으로 필자는 필드를 평평하게하는 내부 형식을 사용해야하므로 주석에 작성자라는 필드가 있으면 모든 작성자가 함께 그룹화됩니다.

여러 문서를 색인화하려면 대량 API를 사용하십시오. 테스트에서 :

client bulk( index into "transport/air" id 1 fields "company" -> "ba", index into "transport/air" id 2 fields "company" -> "aeroflot", index into "transport/air" id 3 fields "company" -> "american air", index into "transport/air" id 4 fields "company" -> "egypt air" )

+0

의 어떤 두 번째 부분의 동적 대량 구문 ... – MIkCode

+0

을 나는 매핑 부분을 가지고,하지만 난 후 개체의 N 항목이있는 경우 ... 어떻게 무엇을 만들 수 있습니다 응답 주소. client.bulk()를 사용하고 bulk() 내부에 원하는만큼 많은 인덱스 호출을 넣으십시오. – monkjack

+0

은 기본적으로이 내가 뭘 원하는지, ((J <대한 - jsonValue) { "게시물/테스트"문서의 j.as에 인덱스 [포스트] } ) 발 RESP = client.bulk 올바른 방법은 무엇입니까 그것을 구현하려면? – MIkCode