sql >> Databáze >  >> RDS >> Oracle

Rozšiřte Endecovo diakritické skládání mapování

V dokumentaci, kterou poskytujete, je uvedeno:

To naznačuje, že řečtina není podporována, protože nespadá do žádné z těchto znakových sad (věřím, že řečtina je latinka-7). To znamená, že můžete zkusit nastavit příznak jazyka na úrovni záznamu (protože uvádíte, že vaše data zahrnují angličtinu i řečtinu), za předpokladu, že každý jazyk má svůj vlastní záznam, nebo se pokusit implementovat globální jazyk pomocí dgidx a dgraph parametry, ale to ovlivní věci jako stemming pro záznamy nebo vlastnosti, které nejsou v globálním jazyce.

dgidx --lang el
dgraph --lang el

I když si nejsem jistý, že to bude fungovat na základě původního prohlášení.

Případně můžete implementovat proces odstranění diakritických znamének pomocí vlastního Accessor , která rozšiřuje atg.repository.search.indexing.PropertyAccessorImpl class (volba, protože odkazujete na Nucleus , takže předpokládám, že používáte ATG/Oracle Commerce). Pomocí toho určíte normalizované pole s možností vyhledávání ve vašem indexu, které duplikuje pole s možností vyhledávání ve vašem aktuálním indexu, ale nyní bez diakritiky. Stejná logika jako v Accessor pak je třeba použít jako preprocesor na hledané výrazy, abyste normalizovali vstup tak, aby odpovídal indexovaným hodnotám. Nakonec nastavte, aby se vaše původní pole v rejstříku (se zvýrazněnými znaky) zobrazovala pouze a aby bylo možné prohledávat normalizovaná pole (ale nezobrazovat je).

Výsledek bude odpovídat vašemu normalizovanému textu, ale nevýhodou je, že máte duplikovaná data, takže váš index bude větší. U malých souborů dat to není velký problém. Může také mít vliv na to, jak se funkce OOTB, jako je stemming, chová s normalizovanou datovou sadou. Budete muset provést několik testů s různými scénáři v řečtině a angličtině, abyste zjistili, zda není negativně ovlivněna přesnost a zapamatování.




  1. Chyba syntaxe SQL pomocí dotazu UPDATE databáze

  2. Jak použít v klauzuli v poddotazu

  3. poskytovatel pro PostgreSQL v .net s podporou pro TransactionScope

  4. SQLite - Zálohování databáze do souboru