So erstellen Sie ein Mapping während der Indizierung in elasticsearch

ich benutzeElasticSearch in einer Website, in der ich Daten von indexiereMongoDB.

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)
        )

Das hat gut funktioniert. Aber momentan muss ich in der suchenstate Feld für eine genaue Übereinstimmung inelasticsearch. Derzeit suche ich nach Einträgen fürNew York es gibt auch resultat vonNew Hampshire. ich habe gefundenDieser Link und sah elasticsearch Dokumentation, die ich hinzufügen mussmapping auf den Daten. Meine Frage ist, wie ich eine Zuordnung zu den Daten im aktuellen Szenario hinzufügen? oder gibt es eine bessere möglichkeit?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage