Elasticsearch synonym analyzer funktioniert nicht

EDIT: Um dies zu ergänzen, scheinen die Synonyme mit grundlegenden Querystring-Abfragen zu funktionieren.

"query_string" : {
    "default_field" : "location.region.name.raw",
    "query" : "nh"
}

Dies gibt alle Ergebnisse für New Hampshire zurück, aber eine "Übereinstimmungs" -Abfrage für "nh" gibt keine Ergebnisse zurück.

Ich versuche, meinen Positionsfeldern in meinem Elastic-Index Synonyme hinzuzufügen. Wenn ich also eine Positionssuche nach "Masse", "Ma" oder "Massachusetts" durchführe, erhalte ich jedes Mal die gleichen Ergebnisse. Ich habe den Synonymfilter zu meinen Einstellungen hinzugefügt und die Zuordnung für Standorte geändert. Hier sind meine Einstellungen:

analysis":{
    "analyzer":{
        "synonyms":{
            "filter":[
                "lowercase",
                "synonym_filter"
            ],
        "tokenizer": "standard"
    }
},
"filter":{
    "synonym_filter":{
        "type": "synonym",
        "synonyms":[
            "United States,US,USA,USA=>usa",
            "Alabama,Al,Ala,Ala",
            "Alaska,Ak,Alas,Alas",
            "Arizona,Az,Ariz",
            "Arkansas,Ar,Ark",
            "California,Ca,Calif,Cal",
            "Colorado,Co,Colo,Col",
            "Connecticut,Ct,Conn",
            "Deleware,De,Del",
            "District of Columbia,Dc,Wash Dc,Washington Dc=>Dc",
            "Florida,Fl,Fla,Flor",
            "Georgia,Ga",
            "Hawaii,Hi",
            "Idaho,Id,Ida",
            "Illinois,Il,Ill,Ills",
            "Indiana,In,Ind",
            "Iowa,Ia,Ioa",
            "Kansas,Kans,Kan,Ks",
            "Kentucky,Ky,Ken,Kent",
            "Louisiana,La",
            "Maine,Me",
            "Maryland,Md",
            "Massachusetts,Ma,Mass",
            "Michigan,Mi,Mich",
            "Minnesota,Mn,Minn",
            "Mississippi,Ms,Miss",
            "Missouri,Mo",
            "Montana,Mt,Mont",
            "Nebraska,Ne,Neb,Nebr",
            "Nevada,Nv,Nev",
            "New Hampshire,Nh=>Nh",
            "New Jersey,Nj=>Nj",
            "New Mexico,Nm,N Mex,New M=>Nm",
            "New York,Ny=>Ny",
            "North Carolina,Nc,N Car=>Nc",
            "North Dakota,Nd,N Dak, NoDak=>Nd",
            "Ohio,Oh,O",
            "Oklahoma,Ok,Okla",
            "Oregon,Or,Oreg,Ore",
            "Pennsylvania,Pa,Penn,Penna",
            "Rhode Island,Ri,Ri & PP,R Isl=>Ri",
            "South Carolina,Sc,S Car=>Sc",
            "South Dakota,Sd,S Dak,SoDak=>Sd",
            "Tennessee,Te,Tenn",
            "Texas,Tx,Tex",
            "Utah,Ut",
            "Vermont,Vt",
            "Virginia,Va,Virg",
            "Washington,Wa,Wash,Wn",
            "West Virginia,Wv,W Va, W Virg=>Wv",
            "Wisconsin,Wi,Wis,Wisc",
            "Wyomin,Wi,Wyo"
        ]
    }
}

Und die Zuordnung für das Feld location.region:

"region":{
    "properties":{
        "id":{"type": "long"},
        "name":{
            "type": "string",
            "analyzer": "synonyms",
            "fields":{"raw":{"type": "string", "index": "not_analyzed" }}
        }
    }
}

Aber der Synonym-Analysator scheint nichts zu tun. Diese Abfrage zum Beispiel:

"match" : {
    "location.region.name" : {
        "query" : "Massachusetts",
        "type" : "phrase",
        "analyzer" : "synonyms"
    }
}

Dies gibt Hunderte von Ergebnissen zurück, aber wenn ich "Massachusetts" durch "Ma" oder "Mass" ersetze, erhalte ich 0 Ergebnisse. Warum funktioniert es nicht?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage