Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Dokumentet beskriver implementeringen af Ankiro på jobnet herunder udvikler tips og tricks. 

Table of Contents

Teknisk dokumentation

Ankiro er et 3. parts produkt til indeksering og søgning af dokumenter. Dokumentation på produktet kan findes her http://docs.ankiro.dk/display/AES/Product+overview. På jobnet anvendes produktet til indeksering og udsøgning jobannoncer (interne og eksterne), borgeres CV samt D6UJU kurser.

Image Removed

Fig 1. skitsetegning af serviceaftagere af Ankiro (mangler opdatering)

Image Removed

Fig 2. oversigt over komponenter med integration til Ankiro (pr 2016-4)

Ankiro komponenter

Ankiro Enterprise Suite

Administrationsportal til produktet, hvor man kan se og konfigurere data sources, indexes og søgeprofiler.

Søgeprofiler

Under "Search Profiles" → "Search" er det endvidere muligt at teste søgeprofilerne. Visse funktioner er ikke tilgængelige fra administrationsportalen såsom radial søgning. Test af søgeprofil udføres ved at indsætte "*" uden anførselstegn i "Search For" og udfylde en eller flere søgekriterier. 

Image Removed

Fig 3. eksempel på fritekstsøgning på "budarbejde mv."

Image Removed

Fig 4. Søgeresultat vist i administrationsportalen

Bemærk man kan få vist "Show Diagnostics Xml" som giver gode indikationer på hvordan SearchServer har frembragt søgeresultatet, hvilket kan bruges til at fejlsøge på hvorfor et søgekriterie ikke er slået igennem.

Data Sources

Man kan hurtigt få et overblik over indlæste dokumenter på denne fane

Image Removed

Fig 5. Data sources

For jobannoncer er ID i ankiro jobannoncens ID hvorfor man hurtigt kan fremsøge en interessant jobannonce herfra.

Remote Access

Fanen muliggør diagnosticering fra jobnet eller services, da indkomne søgninger vises her realtid. Af samme årsag er værktøjet kun brugbart på testmiljøer med få samtidige søgninger.

Image Removed

Det er muligt at se søgningens input parametre, afviklingstid, resultat samt datamængder modtaget/sendt, hvilket er meget brugbart til udvikling og fejlsøgning i testmiljøer.

SearchServer

Selve søgekomponenten som står for Ankiros proprietære indeksering og udsøgning.

AnkiroEnterpriseSuite64

SQL Database indeholdende de indekserede dokumenter. SQL instansen anvendes også til udsøgning, geospatiale beregninger og indeksering.

Index files

Sammen med SearchServer installationen ligger indeksfiler, som hænger uløseligt sammen med AnkiroEnterpriseSuite64 databasen. Det er vores antagelse at filerne er en proprietær indeksering af dokumenter til brug for fritekstsøgninger, thessarus søgninger etc.

Batchjobs

Hvert batchjob har ansvaret for at oprette datasource, indexes og søgeprofiler tilhørende deres funktionsområde.

BL.Batchjob.Ankiro

Batchjobbet står for indekseringen af interne og eksterne jobannoncer. De interne annoncer hentes fra AMS_PDB mens eksterne annoncer er af Ankiro crawlede annoncer og udstillet til Jobnet via en webservice. 

Interne jobs hentes fra AMS_PDB men batchjobbet kalder også Jobnet for at få en html rendering af annoncen, som ankiro så kan søge på.

Eksterne jobs hentes fra https://stage-jobnet-star.ankiro.dk/1.0/JobLeveranceService / https://jobnet-star.ankiro.dk/1.0/JobLeveranceService implementeret som en REST service og kan med toggleswitchen UseJobDeliveryRestService=false i Bl.BatchJob.Ankiro sættes til at køre mod den forrige SOAP implementeringDokumentet beskriver implementeringen af Ankiro på jobnet herunder udvikler tips og tricks. 

Table of Contents

Teknisk dokumentation

Ankiro er et 3. parts produkt til indeksering og søgning af dokumenter. Det ny Ankiro setup indeholder 3 webservices for indeksering, oprettelse og søgning af documenter. Fra 2020-2 release kun det ny Ankiro Services bliver brugt i Jobnet. 

Se dokumentation fra Ankiro selv her: https://docs.ankiro.dk/display/AES/Ankiro+Enterprise+Suite

