2016-08-04 2 views
0

Я сделал некоторые _bulk вставки успешно, теперь я пытаюсь сделать запрос с диапазоном дат и фильтровать что-то вроде:Elasticsearch индекс не изменился после обновления статуса

{ 
    "query": { 
     "bool": { 
      "must": [{ 
       "terms": { 
        "mt_id": [613] 
       } 
      }, 
      { 
       "range": { 
        "time": { 
         "gt": 1470009600000, 
         "lt": 1470009600000 
        } 
       } 
      }] 
     } 
    } 

К сожалению, у меня нет результатов , сейчас я заметил, что отображение индекса создается после массовой вставки следующим образом:

{ 
    "agg__ex_2016_8_3": { 
    "mappings": { 
     "player": { 
     "properties": { 
      "adLoad": { 
      "type": "long" 
      }, 
     "mt_id": { 
      "type": "long" 
      }, 
      "time": { 
      "type": "string" 
      } 
     } 
     }, 

в качестве решения я попытался изменить отображение индекса с:

PUT /agg__ex_2016_8_3/_mapping/player 
{ 
    "properties" : { 
    "mt_id" : { 
     "type" : "long", 
     "index": "not_analyzed" 
    } 
    } 
} 

получил

{ 
    "acknowledged": true 
} 

и PUT/agg__ex_2016_8_3/_mapping/игрок

{ 
    "properties" : { 
    "time" : { 
     "type" : "date", 
    "format" : "yyyy/MM/dd HH:mm:ss" 
    } 
    } 
} 

получил:

{ 
    "error": { 
     "root_cause": [ 
     { 
      "type": "remote_transport_exception", 
      "reason": "[vj_es_c1-esc13][10.132.69.145:9300][indices:admin/mapping/put]" 
     } 
     ], 
     "type": "illegal_argument_exception", 
     "reason": "mapper [time] of different type, current_type [string], merged_type [date]" 
    }, 
    "status": 400 
} 

, но ничего не произошло, и до сих пор не получает никаких результатов.

Что я делаю неправильно? (Я должен работать с http, не используя завиток)

Спасибо!

+0

Параметр 'time' поле существо типа строки не так хорошо. Можете ли вы показать образец документа, который, по вашему мнению, должен совпадать? – Val

+0

Val: я Отредактированный вопрос документ: { "_index": "agg__ex_2016_8_2", "_type": "игрок", "_id": "104", "_SCORE": 4,244597, " _source ": { "время": "1470009600000", "домен": "organisemyhouse.com", "master_domain": "613 ### organisemyhouse.com", " playerRequets": 4, "playerLoads" : 0 "c_Id": 0, "cb_Id": 0, "mt_Id": 613} }, – VitalyT

ответ

1

Попробуйте это:

# 1. delete index 
DELETE agg__ex_2016_8_3 

# 2. recreate it with the proper mapping 
PUT agg__ex_2016_8_3 
{ 
    "mappings": { 
    "player": { 
     "properties": { 
     "adLoad": { 
      "type": "long" 
     }, 
     "mt_id": { 
      "type": "long" 
     }, 
     "time": { 
      "type": "date" 
     } 
     } 
    } 
    } 
} 

# 3. create doc 
PUT agg__ex_2016_8_3/player/104 
{ 
    "time": "1470009600000", 
    "domain": "organisemyhouse.com", 
    "master_domain": "613###organisemyhouse.com", 
    "playerRequets": 4, 
    "playerLoads": 0, 
    "c_Id": 0, 
    "cb_Id": 0, 
    "mt_Id": 613 
} 

# 4. search 
POST agg__ex_2016_8_3/_search 
{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "terms": { 
      "mt_Id": [ 
       613 
      ] 
      } 
     }, 
     { 
      "range": { 
      "time": { 
       "gte": 1470009600000, 
       "lte": 1470009600000 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

Моя проблема, что я использовал Bulk вставку со следующей структурой: {индекс: {_ind ex: agg_8_3_2016, введите: player, _id: i ++}}; , он создает как дату по умолчанию «String» ..... и т. д., можно ли сначала создать «bulk Insert» другого типа Date или другое поле с длинным ??? Спасибо :), я не могу постоянно воссоздавать индекс, его производство .... – VitalyT

+0

Сначала вы можете делать шаги 1 и 2, затем вы можете запускать свой массив, и он будет правильно разбирать строковые метки времени в качестве дат. – Val

+0

После шага 2: GOT { "ошибки": { "ROOT_CAUSE": [ { "типа": "mapper_parsing_exception", "Причина": «определение отображения Корня содержит неподдерживаемые параметры: [отображения: {игрока = { mt_Id = {type = long}, playerLoads = {type = long}, playerRequets = {type = long}, time = {type = date}}}}] " } ], " type ":" mapper_parsing_exception "," mapper_parsing_exception " «причина»: «Определение корневого отображения имеет неподдерживаемые параметры: [сопоставления: {player = cb_Id = {type = long}, child_domain = time = {type = date}}}}]" }, "status": 400 } – VitalyT

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