Mtermvectors 쿼리 결과를 새로운 인덱스에 저장할 수 있나요?


(Yungyoung Ok) #1

현재 mtermvectors 쿼리를 이용해서 단어별 점수 합계를 구하는 작업을 진행 중입니다.

  1. mtermvectors 결과 확인
  2. 결과를 새로운 인덱스에 저장(nested 형태로 변경)
  3. 새로운 인덱스를 가져와서 어그리게이션 작업

위의 세 가지 작업을 하나의 쿼리만으로 동시에 할 수 있나요?

현재 제 쿼리 같이 올립니다.
세 단계로 나누어진 작업을 한 단계로 줄이고 싶어요.

  1. mtermvectors query
    GET /_mtermvectors?pretty=true
    {
    "docs":[
    {
    "_index": "je_test",
    "_type": "je_tweet",
    "_id": "2",
    "fields":["contents"],
    "offsets":false,
    "payloads":false,
    "positions":false,
    "term_statistics": true,
    "field_statistics":true,
    "filter":{
    "min_term_freq":1,
    "max_doc_freq": 3
    }
    },
    {
    "_index": "je_test",
    "_type": "je_tweet",
    "_id": "1",
    "fields":["contents"],
    "offsets":false,
    "payloads":false,
    "positions":false,
    "term_statistics": true,
    "field_statistics":true,
    "filter":{
    "min_term_freq":1,
    "max_doc_freq": 3
    }
    }
    ]
    }

  2. 검색 결과 저장할 인덱스 맵핑
    PUT ok_index
    {
    "mappings": {
    "word": {
    "properties": {
    "termsarray": {
    "type": "nested",
    "properties": {
    "form": {
    "type":"text",
    "fielddata": true
    }
    }
    }
    }
    }
    }
    }

  3. 어그리게이션 사용해서 단어별 점수 구하기
    GET ok_index/_search
    {
    "aggs" : {
    "termsarray" : {
    "nested" : {
    "path" : "termsarray"
    },
    "aggs" : {
    "word" : {
    "terms" : {
    "field" : "termsarray.form",
    "order" : { "sum_score" : "desc" }
    },
    "aggs" : {
    "sum_score" : { "sum" : { "field" : "termsarray.score" }}
    }
    }
    }
    }
    }
    }


(system) #2

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