Fordele med ny Ankiro

  • Tidligere version af Ankiro er kørt via dll'er. Det betyder at hver gang der kommer opdatering skal alle projekter som har reference til Ankiro opdateres med de ny dll'er. Nu sker Ankiro opdatering kun en central sted i koden.
  • Med den ny Ankiro opdatering, Ankiro er delt op til tre nye services. Det betyder at kun nødvendig tilsvarende service bliver opdateret.
  • Der er ikke længere behov for FindJobService (intern service). Derfor er lag mellem UI og Ankiro er fjernet. Det betyder, at der er markant mindre mappning mellem UI og Ankiro og en mindre kald til Ankiro.
  • Koden er blevet meget mere simpel og forståligt.
  • Udviklingstid til næste ændring til Ankiro Dokumenter bliver mindre og nemt.

1.Ankiro  ManagementService

Ankiro Management Service har ansvar for oprettelse ,opdatering og sletning af DataSources og Indekser. 

Datasource er et schema for et dokument. 


Image Added


fx. her ses hvordan man kan definere et schema for datasource og resultater i Ankiro Dashboard

Kode til definition af schema

Image Added

og resultat i Ankiro Dashboard

Image Added

2. Ankiro Document Service

Ankiro Document Service har ansvar for oprettelse documents fx. Jobannounce eller Cv. Schema for Jobannounce eller Cv administreret af  Ankiro Managment Service. 

Når man opretter en Ankiro Document, skal datatype matches til schema.


Image Added


3. Ankiro Search Service

Ankiro SeachWeb Service har ansvar for søgning ud fra angivet søgeindeks. Søgeindeks er administreret af Ankiro Management Service.

Hvordan søgning fortages er defineret i søgeprofil. Søgeprofil er en fysisk fil som ligger under BL.Batchjob.Ankiro projekt. Søgeprofil uploades til Ankiro via batchjob. 


Image Added


Fig 1. oversigt over kald af Ankiro via BL.BatchJob.Ankiro.

Image Added

Ankiro komponenter

Ankiro Enterprise Suite

Administrationsportal til produktet, hvor man kan se og konfigurere data sources, indexes og søgeprofiler.

Søgeprofiler

Under "Search Profiles" → "Search" er det endvidere muligt at teste søgeprofilerne. Visse funktioner er ikke tilgængelige fra administrationsportalen såsom radial søgning. Test af søgeprofil udføres ved at indsætte "*" uden anførselstegn i "Search For" og udfylde en eller flere søgekriterier. 

Image Added

Fig 3. eksempel på fritekstsøgning på JobId:5083995


Image Added

Fig 4. Søgeresultat vist i administrationsportalen

Bemærk man kan få vist "Show Diagnostics Xml" som giver gode indikationer på hvordan SearchServer har frembragt søgeresultatet, hvilket kan bruges til at fejlsøge på hvorfor et søgekriterie ikke er slået igennem.

Data Sources

Man kan hurtigt få et overblik over indlæste dokumenter på denne fane

Image Added

Fig 5. Data sources

For jobannoncer er ID i ankiro jobannoncens ID hvorfor man hurtigt kan fremsøge en interessant jobannonce herfra.

Batchjobs

Hvert batchjob har ansvaret for at oprette datasource, indexes og søgeprofiler tilhørende deres funktionsområde.

BL.Batchjob.Ankiro

Batchjobbet står for indekseringen af interne og eksterne jobannoncer på både Jobnets og WIDKs instans af Find Job. De interne annoncer hentes fra AMS_PDB mens eksterne annoncer er af Ankiro crawlede annoncer og udstillet til Jobnet via en webservice. 

Interne jobs hentes fra AMS_PDB men batchjobbet kalder også Jobnet for at få en html rendering af annoncen, som ankiro så kan søge på.

Eksterne jobs for Jobnet hentes fra https://jobnet-star.ankiro.dk/2.0/JobLeveranceService og eksterne WIDK job hentes via https://widk-star.ankiro.dk/2.0/JobLeveranceService der er implementeret som en REST service.


Specifikationen af snitfladerne fra Ankiro er dokumenteret af Ankiro herunder. 

Bemærk dog: dette er specifikationene for V1 af snitfladen. Vi kalder V2 nu, hvor vi er overgået til EscoSTAR. Der er minimal forskel - det er blot en EscoSTAR kode (conceptUrilDA) der kommer i felttet Occupation, i stedet for en DiscoAms kode. Ankiro er dog rykket for ny snitfladebeskrivelse i https://manuscript.star.dk/f/cases/227542/Gr-nsefladebeskrivelse


View file
nameGrænsefladebeskrivelse - Jobnet og Workindenmark - V1-4.docx
height250
 

