elasticsearchcompletion 형식 필드 값이 비어 있습니다.

4811 단어 Elasticsearch

문제 설명


맵핑에서 필드를 "completion"형식으로 설정하여 검색 알림 기능에 사용합니다. 맵핑의 예는 다음과 같습니다.
PUT test_suggest
{
  "mappings": {
    "test_suggest": {
      "properties": {
        "title": {
          "type": "text",
          "fields": {
            "title_suggest": {
              "type": "completion",
              "analyzer": "simple",
              "preserve_separators": true,
              "preserve_position_increments": true,
              "max_input_length": 50
            }
          }
          }
      }
    }
  },
  "settings": {}
}

업로드할 때 title 필드가 비어 있으면 다음과 같은 오류가 반환됩니다.
PUT test_suggest/test_suggest/1
{
  "itemid": 1,
  "title": ""
}
#  
{
  "error": {
    "root_cause": [
      {
        "type": "mapper_parsing_exception",
        "reason": "failed to parse"
      }
    ],
    "type": "mapper_parsing_exception",
    "reason": "failed to parse",
    "caused_by": {
      "type": "illegal_argument_exception",
      "reason": "value must have a length > 0"
    }
  },
  "status": 400
}


원인 분석


elasticsearch에서completion 필드는 비어 있을 수 없습니다. 이 문제는 elasticsearch 6.4.0 이하 버전의 버그입니다. 새 버전에서 복구되었기 때문에 업그레이드를 시도하거나 필드가 비어 있지 않습니다.

참고 자료


[1]. Elasticsearch 중국어 커뮤니티 색인 공백 문제 [2].Elasticsearch Github completion 인덱스 비어 있는 값 수정

좋은 웹페이지 즐겨찾기