Can't get text on a START_ARRAY at 14:21

3173 단어 ElasticSearch
ElasticSearch 요약 보기: ElasticSearch 강좌 요약
 
must,should,must not를 사용할 때 어떤 필드는 X일 수도 있고 Y일 수도 있고 심지어 Z일 수도 있다.
GET /ecommerce/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "yagao"
          }
        }
      ],
      "should": [
        {
          "match": {
            "desc": ["fangzhu","caoben"]
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "price": 25
          }
        }
      ],
     "minimum_should_match": 1
    }
  }
}

 
결과
{
  "error": {
    "root_cause": [
      {
        "type": "illegal_state_exception",
        "reason": "Can't get text on a START_ARRAY at 14:21"
      }
    ],
    "type": "illegal_state_exception",
    "reason": "Can't get text on a START_ARRAY at 14:21"
  },
  "status": 500
}

 
인터넷에서 오랫동안 찾았지만 국내의 어떤 블로그나 포럼에서도 해결 방안을 찾지 못했다. 다행히도 외국의 Elastic Search 커뮤니티에서 해결 방안을 찾았기 때문에 이를 기록으로 삼아 원래 링크는 [Solved] Illegal State - START_ARRAY
수정 후
GET /ecommerce/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "yagao"
          }
        }
      ],
      "should": [
        {
          "match": {
            "desc": "fangzhu"
          }
        },
        {
          "match": {
            "desc": "caoben"
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "price": 25
          }
        }
      ],
     "minimum_should_match": 1
    }
  }
}

 
결과 반환
{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 2,
    "max_score": 0.5753642,
    "hits": [
      {
        "_index": "ecommerce",
        "_type": "product",
        "_id": "3",
        "_score": 0.5753642,
        "_source": {
          "name": "zhonghua yagao",
          "desc": "caoben zhiwu",
          "price": 40,
          "producer": "zhonghua producer",
          "tags": [
            "qingxin"
          ]
        }
      },
      {
        "_index": "ecommerce",
        "_type": "product",
        "_id": "J3fLFWYBBoLynJN1-kOG",
        "_score": 0.36464313,
        "_source": {
          "name": "test yagao",
          "desc": "youxiao fangzhu"
        }
      }
    ]
  }
}

문제 해결
더 많은 검색 관련 보기 가능
ElasticSearch 자습서 - Kibana 간단한 작업 ES

좋은 웹페이지 즐겨찾기