Under udviklingsperioder, har STAR tilkøbt et staging miljø, som T-miljøerne har set på. Dette miljø er dog ikke permanent tilgængeligt og jf. aftale med Henrik Mee Løvgret fra Ankiro, har T-miljøerne lov til i daglig drift at hente fra produktionsinstansen. Servicen er ret enkel at teste med en restklient, herunder et screenshot af et kald med chrome postman extensionen:

I case https://manuscript.star.dk/f/cases/227056/Ankiro-endpoints-utilg-ngelige-i-PROD blev der besluttet at:

  1. Default offset øges fra 10 til 200 
  2. Der skrues ned for antal kald fra T-miljøerne og derfor hentes kun 2 første 400 annoncer( 2 kald af 200 annoncer)


Batchjobbet kan kaldes med følgende parametre:

  • deploy
    Der testes om der allerede er oprettet datasources og indexes før disse oprettes. Ændringer til eksisterende håndteres med andre ord ikke med denne parameter. Derudover indlæses nye søgeprofiler hvis de ikke allerede findes eller er ændret. 
    Med 2017-1 US352 vil deploy håndtere create/update af datasource, index og søgeprofiler 
     
  • full
    Søgeprofiler, indexes og datasources slettes før disse oprettes fra ny. 
     
  • reload
    Reindekserer interne jobannoncer, såfremt applikationskonfigurationen  InternalIndexOnly ikke er sat til true, reindekseres eksterne annoncer også.
     
  • reloadall
    Reindekserer interne og eksterne jobannoncer 

BL.Batchjob.Ankiro.Cv

Batchjobbet står for indekseringen af borgernes CV til udsøgning i JobAG, JobKon samt øvrige aftagere af JobSearch.CvSearchService. Borgernes CV hentes fra AMS_CV.

Batchjobbet kan kaldes med følgende parametre:

  • deploy
    Der testes om der allerede er oprettet datasources og indexes før disse oprettes. Ændringer til eksisterende håndteres med andre ord ikke med denne parameter. Derudover indlæses nye søgeprofiler hvis de ikke allerede findes eller er ændret. 
    Med 2017-1 US352 vil deploy håndtere create/update af datasource, index og søgeprofiler
     
  • update (udfases med 2017-1 US352)
    Der testes på ændringer i datasources og indexes, hvorefter der opdateres med ændringer. Derudover indlæses nye søgeprofiler hvis de ikke allerede findes eller er ændret. Det forudsættes for kald med denne parameter at datasources og indexes allerede er oprettet.
    Bemærk, denne funktion kaldes for alle øvrige parametre undtagen full, hvis app.config setting ReDeployAnkiroIndex er sat til true
     
  • full
    Søgeprofiler, indexes og datasources slettes før disse oprettes fra ny. 
     
  • reload
    Reindekserer interne jobannoncer, såfremt applikationskonfigurationen  InternalIndexOnly ikke er sat til true, reindekseres eksterne annoncer også.
     
  • reloadall
    Reindekserer interne og eksterne jobannoncer 

BL.Batchjob.Ankiro.Cv

Batchjobbet står for indekseringen af borgernes CV til udsøgning i jobkon samt øvrige aftagere af CVServiceForDFDG. Borgernes CV hentes fra AMS_CV.

Batchjobbet kan kaldes med følgende parametre:

  • deploy
    Der testes om der allerede er oprettet datasources og indexes før disse oprettes. Ændringer til eksisterende håndteres med andre ord ikke med denne parameter. Derudover indlæses nye søgeprofiler hvis de ikke allerede findes eller er ændret. 
    Med 2017-1 US352 vil deploy håndtere create/update af datasource, index og søgeprofiler
     
  • update (udfases med 2017-1 US352)
    Der testes på ændringer i datasources og indexes, hvorefter der opdateres med ændringer. Derudover indlæses nye søgeprofiler hvis de ikke allerede findes eller er ændret. Det forudsættes for kald med denne parameter at datasources og indexes allerede er oprettet.
    Bemærk, denne funktion kaldes for alle øvrige parametre undtagen full, hvis app.config setting ReDeployAnkiroIndex er sat til true
     
  • full
    Søgeprofiler, indexes og datasources slettes før disse oprettes fra ny. Herefter reindekses alle CV
     
  • reload
    Reindekserer alle CV.
     
  • reloadall
    Reindekserer alle CV.

BL.Batchjob.Ankiro.Courses

Batchjobbet står for indekseringen af D6UJU kurser og hold.

