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

**URL:** <https://discuss.elastic.co/t/map/319041>\
**Category:** 한국어 질문 및 토론\
**Created:** [November 16, 2022, 9:15am UTC](https://discuss.elastic.co/t/map/319041 "2022-11-16T09:15:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![ChangJoo\_Park](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/changjoo_park/32/113411_2.png) [@ChangJoo\_Park](https://discuss.elastic.co/u/ChangJoo_Park)\
**Post date:** [November 16, 2022, 9:15am UTC](https://discuss.elastic.co/t/map/319041/1 "2022-11-16T09:15:36Z")

</div>

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

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

```

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

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/5/9/5925d5d7acebb18e3238536d44c6caad951ebb87.png)

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

 ![image](https://us1.discourse-cdn.com/elastic/original/3X/c/0/c073541cc4f386cf22aa85c3cbf6254ff015864c.png)

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

---

<div class="post-metadata">

**Author:** ![kimjmin](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimjmin/32/15223_2.png) [@kimjmin](https://discuss.elastic.co/u/kimjmin)\
**Post date:** [November 16, 2022, 11:49am UTC](https://discuss.elastic.co/t/map/319041/2 "2022-11-16T11:49:01Z")

</div>

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

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

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

---

<div class="post-metadata">

**Author:** ![ChangJoo\_Park](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/changjoo_park/32/113411_2.png) [@ChangJoo\_Park](https://discuss.elastic.co/u/ChangJoo_Park)\
**Post date:** [November 16, 2022, 1:54pm UTC](https://discuss.elastic.co/t/map/319041/3 "2022-11-16T13:54:14Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [December 14, 2022, 1:54pm UTC](https://discuss.elastic.co/t/map/319041/4 "2022-12-14T13:54:25Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
