fix: es6 create index fail

This commit is contained in:
feng626 2022-04-18 18:45:38 +08:00 committed by Jiangjie.Bai
parent 4362f8d5af
commit fe47e40588

View File

@ -59,9 +59,14 @@ class CommandStore(object):
data = self.es.indices.get_mapping(self.index) data = self.es.indices.get_mapping(self.index)
except NotFoundError: except NotFoundError:
return False return False
info = self.es.info()
version = info['version']['number'].split('.')[0]
try: try:
# 检测索引是不是新的类型 if version == '6':
# 检测索引是不是新的类型 es6
properties = data[self.index]['mappings']['data']['properties']
else:
# 检测索引是不是新的类型 es7 default index type: _doc
properties = data[self.index]['mappings']['properties'] properties = data[self.index]['mappings']['properties']
if properties['session']['type'] == 'keyword' \ if properties['session']['type'] == 'keyword' \
and properties['org_id']['type'] == 'keyword': and properties['org_id']['type'] == 'keyword':
@ -75,9 +80,7 @@ class CommandStore(object):
self._ensure_index_exists() self._ensure_index_exists()
def _ensure_index_exists(self): def _ensure_index_exists(self):
mappings = { properties = {
"mappings": {
"properties": {
"session": { "session": {
"type": "keyword" "type": "keyword"
}, },
@ -91,11 +94,16 @@ class CommandStore(object):
"type": "long" "type": "long"
} }
} }
} info = self.es.info()
} version = info['version']['number'].split('.')[0]
if version == '6':
mappings = {'mappings': {'data': {'properties': properties}}}
else:
mappings = {'mappings': {'properties': properties}}
try: try:
self.es.indices.create(self.index, body=mappings) self.es.indices.create(self.index, body=mappings)
return
except RequestError as e: except RequestError as e:
logger.exception(e) logger.exception(e)