Batchjobbet kan kaldes med følgende parametre:

  • deploy
    Der testes om der allerede er oprettet datasources og indexes før disse oprettes. Ændringer til eksisterende håndteres med andre ord ikke med denne parameter. Derudover indlæses nye søgeprofiler hvis de ikke allerede findes eller er ændret. 
    Med 2017-1 US352 vil deploy håndtere create/update af datasource, index og søgeprofiler
     
  • update (udfases med 2017-1 US352)
    Der testes på ændringer i datasources og indexes, hvorefter der opdateres med ændringer. Derudover indlæses nye søgeprofiler hvis de ikke allerede findes eller er ændret. Det forudsættes for kald med denne parameter at datasources og indexes allerede er oprettet.
    Bemærk, denne funktion kaldes for alle øvrige parametre undtagen full, hvis app.config setting ReDeployAnkiroIndex er sat til true
     
  • full
    Søgeprofiler, indexes og datasources slettes før disse oprettes fra ny. Herefter reindekses alle kurser og hold
     
  • reload
    Reindekserer alle kurser og hold.
     
  • reloadall
    Reindekserer alle kurser og hold.

Søgeprofiler

Søgeprofiler i Ankiro definerer søgekriterier, udformingen af resultatsæt samt sorteringen af samme.

Strukturen er opbygget af et <ResultFormat> element, som definerer resultatsættet samt sorteringen i <SortField> elementer, samt et <Query> element. Query elementer kan nestes og med attributen Operation angives om de nestede elementer er additive eller exclusive i selekteringen.

Bemærk søgekriteriet <Criterion property='Ankiro.Position' weight='1.0' /> er specielt, da der i version 1.13.808.20972 af Ankiro er en bug, som gør kriteriet bliver skippet, hvis der i querien ikke er indeholdt et andet kriterie, der udsøger på en property som eksemplet nedenfor

<Criterion value="{OccupationFreeText}" interpretation="full-exact">
  <Property name="Title" weight="0.95" />
  <Property name="Presentation" weight="0.90" />
</Criterion>

Se eventuelt den vedhæftede email korrespondance med Ankirosupporten på denne fejl.

View file
nameRE SUPPORT Jobnet - Spørgsmål til Automatch Søgeprofil udarbejdet med Rasmus Bodetoft.zip
height250

Automatch

Søgeprofilen for automatch dokumenteret her er indført med 2016-3 releasen. Den bliver kaldt op til 3 gange med forskellige input for at kategorisere resultaterne i jobmatch, beslægtede og hotjobs (forretningsreglerne for udsøgning er dokumenteret under forretningsregler for automatch på dette site). Det var tænkt at kategorisere i de 3 grupper i en søgning, men det kan ikke lade sig gøre før Ankiro bliver opgraderet sammen med SQL Server platformen til 2012, hvor vi vil kunne udføre den radiale søgning som et kriterie der enten er opfyldt eller ej i modsætning til nu, hvor den radiale søgning påvirker vægtningen af resultatet.

I stedet kaldes søgeprofilen i 3 omgange hvis det forrige kald ikke fik fyldt en liste af 10 jobforslag

  • Occupation, Flexjob=true hvis borger er flexjobber og geopunkt for at udsøge jobmatch 
  • OccupationFreetext, Flexjob=true hvis borger er flexjobber og geopunkt for at udsøge beslægtede job. 
  • HotjobSearch, (Flexjob=true og Occupation hvis borger er flexjobber), liste af jobannoncer der allerede er udsøgt samt geopunkt for borger for at udsøge hotjobs eller deltidsjob med matchende discoams kode

Ovenstående struktur er gentaget for indekset for interne jobannoncer og indekset for eksterne jobannoncer

Der er implementeret en række integrationstests i AnkiroTest.AutomatchTests, som vil kunne benyttes til at teste og afdække problemer

AutoMatchRadial

I forbindelse med golive af 2016-3 kunne det konstateres at radial udsøgning i Ankiro ikke performer. Radial udsøgning blev udskilt fra AutoMatch til denne søgeprofil, som der via en toggleswitch [GeoSearchCriteria] kan aktiveres. Det radiale/boundingbox kriterie kan indarbejdes i AutoMatch på samme vis som CV søgeprofilen istedet for at have to seperate søgeprofiler, som for størstedelen af profilen så skal vedligeholdes to steder.

Courses

Søgeprofilen anvendes til udsøgning af kurser

CV

