Map의 키가 도큐먼트마다 다른 경우 인덱스 패턴 작성 방법을 알고 싶습니다

제가 다루는 도큐먼트 규격은 아래와 같습니다.

{
  // ... 기타 데이터들
  photos: {
   "<해시된 아이디 1>": {
     // "<해시된 아이디 1>" 과 연관된 데이터
   },
   "<해시된 아이디 1>": {
     // "<해시된 아이디 1>" 과 연관된 데이터
   },
  }
}

제가 원하는 결과는 키바나 -> Stack Management -> 인덱스패턴 에서 phots까지만 Fields에 나오는 것 입니다.
지금 상태는 photos.<해시된 아이디 1>.속성.속성... 과 같이 나오고 있습니다.

Discover에서 사이드바의 available fields도 동일하게 인덱싱된 모든 photos의 키를 보여주고 있구요

photos는 검색 결과에 보여주되 available fields에는 안나오게 하는 방법이 있을까요?
source filters에 photos.* 를 넣어서 우선은 available fields가 엉망으로 나오는건 막았는데 검색 결과에 정보가 안나와서 해결 방법을 찾고 싶습니다

우선 필드를 저렇게 꼭 만드셔야 하는 이유가 있으신지 궁금합니다. 구분자를 값이 아닌 필드명으로 하는 것은 피해야 할 사례인데 하고 계셔서요. 저렇게 하면 검색도 제대로 하기 어렵고 데이터에 쓰레기 파편도 심해집니다.

photos 는 하위 필드들이 있는 모 필드이고 실제로 photos 필드의 속성은 없습니다. 따라서 kibana visualization 에서 photos 까지만 표시되도록 하는 것은 불가능 해 보입니다.

mapping 에 photos 필드를 index : null 로 하면 될 수도 있을것 같은데, 그렇게 하면 photos 이하 필드들은 검색하거나 시각화 하는 것은 불가능해집니다.

1 Like

@kimjmin 님 답변 감사합니다! 말씀해주신대로 구분자를 필드로 하니까 아무것도 할 수 없는 상황이 되더라구요
꼭 맵으로 저장할 필요는 없구요 DynamoDB에 값을 저장하고 있는데 맵에서 리스트로 변경해서 다시 인덱싱 해본 다음 후기를 남겨볼게요

포럼에 혹시나 할 수 있는 방법이 있지 않을까 고민하다가 질문을 남겼는데 답변해주셔서 정말 감사합니다