You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Finnassa hakutulokset voidaan järjestää relevanssin perusteella, eli hakukriteereihin nähden osuvimmat tulokset järjestetään tuloksessa ensimmäiseksi. Omassa Finna-näkymässä organisaatio voi säätää relevanssia tarpeen mukaan.

Relevanssia säätämällä on helppo sotkea hakutulokset. Kannattaa olla varovainen ja testata muutokset huolellisesti.

 

VuFind2 ja Finna

Relevanssi määräytyy conf-hakemistosta löytyvän searchspecs.yaml-tiedoston perusteella. Tiedosto on YAML-muodossa, jossa sisennykset määrittävät tiedoston muodon. Merkistönä on UTF-8 ja sisennykseen käytetään välilyöntejä, ei sarkaimia (tab). Omat muutokset kannattaa tehdä searchspecs.local.yaml -tiedostoon. Siihen ei tarvitse kopioida kaikkea searchspecs.yaml:sta, muutetut hakukentät riittävät.

Relevanssista saa lisätietoa lisäämällä Finnan hakutulossivun osoitteen perään parametrin &debugSolrQuery=true ja tarkastelemalla sivun lähdekoodia sen jälkeen.

Useimmissa hakukentissa on kaksi erilaista prosessointitapaa, DismaxFields and QueryFields. Dismax-hakusyntaksia käytetään aina, kun mahdollista, mutta jotkin hakuehdot edellyttävät Lucene-hakusyntaksia. Näistä löytyy enemmän selitystä VuFindin wikistä, mutta relevanssin säätämisen kannalta on olennaista tehdä samat muutokset molempiin kohtiin.

Hakukenttien perässä ^-merkin jälkeen tai hakasuluissa mainittu numero kertoo, kuinka suuren suhteellisen painoarvon kentän sisältö saa hakutuloksessa (weighting). Nämä painoarvot ovat suhteessa vain muihin saman haun kenttiin, eivät mihinkään muuhun. Suurempi luku nostaa kentän tärkeämmäksi kuin pienemmän luvun omaavat kentät, mutta hakuehdon täsmäävyydellä on myös merkitys lopullista painoarvoa laskettaessa.

Joistakin hakukentistä on olemassa tavallinen ja unstemmed-versio (esim. allfields ja allfields_unstemmed). unstemmed-kentissä ei käytetä kielenkäsittelyä, esim. perusmuotoon palautusta. Niiden painoarvoa kasvattamalla nostetaan täsmälliset osumat tärkeämmiksi kuin epätäsmälliset. Lisäksi osassa hauista on Exact-versio (esim. AllFields ja AllFieldsExact), jota käytetään, jos hakuehto on ympäröity lainausmerkein.

Hakutuloslistojen järjestykseen vaikuttavat DisMax-parametrit

DisMaxin dokumentaatiossa kerrotaan, että seuraavat DisMax-parametrit vaikuttavan relevanssipisteytykseen (engl. score) eli hakutuloslistan järjestykseen.

Keskeisimmät parametrit

pf

Parametrilla pf param voidaan nostaa dokumenttien pisteitä tapauksissa, joissa kaikki q-parametrissa annetut hakusanat ovat dokumentissa lähellä toisiaan. Normaalisti DisMax laskee jokaiselle hakusanalle omat relevanssipisteensä. Jos parametri pf on annettu, DisMax antaa sen mukaisen painotuksen lisäksi hakusanojen muodostamalle fraasille.

Muotoilu on lista kenttä ja nostokerroin -pareja. Näitä käytetään, kun luodaan kyselyä parametrin q perusteella.

Esim.  Korostetaan tietueita, joissa on otsikossa sanat juuri halutussa järjestyksessä.

   - ['pf', title_txtP^1000 author^500]

tie
Oletusarvoisesti relevanssinlaskennassa käytetään suurimmat pisteet saaneen kentän pisteitä.

Kun tie-parametri on määritelty, muidenkin osumakenttien pisteitä lisätään suurimmat pisteet saaneen kentän pisteisiin.

bq
Bq on SolrQuerySyntax-muotoinen merkkijono, joka sisällytetään käyttäjän kyselyyn ja joka vaikuttaa relevanssipisteiden laskentaan.

Esim. Korostetaan suomenkielisiä tietueita.

   - ['bq', (language:"fin")^0.11]

bf

Bf-parametrin avulla voi sisällyttää käyttäjän kyselyyn funktioita. Funktio voi olla mikä tahansa Solrin natiivifunktio, ja kullekin on mahdollista antaa nostokerroin. Bf-parametrin funktiot sisällytetään käyttäjän kyselyyn ja vaikuttavat relevanssipisteisiin.

Esim. Korostetaan uusia tietueita.

   - ['bf', "recip(ms(NOW/DAY,main_date),3.16e-11,1,1)"]

Täsmentävät parametrit

ps

Parametri ps täsmentää parametria pf. Parametri ps kertoo, montako "positiota", eli käytännössä sanaa, merkkijonon osaa saisi enintään siirtää, jotta hakutulokseen sisältyvä merkkijono olisi täsmälleen sama kuin käyttäjän syöttämät hakusanat (vrt. "fraasihaku"). Lähde. Kirjain s on tässä lyhenne englanninkielisestä sanasta slop, jolla tarkoitetaan tämän siirron suuruutta.

Esim. Korostetaan hakutuloksia, joissa sanojen etäisyys toisistaan on enintään 2 positiota.

   - ['ps', 2]

Esimerkki

Tiedostossa searchspecs.yaml voitaisiin määritellä seuraavat DisMax-parametrit hauille ilman kohdekenttärajausta. Esimerkissä on mukana myös DisMax-kentät.

AllFields:
 DismaxFields:
   - title_txtP^2600
   - title_full_unstemmed^700
   - title_full^650
   - title_alt^200
   - title_new^100
   - series^50
   - series2^30
   - author^2500
   - author2^250
   - author_additional^50
   - author_fuller^150
   - contents^10
   - description^10
   - topic_unstemmed^900
   - topic^400
   - geographic^300
   - genre^300
   - allfields_unstemmed^250
   - fulltext_unstemmed^250
   - allfields
   - fulltext
   - isbn
   - issn
   - collection_txt_mv
 DismaxParams:
   # this line will boost newer releases
   - ['bf', "recip(ms(NOW/DAY,main_date),3.16e-11,1,1)"]
   # this line will boost finnish language in author searches
   - ['bq', (language:"fin")^0.11]
   - ['bq', (* -(format:"1/Other/Kit/"))^1000000]
   - ['bq', (format:"0/PhysicalObject/")^1000]
   - ['pf', title_txtP^1000 author^500]
   - ['ps', 2]

Linkkejä

Apache-ohje

Confluence-ohje

Apache Solr FAQ

  • No labels