Søgeprofilen anvendes af CVServicesForDFDG til udsøgning af borger CV. Profilen er lavet med erfaringerne fra post 2016-3, hvorfor den indeholder både boundingbox (firkantet geo søgning) og radial kriterier, hvor der switches imellem de to funktionaliteter i komponenterne der kalder søgeprofilen for kun at have en søgeprofil at vedligeholde.

Single Class

Søgeprofilen anvendes til udsøgning af et specifikt hold for et givent kursus

Single Course

Søgeprofilen anvendes til udsøgning af tilgængelige hold for et givent kursus

JPP

Søgeprofilen hører til det forhenværende find job, som der er implementeret en toggleswitch til for at kunne rulle jobnet tilbage til denne version. Planlagt udfasning fra koden med 2017-1.

JPPv2

Søgeprofilen for det nuværende findjob.

JPPv2Radial

I forbindelse med golive af 2016-3 kunne det konstateres at radial udsøgning i Ankiro ikke performer. Radial udsøgning blev udskilt fra JPPv2 til denne søgeprofil, som der via en toggleswitch [GeoSearchCriteria] kan aktiveres. Det radiale/boundingbox kriterie kan indarbejdes i JPPv2 på samme vis som CV søgeprofilen istedet for at have to seperate søgeprofiler, som for størstedelen af profilen så skal vedligeholdes to steder.

Kendte udfordinger

Vores ankiro implementering har 3 kendte udfordringer.

Radial søgning

Med 2016-3 blev det konstateret at den nuværende implementerede radiale søgning ikke performer godt nok til produktion. Man kan via Remote Access konstatere at søgningerne tager 30-90 sekunder eller timer ud. I produktion ligger der ~12.000 jobannoncer og ~120.000 cv'er som er geospatialt indekseret, det er muligt at vi aldrig kan få den radiale søgning til at performe. Der kører en åben FB sag på det her https://fogbugz.amstest.dk/default.asp?92716#861017. Der er i mellemtiden implementeret en geospatial søgning med en algoritme, der udsøger i en firkant, hvilket kan indekseres og dermed udsøges med langt bedre performance.

Ophobning af statistiske data

Produktionsdatabasen for ankiro har rundet 75GB, hvoraf kun ~700MB er dokumentdata og indexes. Resten er statistik og loggede søgninger.  Der skulle efter sigende være slukket for maintenance jobs som rydder op i logninger, grundet påvirkning af ankiros performance, men det er ikke lykkedes at finde sagen eller lign. der dokumenterer dette. FB sag https://fogbugz.amstest.dk/default.asp?93184 dokumenterer et workaround og en forespørgsel hos Ankiro om deres bud på om der kunne være uhensigtsmæssige sideeffekter ved at afvikle scriptet. Fremadrettet skal vi have kigget på anbefalingerne her http://docs.ankiro.dk/display/AES/Search+logging i forhold til logninger mod ankiro, da vi helt sikkert logger for meget og iøvrigt pt. ikke kører med oprydning af dette.

Opdatering af datasources/indexes

Det er konstateret at afvikling af batchjobs med parameter deploy/update mod testmiljøer kan ende med at ankiro installationen på miljøet korrupteres og skal geninstalleres fra bunden. Kørsler med parameter full virker ofte ikke før workaround i FB 93184 nævnt ovenfor er afviklet, men selv her har vi ikke en 100% succesrate. 

Planlagte produktopdateringer

Der findes en nyere version af Ankiro produktet, som kræver Sql Server 2012. Geolokationsudsøgningen som i vores nuværende version er en "custom" implementering af Ankiro vil istedet kunne anvende Sql Servers genereliserede implementering.

Det vil give os følgende muligheder:

1) Administrations portalen understøtter søgninger med geolokation baseret på sql server 2012 (nuværende kan ikke angive radial parameter)

2) Vi kan lave udsøgninger, hvor afstanden fra centrum ikke indgår i vægtningen af resultatet. Dette gav os problemer i forhold til at lave automatch i en søgeprofil, da hotjob nær centrum blev vægtet højere end jobmatch i kanten af den radiale søgning.

Se eventuelt den korte guide her https://docs.google.com/document/d/1wBeqcbj8vJT76-31PphgaKHt19XXabRBnxwFnyt7Ck0/edit?pref=2&pli=1

Udviklingsmiljø

SF har udarbejdet en installationsvejledning til test og produktionsmiljøer. Det er samme vejledning der er fulgt for at oprette udviklingsmiljøinstanserne. 

Ankiro klient dll'er og samples kan findes under \\starftp1001.int.startest.dk\Developers$\ 

Til udviklingsmiljøerne er der stillet 4 instanser til rådighed

...

