použijte synonyma v elasticsearch

řešení 1: vyžaduje změnu ve vytvořeném vlastním analyzátoru a přidání, že v názvu pole

bod 1: Přidejte malá písmena tokenizer v mapování

mezery tokenizer nepřevede tokeny na malá písmena. A v seznamu synonym jste přidali 'Television' , ale dotazujete se 'television'.

přidejte do mapování malý Tokenový filtr následujícím způsobem a váš dotaz vám poskytne očekávaný výsledek.

bod 2: Přidat analyzátor do pole-name

zkontrolujte prd_name jak jsem vytvořil v níže uvedeném mapování. Všimněte si, že jsem do něj přidal analyzátor.

mapování

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

Všimněte si, že jakákoli změna mapování by vyžadovala opětovné vytvoření indexu a opětovné požití dokumentů.

ujistěte se, že soubor synonymum je k dispozici ve všech uzlech.

dejte mi vědět, jestli to pomůže.

řešení 2: Předefinovat výchozí analyzátor

v případě, že nejste schopni změnit mapování pole, co můžete udělat, je vytvořit analyzátor s názvem default v nastavení

v podstatě předefinovat default analyzátor s nastavením přesně jako analyzátor synonym.

tímto způsobem by byl výchozí analyzátor, který by byl použit místo standard analyzátoru a nevyžaduje žádnou změnu v mapování názvu pole.

níže je uvedeno, jak by bylo mapování v tomto případě.

mapování

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

Všimněte si, že jsem v mapování jednoduše přejmenoval synonym na default.

Důležitá poznámka: nějak byste museli znovu načíst všechna data, aby změny byly platné. V případě, že přijdete s tím, že budete muset změnit mapování, Reindexovat všechna data a můžete dělat cokoli, co byste chtěli w.r.T názvy polí, pak důrazně doporučuji řešení 1.

dejte mi vědět, jestli to pomůže:)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.

Related Posts