TLDR : 매핑에 not_analyzed라고 표시된 경우에도 일부 필드는 분석됩니다.매핑에서 not_analyzed가 무시됩니다.
데이터 세트가 여러 개 있습니다. 세트마다 포함 된 날짜를 기준으로 Elasticsearch 색인으로 전송됩니다 (색인 이름은 25012016입니다). 일부 세트는 동일한 날짜 및 동일한 색인을 갖습니다.
나는 ES하는 매핑을 보내려면 다음 펄 명령을 사용
print `curl -s -XPUT "http://$ELASTIC_SEARCH_URL/$currentIndexName?pretty" -d ' $mapping'`
index-25012016
추천하고
{
"mappings": {
"myMappingType": {
"properties": {
"present": {
"type":"boolean"
},
"records": {
"type":"integer"
},
"batchID": {
"type":"string",
"index":"not_analyzed"
},
"version": {
"type":"string",
"index":"not_analyzed"
},
"date": {
"type":"date",
"format":"yyyy-MM-dd"
},
"packageCreationDate": {
"type":"date",
"format":"MM/dd/yyyy-HH:mm"
}
}
}
}
}
보이는 문자열
전지. 이 명령은 이전에 이미 완료 한 $ currentIndexName을 제외한 모든 세트에 대해 반복됩니다. 명령이 실행되면 , ES의 대답은 그때 $ 출력 _는 JSON 파일의 이름입니다 `curl -s -XPOST "$ELASTIC_SEARCH_URL/$currentIndexName/_bulk?pretty" --data-binary \@$outputFileName`;
와 ES에 데이터를 보내,이 매핑 단계가 생략 또는 달성했다 여부
{
"acknowledged" : true
}
입니다.
문제는 not_analyzed를 Kibana/Settings/Indices에서 지정하더라도 문자열 필드는 분석되고 색인 처리 된 것으로 표시되어 색인이 필요한 위치에 표시됩니다. 따라서 버전 필드는 모두 ("3.2.506 64 비트") 동일하므로 파이 차트에는 a 대신에 "3.2.506", "64"및 "bit"의 세 개의 동일한 조각이 표시됩니다 전체 unsliced "3.2.506 64 비트"파이. 그러나 부울, 숫자, 날짜 필드 및 메타 필드는 분석되지 않습니다.
키바 나가의 색인 패턴은 모든 색인 (색인 - *)과 일치하며 시간 기반 이벤트 필드로 날짜를 사용합니다. 데이터를 보낸 후에 인덱스 패턴을 다시 만들려고했지만 아무 것도 변경하지 않습니다. Windows 7이고 logstash를 사용하지 않습니다.
편집 :
Remove data
for each set in allSets
mapping (if not already mapped in a previous iteration)
send data to ES
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-templates.html 감사합니다, 당신은 생각 나게 나는 중요한 뭔가를 쓰는 것을 잊었다 과정을 시작하기 전에 (편집 된 답변 참조). 따라서 매핑 단계에서 색인을 생성하지 않고 데이터를 전송합니까? – LogicalKip
스크립트가 완료된 후 http : // localhost : 9200/your-index-name? pretty = true로 GET 요청을 수행하면 ES에서 색인에 대한 올바른 매핑을 반환합니까? 그렇다면 인덱스 패턴에 대해 키바나의 필드 목록을 새로 고칩니다. 이것이 작동하지 않는다면 Kibana 색인 패턴과 일치하는 이전 매핑이있는 오래된 색인이있을 수 있습니까? 어쨌든 인덱스 생성시 올바른 매핑을 적용하고 직접 매핑을 수정할 필요가 없으므로 위에서 언급 한 인덱스 템플릿을 살펴보십시오. – const314
아직도 작동하지 않는 이유는 확실하지 않지만 자동 인덱스 템플릿을 사용하면 트릭을 수행하게됩니다. 고맙습니다. – LogicalKip