Como fazer o mapeamento durante a indexação na elasticsearch
estou usandoElasticSearch
em um site onde eu indexo dados deMongoDB
.
def postToEs(self):
"""
put data to the elasticsearch
"""
es = Elasticsearch()
cursor = self.getMongoData()
for document in cursor:
esdoc={}
esdoc["category"] = document.get("category")
esdoc["description"] = document.get("description")
esdoc["title"] = document.get("title")
esdoc["link"] = document.get("link")
esdoc["state"] = document.get("state")
esdoc_id = esdoc["link"]
es.index(
index = 'news',
doc_type = 'allnews',
id = esdoc_id,
body = json.dumps(esdoc)
)
Isso funcionou bem. Mas atualmente eu tenho que procurar nostate
campo para uma correspondência exata emelasticsearch
. Atualmente, se eu procurar entradas paraNew York
também dá resultado deNew Hampshire
. eu encontreiEsse link e vi a documentação do elasticsearch que preciso adicionarmapping
nos dados. Minha pergunta é como adiciono um mapeamento aos dados no cenário atual? ou existe alguma maneira melhor de fazer isso?