탄성 검색을 사용하려고합니다. 그러나 중첩 된 객체 또는 일반 객체를 사용해야하는지 여부를 결정할 수는 없습니다. 장단점은 무엇입니까?탄성 검색에서 오브젝트 유형을 선택하는 방법은 무엇입니까?
우리는 매우 스키마. 데이터 소스를 변경 한 (시간당) 정상 및 중첩 된 객체 사이의 가장 큰 차이점
탄성 검색을 사용하려고합니다. 그러나 중첩 된 객체 또는 일반 객체를 사용해야하는지 여부를 결정할 수는 없습니다. 장단점은 무엇입니까?탄성 검색에서 오브젝트 유형을 선택하는 방법은 무엇입니까?
우리는 매우 스키마. 데이터 소스를 변경 한 (시간당) 정상 및 중첩 된 객체 사이의 가장 큰 차이점
하나는 일반 객체가 평평하게되어 있다는 것입니다. 내부 객체에서 배열을 사용하는 경우 객체의 개별 속성을 구분할 수 없습니다. 이 색인 것
{
"team": {
"name":"the best",
"players": [
{
"firstname":"Ron",
"lastname":"Red"
},
{
"firstname":"Bea",
"lastname":"Blue"
}
]
}
}
로 : 예, 당신은 선수와 팀이 상상이 문제를 극복 할 수있는 중첩 된 객체와
team.name=the best
team.players.firstname=[ron,bea]
team.players.lastname=[red,blue]
을, 그러나 당신은 중첩 된 쿼리 작업을 시작해야하고 집계. 따라서 firstname Ron과 lastname red가있는 사람을 쿼리하려면 중첩 된 이름이 필요합니다.
빠른 변경 스키마에 대한 귀하의 발언에 대해 마지막으로 한 말씀드립니다. 그것은 다른 문제입니다. 당신이 선택한 구조는 중요하지 않습니다. 스키마의 변경 사항에 따라 모든 콘텐츠를 다시 색인해야한다는 의미 일 수 있습니다. 개체가이 중첩 된 경우
을하는 데 도움이
희망은 그 객체의 권리를 검색하기 위해 여러 쿼리가 의미? –
아니요. 실제로는 중첩 쿼리를 사용하여 문서를 가져올 수 있습니다. 중첩 된 객체를 포함하는 문서 만 반환 할 수 있습니다. 어쩌면 당신은 elasticsearch에서 부모 - 자식 구조도 사용할 수 있습니다. –
적응 형 시스템이 필요하며 빠르게해야합니다. –