sql >> Databasteknik >  >> RDS >> Oracle

Utöka Endecas diakritiska vikningsmappning

I dokumentationen du tillhandahåller står det:

Detta tyder på att grekiska inte stöds eftersom det inte ingår i någon av dessa teckenuppsättningar (jag tror att grekiska är Latin-7). Som sagt, du kan prova att ställa in en språkflagga på rekordnivå (eftersom du anger att dina data inkluderar både engelska och grekiska) förutsatt att varje språk har sin egen post eller försöka implementera ett globalt språk med dgidx och dgraph parametrar men detta kommer att påverka saker som härdning för poster eller egenskaper som inte finns på det globala språket.

dgidx --lang el
dgraph --lang el

Även om jag inte är säker på att det kommer att fungera baserat på det ursprungliga uttalandet.

Alternativt kan du implementera en process för borttagning av diakritiska tecken med hjälp av en anpassad Accessor , som utökar atg.repository.search.indexing.PropertyAccessorImpl klass (ett alternativ eftersom du hänvisar till Nucleus , så jag antar att du använder ATG/Oracle Commerce). Med detta anger du ett normaliserat sökbart fält i ditt index som duplicerar de sökbara fälten i ditt nuvarande index men nu med alla diakritiska tecken borttagna. Samma logik som du använder i Accessor måste sedan användas som en förbehandlare på dina söktermer så att du normaliserar inmatningen för att matcha de indexerade värdena. Gör slutligen dina ursprungliga fält i indexet (med de accentuerade tecknen) endast visningsbara och de normaliserade fälten sökbara (men visa dem inte).

Resultatet kommer att matcha din normaliserade text men nackdelen är att du har dubblerade data så att ditt index blir större. Inte ett stort problem med små datamängder. Det kan också påverka hur OOTB-funktionaliteten, som stemming, beter sig med den normaliserade datamängden. Du måste göra några tester med olika scenarier på grekiska och engelska för att se om precisionen och återkallelsen påverkas negativt.




  1. mysql välj innehåll runt nyckelord

  2. Generera data för datumintervall inklusive de som inte finns i data

  3. Hur man använder CASE Statement i MySQL

  4. Förhindrar cirkulär sammanfogning, rekursiva sökningar