yyyy-MM-dd hh:mi:ss 관련 데이터 검색

엘라스틱서치 관련 문의드립니다.

매핑을 먼저 하지 않고 인덱스만 만든상태에서 아래와 같이 데이터를 넣었습니다.

[POST] http://localhost:9200/test/type1/3

{
"create_date" : "2017-12-07 23:42:51"
}

ES에서 자동으로 매핑을 해줘서 아래와 같이 되었습니다.

{
"test": {
"mappings": {
"type1": {
"properties": {
"create_date": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}

query_string을 이용하여 검색을 하려고 하였으나 search_phase_execution_exeception이 나옵니다.

[POST] http://localhost:9200/test/type1/_search

{
"query" : {
"query_string" : {
"query" : "2017-12-07 23:42:51"
}
}
}

검색어를 년-월-일 시:분 까지만 하면 되는데 초까지는 왜 안되는지 모르겠습니다.

{
"query" : {
"query_string" : {
"query" : "2017-12-07 23:42"
}
}
}

버전은 ES 5.6 버전 사용중입니다.

위에서 이야기 하신 대로 검색을 하게되면, 아래 링크와 같이 쿼리문자열형식을 따르게 됩니다.
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/query-dsl-query-string-query.html#query-string-syntax
쿼리문자열형식에 보면 :의 경우에는 앞의 부분은 필드명, 뒤에 부분은 필드내 값을 의미하게 됩니다.
원하시는 결과를 얻으시려면 :을 \:로 입력하시면 될겁니다.

{
"query" : {
"query_string" : {
"query" : "2017-12-07 23\:42\:51"
}
}
}

:을 :로 하라고 하셔서 해봤는데 에러가 나서 두개씩 넣었더니 되네요 감사합니다.

\ 를 2개를 입력했었는데 글을 등록하니 하나로 바뀌어서 올라갔네요.
해결하였다니 다행입니다 : )

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.