använd synonymer i elasticsearch

lösning 1: kräver förändring i anpassad analysator skapad och lägger till det i fältnamn

punkt 1: Lägg till små bokstäver i mappning

Whitespace tokenizer skulle inte konvertera tokens till små bokstäver. Och i listan över synonymer har du lagt till 'Television' men du frågar 'television'.

Lägg till små bokstäver i din mappning enligt följande och din fråga skulle ge dig det förväntade resultatet.

punkt 2: Lägg analysator till fältnamnet

kontrollera prd_name som hur jag har skapat i nedanstående mappning. Lägg märke till att jag har lagt till analyzer till den.

mappning

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

Observera att varje mappningsändring kräver att du återskapar indexet och tar in dokumenten igen.

se till att din synonymfil är tillgänglig i alla noder.

Låt mig veta om det hjälper.

lösning 2: Omdefiniera standard analyzer

om du inte kan ändra kartläggningen av fältet, vad du kan göra är att skapa en analysator med namn default i inställningarna

i grund och botten omdefiniera default analyzer med inställningar exakt som analyzer synonym.

på så sätt skulle det vara standardanalysatorn som skulle användas istället för standard analysator och kräver ingen ändring i kartläggningen av fältnamn.

nedan är hur kartläggningen skulle vara i så fall.

Mapping

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

Observera att jag helt enkelt har bytt namn till synonym till default i mappningen.

viktig anmärkning: på något sätt skulle du behöva reindexera Alla data för att ändringarna ska träda i kraft. I fallet om du kommer upp med att behöva ändra kartläggning, reindex Alla data, och du kan göra vad du vill w.r.t fältnamn, då föreslår jag starkt lösning 1.

Låt mig veta om detta hjälper:)

Lämna ett svar

Din e-postadress kommer inte publiceras.

Related Posts