2016-05-20 2 views
0

Я не в состоянии искать с датой форматов эластичной поискойУпругих поиск упущения, говоря дату-формат не поддерживается в индексе

Я создал индекс и отображение поля с указанием в качестве даты-формата, но запрос терпит неудачу.

Перед загрузкой данных я создал индекс с сопоставлениями и загрузил данные в эластичный поиск.

"mappings": { 
    "workers": { 
     "person.birthDate": { 
      "full_name": "person.birthDate", 
      "mapping": { 
       "birthDate": { 
       "type": "date", 
       "format": "yyyy-MM-dd||epoch_millis" 
       } 
      } 
     } 

Мой запрос ввода, как показано ниже

POST _search 
{ 
    "query": { 


    "bool" : { 
    "must" : [ { 
     "match" : { 
     "person.birthDate" : { 
      "query" : "1968-06-15", 
      "type" : "date" 
     } 
     } 
    } ] 
    } 



    }, 
    "from": 0, 
    "size": 10, 
    "sort": [], 
    "aggs": {} 
} 

и выход

{ 
    "error": { 
     "root_cause": [ 
     { 
      "type": "query_parsing_exception", 
      "reason": "[match] query does not support type date", 
      "index": "index1", 
      "line": 9, 
      "col": 33 
     } 
     ], 
     "type": "search_phase_execution_exception", 
     "reason": "all shards failed", 
     "phase": "query", 
     "grouped": true, 
     "failed_shards": [ 
     { 
      "shard": 0, 
      "index": "index1", 
      "node": "RewaFar_TsGVGz1RmgOxlA", 
      "reason": { 
       "type": "query_parsing_exception", 
       "reason": "[match] query does not support type date", 
       "index": "index1", 
       "line": 9, 
       "col": 33 
      } 
     } 
     ] 
    }, 
    "status": 400 
} 

Любая помощь по этому вопросу будут оценены. Обратите внимание, что я очень новичок в поиске эластичности.

ответ

1

Вышеописанный недействительный запрос match. type:date недействительный вариант для запроса соответствия.
Если вы хотите отфильтровать по дате, рекомендуем порекомендовать range query.

Пример:

put test 
{ 
    "mappings": { 
     "test": { 
       "properties" : { 
        "birthDate": { 
         "type": "date", 
         "format": "yyyy-MM-dd||epoch_millis" 
        } 
       } 
      } 
    } 
} 

put test/test/1 
{ 
    "birthDate" : "2016-05-20" 
} 

##timestamp for 2016-05-20 19:00:24 GMT 
put test/test/2 
{ 
    "birthDate" : 1463771107000 
} 

post test/test/_search 
{ 
    "query": { 
     "range" : { 
      "birthDate" : { 
       "gte" : "2016-05-20", 
       "lt" : "2016-05-21", 
       "format": "yyyy-MM-dd||epoch_millis" 
      } 
    } 
} 


    "hits": [ 
    { 
     "_index": "test", 
     "_type": "test", 
     "_id": "2", 
     "_score": 1, 
     "_source": { 
      "birthDate": 1463771107000 
     } 
    }, 
    { 
     "_index": "test", 
     "_type": "test", 
     "_id": "1", 
     "_score": 1, 
     "_source": { 
      "birthDate": "2016-05-20" 
     } 
    } 
    ] 
+0

это worked.thanks для help.meant обновить некоторое время назад SRY для приема ответа поздно. – Fryder

Смежные вопросы