Elasticsearch에 이상한 문제가 있습니다. 매핑은 특정 필드의 유형이 long
임을 지정합니다. 이제 우연히 long
대신 해당 필드에 대해 string
유형의 문서를 색인화하려고했습니다. 나는 Elasticsearch에서 오류를 얻지 못했지만 문서는 절대로 색인 생성되지 않았습니다. 문제를 해결할 때 문서의 색인이 제대로 작성되었습니다.문서가 필드에 대해 매핑 불일치가있는 경우 Elasticsearch가 자동으로 실패합니다.
예 :
내 매핑 :이 문서를 보낼 때
{
"field1": {
"type": "long"
}
}
그것은 자동으로 실패 :이를 보낼 때 예상대로
{
"field1": "this is a string"
}
작동 :
{
"field1": 12345
}
이런 종류의 오류를 감지 할 수있는 방법이 있습니까? 이 true
by default하고 항상 숫자로 문자열을 변환하기위한 분수를 절단하려고하므로 그런 경우에는
{
"long_field": {
"type": "long"
}
}
, 당신은 false
에 coerce
플래그를 설정할 수 있습니다
당신이 침묵 인덱스 실패가있을 때 당신이 Elasticsearch에서 다시 받고 응답을 공유 할 수 있습니까? –
아마도 전역 수준에서 [ignore_malformed] (https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html#mapping-settings) 플래그가 true로 설정되어있을 것입니다. 색인을 생성 한 예제 문서를 제공하여 자동으로 실패하게 만들었습니까? 또한 elasticsearch의 버전입니다. – keety
예를 보려면 업데이트 된 질문을 참조하십시오. 네가 방금 언급 한 깃발이 내가 찾고 있던 깃발일지도 모른다. 유일한 문제는 이것이 잘못된 필드를 무시하지만 그 필드가 필요하기 때문에 나에게 좋지 않은 나머지 문서의 색인을 생성한다는 것입니다. 잘못된 형식의 필드를 인덱싱하려고하면 오류를 반환하고 오류를 반환하고 싶습니다. 그렇게 할 수있는 방법이 있습니까? –