*Default DFDG er det miljø for releasen der bliver deployet oftest.

ankiroudv4 er tiltænkt test af den nyeste ankiro version til sql 2012+

Adgang til administrationsværktøj i testmiljøer

Vi kan se ankiro administrationsinterfacet på alle ST miljøer ved at gå ind via Remote Desktop på rds.startest.dk eller fra en maskine på startest domænet.

I en browser tilgås Ankiro administrationsinterfacet via

http://ankiro.T1.int.startest.dk:8099
http://ankiro.T2.int.startest.dk:8099
http://ankiro.T3.int.startest.dk:8099
http://ankiro.T4.int.startest.dk:8099
http://ankiro.T5.int.startest.dk:8099
http://ankiro.T6.int.startest.dk:8099
http://ankiro.T7.int.startest.dk:8099
http://ankiro.T8.int.startest.dk:8099
http://ankiro.T9.int.startest.dk:8099
http://ankiro.T10.int.startest.dk:8099
http://ankiro.T11.int.startest.dk:8099
http://ankiro.T12.int.startest.dk:8099
http://ankiro.T13.int.startest.dk:8099
http://ankiro.T14.int.startest.dk:8099
http://ankiro.T15.int.startest.dk:8099
http://ankiro.T16.int.startest.dk:8099
http://ankiro.T17.int.startest.dk:8099
http://ankiro.T18.int.startest.dk:8099
http://ankiro.T19.int.startest.dk:8099
http://ankiro.T20.int.startest.dk:8099

(brugernavn: admin, password: admin)

Der er D6uju kursus data på både ST2, ST8 og ST9. (2600 kurser på ST2 og 3600 kurser på ST8 og ST9)

Quicklinks til datasourcekode og søgeprofiler

Til releaseforberedelse er følgende liste af kodefiler brugbar, så man hurtigt kan se om der skal releases ændringer til ankiro datasource/index/søgeprofiler.

Datasources bygges op i
Ams.Jobbank.Indexes.External.JppExternalIndex - BuildDataSource() / UpdateDataSource()
Ams.Jobbank.Indexes.Internal.JppInternalIndex - BuildDataSource() / UpdateDataSource()
BL.Batchjob.Ankiro.Courses.CreateCourseIndex - BuildDataSource() / UpdateDataSource()
BL.Batchjob.Ankiro.CV.CreateCVIndex - BuildDataSource() / UpdateDataSource()

...

  •   
  • full
    Søgeprofiler, indexes og datasources slettes før disse oprettes fra ny. Herefter reindekses alle CV
     
  • reload
    Reindekserer alle CV.
     
  • reloadall
    Reindekserer alle CV.

Søgeprofiler

Søgeprofiler i Ankiro definerer søgekriterier, udformingen af resultatsæt samt sorteringen af samme.

Strukturen er opbygget af et <ResultFormat> element, som definerer resultatsættet samt sorteringen i <SortField> elementer, samt et <Query> element. Query elementer kan nestes og med attributen Operation angives om de nestede elementer er additive eller exclusive i selekteringen.

Bemærk søgekriteriet <Criterion property='Ankiro.Position' weight='1.0' /> er specielt, da der i version 1.13.808.20972 af Ankiro er en bug, som gør kriteriet bliver skippet, hvis der i querien ikke er indeholdt et andet kriterie, der udsøger på en property som eksemplet nedenfor

<Criterion value="{OccupationFreeText}" interpretation="full-exact">
  <Property name="Title" weight="0.95" />
  <Property name="Presentation" weight="0.90" />
</Criterion>

Se eventuelt den vedhæftede email korrespondance med Ankirosupporten på denne fejl.

View file
nameRE SUPPORT Jobnet - Spørgsmål til Automatch Søgeprofil udarbejdet med Rasmus Bodetoft.zip
height250

AutomatchJobnet

Søgeprofilen for automatch dokumenteret her er indført med 2016-3 releasen. Den bliver kaldt op til 3 gange med forskellige input for at kategorisere resultaterne i jobmatch, beslægtede og hotjobs (forretningsreglerne for udsøgning er dokumenteret under forretningsregler for automatch på dette site). Det var tænkt at kategorisere i de 3 grupper i en søgning, men det kan ikke lade sig gøre før Ankiro bliver opgraderet sammen med SQL Server platformen til 2012, hvor vi vil kunne udføre den radiale søgning som et kriterie der enten er opfyldt eller ej i modsætning til nu, hvor den radiale søgning påvirker vægtningen af resultatet.

