brug synonymer i elasticsearch

løsning 1: kræver ændring i brugerdefineret analysator oprettet og tilføjer det i feltnavn

punkt 1: Tilføj små bogstaver i kortlægning

Hvidrumstokenisator ville ikke konvertere tokens til små bogstaver. Og på listen over Synonymer har du tilføjet 'Television'men du spørger 'television'.

tilføj små bogstaver Token Filter i din kortlægning som følger, og din forespørgsel vil give dig det forventede resultat.

punkt 2: Føj analysator til feltnavnet

kontroller prd_name som hvordan jeg har oprettet i nedenstående kortlægning. Bemærk, at jeg har tilføjet analysator til det.

kortlægning

PUT products{ "settings":{ "index":{ "analysis":{ "analyzer":{ "synonym":{ "tokenizer":"whitespace", "filter": } }, "filter":{ "synonym":{ "type":"synonym", "synonyms_path":"analysis/synonym.txt" } } } } }, "mappings":{ "mydocs":{ "properties":{ "prd_name":{ "type":"text", "analyzer":"synonym", "fields":{ "keyword":{ "type":"keyword", "ignore_above":256 } } } } } }}

bemærk, at enhver kortlægningsændring kræver, at du genskaber indekset og indtager dokumenterne igen.

sørg for, at din synonymfil er tilgængelig i alle noder.

Lad mig vide, om det hjælper.

opløsning 2: Omdefiner standardanalysator

hvis du ikke er i stand til at ændre kortlægningen af feltet, kan du oprette en analysator med navn default i indstillingerne

grundlæggende omdefinere defaultanalysatoren med indstillinger nøjagtigt som analysator synonym.

på den måde ville det være standardanalysatoren, der ville blive brugt i stedet for standard analysator og kræver ingen ændring i kortlægningen af feltnavn.

nedenfor er, hvordan kortlægningen ville være i så fald.

kortlægning

PUT <your_index_name>{ "settings":{ "index":{ "analysis":{ "analyzer":{ "default":{ "tokenizer":"whitespace", "filter": } }, "filter":{ "synonym":{ "type":"synonym", "synonyms_path":"analysis/synonym.txt" } } } } }, "mappings":{ "mydocs":{ "properties":{ "prd_name":{ "type":"text", "fields":{ "keyword":{ "type":"keyword", "ignore_above":256 } } } } } }}

Bemærk, at jeg simpelthen har omdøbt synonym til default i kortlægningen.

vigtig Note: på en eller anden måde skal du genindeksere alle data for at ændringerne skal være i kraft. Hvis du kommer op med at skulle ændre kortlægning, genindeksere alle data, og du kan gøre alt, hvad du vil have med feltnavne, så foreslår jeg stærkt løsning 1.

Lad mig vide, hvis dette hjælper:)

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Related Posts