자바 하이 레벨 REST 클라이언트를 사용하고 있습니다. 여기에있다 link to its documentationelasticsearch에 중첩 된 필드를 저장하는 방법
나는 클라이언트를 만들었습니다.
trait HighLevelRestClient {
def elasticSearchClient(): RestHighLevelClient = {
new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", ElasticSearchPort, "http")))
}
}
데이터를 인덱싱하지만
는 중첩 필드 문자열로 저장되어있다. 다음 코드는 인덱스가 생성되는 방법을 설명합니다 :val indexRequest = new IndexRequest("my-index", "test-type").source(
"person", person,
"date", DateTime.now()
)
, 사람으로 표현되는 경우 클래스입니다 :
Person(personId: String, name: String, address: Address)
및 주소로서 표현되는 경우 클래스 자체입니다 :
Address(city: String, zip: Int)
내 응용 프로그램에서는 사람을 키 - 값 쌍으로 저장해야 필드를 검색 할 수 있습니다. 그러나 위의 코드를 사용하면 String으로 저장됩니다.
{
"person" : "Person(my-id, my-name, Address(my-city, zip-value))",
"date" : "2017-12-12"
}
및 필요한 구조는 다음과 같습니다
{
"person" : {
"personId" : "my-id",
"name" : "person-name",
"address": {
"city" : "city-name",
"zip" : 12345
}
},
"date" : "2017-12-12"
}
내가 잘 질문 액자를 바랍니다. 어떤 도움을 주시면 감사하겠습니다. 감사!