I stedet kaldes søgeprofilen i 3 omgange hvis det forrige kald ikke fik fyldt en liste af 10 jobforslag

  • Occupation, Flexjob=true hvis borger er flexjobber og geopunkt for at udsøge jobmatch 
  • OccupationFreetext, Flexjob=true hvis borger er flexjobber og geopunkt for at udsøge beslægtede job. 
  • HotjobSearch, (Flexjob=true og Occupation hvis borger er flexjobber), liste af jobannoncer der allerede er udsøgt samt geopunkt for borger for at udsøge hotjobs eller deltidsjob med matchende discoams kode

Ovenstående struktur er gentaget for indekset for interne jobannoncer og indekset for eksterne jobannoncer

Der er implementeret en række integrationstests i AnkiroTest.AutomatchTests, som vil kunne benyttes til at teste og afdække problemer

CVjobSearch

Søgeprofilen anvendes af JobSearch.CvSearchService til udsøgning af borger CV. Profilen er lavet med erfaringerne fra post 2016-3, hvorfor den indeholder både boundingbox (firkantet geo søgning) og radial kriterier, hvor der switches imellem de to funktionaliteter i komponenterne der kalder søgeprofilen for kun at have en søgeprofil at vedligeholde.

FindWorkJobnet

Søgeprofilen for det nuværende findjob.

FindWorkinDenmarkJobnet

Søgeprofilen for det nuværende WIDK instansen af Find Job.

Kendte udfordinger

Vores ankiro implementering har 3 kendte udfordringer.

Radial søgning

Med 2016-3 blev det konstateret at den nuværende implementerede radiale søgning ikke performer godt nok til produktion. Man kan via Remote Access konstatere at søgningerne tager 30-90 sekunder eller timer ud. I produktion ligger der ~12.000 jobannoncer og ~120.000 cv'er som er geospatialt indekseret, det er muligt at vi aldrig kan få den radiale søgning til at performe. Der kører en åben FB sag på det her https://fogbugz.amstest.dk/default.asp?92716#861017. Der er i mellemtiden implementeret en geospatial søgning med en algoritme, der udsøger i en firkant, hvilket kan indekseres og dermed udsøges med langt bedre performance.

Pr. 2023-2 er problemet med den radiale firkant delvist løst ved at dele søgningen op i to forskellige bounding boxes, der er strukket henholdvis breddegrads- og længdegradsmæssigt. Disse beregnes i GeoSearchUtility's funktioner GetLateralBoundingBox og GetLongitudinalBoundingBox. Hermed fjernes nogle, men ikke alle, resultater udenfor den påkrævede radius for søgning. Det er let at indse, at denne kan udbygges, hvis man ønsker endnu mindre overlap uden for cirklen med tre eller flere bounding boxes. Dette er lige nu kun implementeret på CV-søgning under FritekstSoegningMapper og, men samme model kan anvendes på søgning af jobannoncer, hvis STAR prioriterer det.

Løsningen ses illustreret her:

Image Added

Ophobning af statistiske data (forsøges løst med 2017-1 US352)

Produktionsdatabasen for ankiro har rundet 75GB, hvoraf kun ~700MB er dokumentdata og indexes. Resten er statistik og loggede søgninger.  Der skulle efter sigende være slukket for maintenance jobs som rydder op i logninger, grundet påvirkning af ankiros performance, men det er ikke lykkedes at finde sagen eller lign. der dokumenterer dette. FB sag https://fogbugz.amstest.dk/default.asp?93184 dokumenterer et workaround og en forespørgsel hos Ankiro om deres bud på om der kunne være uhensigtsmæssige sideeffekter ved at afvikle scriptet. Fremadrettet skal vi have kigget på anbefalingerne her http://docs.ankiro.dk/display/AES/Search+logging i forhold til logninger mod ankiro, da vi helt sikkert logger for meget og iøvrigt pt. ikke kører med oprydning af dette.

Opdatering af datasources/indexes (forsøges løst med 2017-1 US352) 

Det er konstateret at afvikling af batchjobs med parameter deploy/update mod testmiljøer kan ende med at ankiro installationen på miljøet korrupteres og skal geninstalleres fra bunden. Kørsler med parameter full virker ofte ikke før workaround i FB 93184 nævnt ovenfor er afviklet, men selv her har vi ikke en 100% succesrate. 

Planlagte produktopdateringer (sker med 2017-1 US352)

Der findes en nyere version af Ankiro produktet, som kræver Sql Server 2012. Geolokationsudsøgningen som i vores nuværende version er en "custom" implementering af Ankiro vil istedet kunne anvende Sql Servers genereliserede implementering.

