ř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:)