이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 9077|회답: 0

Elasticsearch:No handler for type [string] declared on field[XX]的解决办法

[링크 복사]
게시됨 2019. 1. 9. 오전 10:29:11 | | | |
오류 이유

{
"오류": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "필드 [upload_status]에서 선언된 타입 [문자열]에 대해 핸들러가 없습니다"
}
],
"type": "mapper_parsing_exception",
"reason": "필드 [upload_status]에서 선언된 타입 [문자열]에 대해 핸들러가 없습니다"
},
"상태": 400
}


저는 Elasticsearch 버전 6.2.2를 사용 중이며, 학교 문서에 따라 필드를 만들 때 {"type":"string","index":"not_analyzed"}를 사용합니다.

원인 분석

맞춤법을 확인한 후, 저는 이전에 헤드 플러그인 설치 방식의 문제로 어려움을 겪었기 때문에 Elasticsearch 기능의 새 버전을 확인하기로 했습니다.
역시나, Elasticsearch는 5.X부터 텍스트와 키워드를 도입했는데, 키워드는 세분화가 아닌 필드에 적용되며, 검색할 때만 정확히 일치할 수 있고, 그 시점에서도 문자열은 유지됩니다.

도착6.X는 현을 완전히 제거합니다끝내다.

그 외에는"index" 값은 불리언 변수만 될 수 있습니다

우회 방법

{"type":"text","index":false}

json 수정은 다음과 같습니다:

하지만 다음과 같은 새로운 오류들이 있습니다:

{
"오류": {
"root_cause": [
{
"type": "illegal_argument_exception",
"이유": "[저장소]로의 매핑 업데이트를 거부함. 최종 매핑은 1가지 이상의 타입을 가지게 됩니다: [record, info]"
}
],
"type": "illegal_argument_exception",
"이유": "[저장소]로의 매핑 업데이트를 거부함. 최종 매핑은 1가지 이상의 타입을 가지게 됩니다: [record, info]"
},
"상태": 400
}
그 이유는 다음과 같습니다:Elasticsearch 6.x에서 매핑이 한 가지 타입만 허용하는 큰 변화。 5.x에서 여러 매핑 유형으로 생성된 인덱스는 이전과 같이 Elasticsearch 6.x에서 계속 실행됩니다. Elasticsearch 7.0.0에서는 매핑 타입이 완전히 제거됩니다.

Elasticsearch 7.x 릴리스 이후로는 typeURL의 매개변수가 선택 사항이 되었습니다. 예를 들어, 문서 색인화는 더 이상 문서 유형이 필요하지 않습니다

리소스:

https://github.com/sirensolutions/sentinl/issues/257
https://www.elastic.co/guide/en/ ... moval-of-types.html







이전의:MD5 암호화
다음:C# 코드가 어떻게 컴퓨터를 종료, 재시작, 로그아웃, 잠금, 종료시키는가...
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com