Det vil give os følgende muligheder:

1) Administrations portalen understøtter søgninger med geolokation baseret på sql server 2012 (nuværende kan ikke angive radial parameter)

2) Vi kan lave udsøgninger, hvor afstanden fra centrum ikke indgår i vægtningen af resultatet. Dette gav os problemer i forhold til at lave automatch i en søgeprofil, da hotjob nær centrum blev vægtet højere end jobmatch i kanten af den radiale søgning.

Se eventuelt den korte guide her https://docs.google.com/document/d/1wBeqcbj8vJT76-31PphgaKHt19XXabRBnxwFnyt7Ck0/edit?pref=2&pli=1

Udviklingsmiljø

SF har udarbejdet en installationsvejledning til test og produktionsmiljøer. Det er samme vejledning der er fulgt for at oprette udviklingsmiljøinstanserne. 

Til udviklingsmiljøerne er der stillet 3 instanser til rådighed


Adgang til administrationsværktøj i testmiljøer

Vi kan se ankiro administrationsinterfacet på alle ST miljøer ved at gå ind via Remote Desktop på rds.startest.dk eller fra en maskine på startest domænet.

I en browser tilgås Ankiro administrationsinterfacet via

http://ankiro.t[X].int.startest.dk:8099 hvor X er tallene 1-15.

Der logges på både udv- og test-miljøerne med startest bruger


Image Added

Quicklinks til datasourcekode og søgeprofiler

Til releaseforberedelse er følgende liste af kodefiler brugbar, så man hurtigt kan se om der skal releases ændringer til ankiro datasource/index/søgeprofiler.

Datasources bygges op i
  BL.Batchjob.Ankiro →  AMS.Business.JobIndex.Internal.InternalJobIndexBusiness 
BL.Batchjob.Ankiro.csproj → AMS.Business.JobIndex.External.ExternalJobIndexBusiness 
BL.Batchjob.Ankiro.CV.CreateCVIndex - BuildDataSource() / UpdateDataSource()

Søgeprofilerne kan findes her
BL.Batchjob.Ankiro.CV\SearchprofileCV.xml
BL.Batchjob.Ankiro\SearchprofileAutoMatch.xml
BL.Batchjob.Ankiro\SearchprofileJppV2.xml


Vægtning i Ankiro søgeprofiler


Vægtningen for de forskellige parametre, kan ændres for at optimere / tilpasse søgningsresultaterne.
Dette gøres ved at tilgå den specifikke søge-profil og trykke "Edit Search Profile Definition".
Under "Criterion" tags, kan man tilrette / indsætte vægtning, som fx:
<Property name="HotjobText" weight="0.50" />

Vægtningerne tilpasses individuelt for hhv. interne og eksterne jobannoncer.

Vægtningsparametre

Ikke alle vægtningsparametre kan sættes på både interne og eksterne annoncer.
Det er vigtigt at man kun vægtningsparametre, som kan sættes på den pågældende jobannonce type.
Sætter man et parameteer på eksterne annoncer, som kun findes på interne, øderlægger man søgeprofilen, og man vil få returneret 0 resultater, uanset hvad man søger på. 


Herunder er en liste over de tilgængelige parametre.


Interne annoncerEksterne annoncer

Abroad

XX

Country

XX

CountryCode

XX

DisabilityFriendly

X

EmploymentType

XX

EmplyomentTypeId

XX

HiringOrgCVR

XX

HiringOrgName

XX

HotJobText

XX

HtmlContent

X
IDXX
IsExternalXX
IsHotjobXX
IsWorkInDenmarkJobX
JobAnnouncementTypeXX
JobAnnouncementTypeIdXX
JobHeadlineXX
LastDateApplicationX
LatitudeXX
LongitudeXX
MunicipalityXX
MunicipalityIdXX
OccupationXX
OccupationAreaXX
OccupationAreaIdXX
OccupationENXX
OccupationGroupXX
OccupationGroupIdXX
OccupationIdXX
PostalCodeXX
PostingCreatedXX
PresentationXX
RegionXX
RegionIdXX
TitleXX
Url
X
WorkHourMaxXX
WorkHourMinXX
WorkHoursXX
WorkHoursIdXX
WorkPlaceNotStaticXX


Introduktion til Ankiro

Se vedhæftede slides for mere viden om Ankiro.

View file
nameDemo DS-7472 - Ankiro generelt.pptx
height250
 
View file
nameDemo DS-8365 - Gruppesummeringer.pptx
height250





Child pages (Children Display)