ElasticSearch的聚类时出现fielddata=true
Expected map for property [fields] on field [subject_id] but got a class java.lang.String
错误代码:
data = {
"properties":{
"camera_position": "text",
'fielddata': True
}
}
正确代码:
data = {
"properties":{
"camera_position": {'type':"text",
'fielddata': True
}}
}
完整代码:
import json
import requests
header = {'Content-Type': 'application/json'}
def set_fielddata(index='event_tk'):
try:
data = {
"properties":{
"camera_position": {'type':"text",
'fielddata': True
}}
}
DNS_API = 'http://127.0.0.1:9200/' + index + '/_mapping/koala-index' # dns_test_v2为索引名
# resp = requests.delete(DNS_API, headers=header)
resp = requests.put(DNS_API, headers=header, data=json.dumps(data))
print(resp.status_code)
if resp.status_code == 200:
print(u"set_fielddata ok")
else:
print(resp.text)
except Exception as e:
print(e, u"建立索引失败")
def max_count(index='event_tk'):
try:
data={'index' : { "max_result_window" : 100000000}}
DNS_API = 'http://192.168.1.152:9200/'+index+'/_settings' # dns_test_v2为索引名
# resp = requests.delete(DNS_API, headers=header)
resp = requests.put(DNS_API, headers=header, data=json.dumps(data).encode())
print(resp.status_code)
if resp.status_code == 200:
print(u"max ok")
else:
print(resp.text)
except Exception as e:
print(e, u"建立索引失败")
if __name__ == '__main__':
set_fielddata()
# max_count()