soluția 1: necesită schimbare în analizor personalizat creat și adăugând că în numele câmpului
punctul 1: Adăugați tokenizer minuscule în mapping
whitespace tokenizer nu ar converti jetoanele în minuscule. Și în lista sinonimelor, ați adăugat 'Television'
, dar interogați 'television'
.
Adăugați filtru cu litere mici În maparea dvs. după cum urmează și interogarea dvs. vă va oferi rezultatul așteptat.
punctul 2: Adăugați Analizor la câmpul-Nume
verificați prd_name
ca modul în care am creat în maparea de mai jos. Observați că am adăugat Analizor la ea.
Mapping
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 } } } } } }}
rețineți că orice modificare de mapare ar necesita să recreați indexul și să ingerați din nou documentele.
asigurați-vă că fișierul sinonim este disponibil în toate nodurile.
Anunță-mă dacă ajută.
Soluția 2: Redefiniți analizorul implicit
în cazul în care nu puteți modifica maparea câmpului, ceea ce puteți face este să creați un analizor cu numele default
în setările
redefinind practic analizorul default
cu setările exact ca Analizor synonym
.
în acest fel ar fi analizorul implicit care ar fi folosit în loc de standard
analizor și nu necesită nicio modificare În maparea numelui câmpului.
mai jos este modul în care maparea ar fi în acest caz.
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 } } } } } }}
rețineți că am redenumit pur și simplu synonym
la default
în mapping.
Notă importantă: cumva ar trebui să reindexați toate datele pentru ca modificările să fie în vigoare. În cazul în care, dacă veniți cu schimbarea mapării, reindexați toate datele și puteți face orice doriți numele câmpurilor w.r.t, atunci vă sugerez cu tărie soluția 1.
Lasă-mă să știu dacă acest lucru ajută 🙂