Multisite-haku WordPressille

Teen WordPress-toteutuksena sivustoa, jossa on pääsivuston lisäksi muutama blogi. Sivusto on sisällöllisesti yhtenäinen kokonaisuus ja blogien halutaan olevan näkyvä osa. Näinpä navigaatio, laidan bannerit ja haku ovat läpi sivuston yhtenäisiä.

Testasin paria hakupluginia ja päädyin kokeilemaan kotimaista Relevanssia, joka lupaa parantaa haun antamia tuloksia ja tarjoaa myös toiminnon monisivustohakuun.

Hankin Relevanssin Developer -lisenssin, joka sallii asennuksen kaupallisessa mielessä ja usealle sivustolle. Relevanssin ilmainen versio sisältää tärkeimmät toiminnot, joten sillä pääsee peruskäytössä vauhtiin. Edullisin kaupallinen versio maksaa $10.

Asennus meni näppärästi, mutta pluginin multisite-osuudesta löytyi pari bugia. Toiminnon beta-laadusta on varoitettu sivulla, joten se oli minulla toki tiedossa. Lähetin raportin relevanssin tekijälle Mikko Saarelle, joka korjasi bugit välittömästi. Mainiota!

Viikon kokemuksella Relevanssi on toiminut hyvin. Multisite-käytössä haku on kuulemma jokseenkin raskas, koska se käy erikseen hakemassa tiedot kaikista blogeista switch_to_blog() -funktiolla. Tässä tapauksessa sivustoja on suhteellisen vähän enkä usko, että hakusivua ladataan niin usein, että se olisi ongelma.

Hakutulossivun koodin puolella tarvitsi käytännössä tehdä ainoastaan pari pientä muutosta. Koska linkit menevät eri sivustoille, get_permalink() piti vaihtaa muotoon get_blog_permalink($post->blog_id, $post->ID). Vaihdoin myös the_excerpt() -kohdan muotoon relevanssi_the_excerpt().

Tätä pluginia käytän varmasti jatkossakin.

Päivitystä alkuvuodesta 2012:

Erään asiakkaan sivustosta tuli kohtalaisen monimutkainen – useita omia sisältötyyppejä (custom post types) ja -kenttiä (custom fields) sekä näiden varaan rakennettu minisovellus. WordPressin hakutoiminto putosi kelkasta vikkelästi ja tyystin, mikä varmastikaan ei tule yllätyksenä sen kanssa pelanneille.

Relevanssi tulille, asetukset kohdilleen ja hop! Haun ongelmat oli ratkaistu liki kertalaakista. Relevanssin asetuksista löytyy mahdollisuus hakea tietoa mistä tahansa tietokannan kentistä (meta fields), mikä oli tässä tapauksessa korvaamattoman hyödyllistä.

Comments

  1. Relevanssi itsessään voi olla vähän raskas tietokannalle, koska jokainen haun tuloksena saatava merkintä on käytävä hakemassa tietokannasta. Jos hakee yleisellä sanalla isosta blogista, tästä tulee helposti useita satoja tietokantahakuja. Tämä kun kerrotaan monella blogilla, tulee siitä jo ihan kohtalainen isku tietokantaan. Tietokannan suorituskyvystä on sitten kiinni, miten käy… Tähän on tulossa parannusta, kunhan keksin miten.

    Tähän on toki pari ratkaisua olemassa jo Relevanssissa itsessään (esimerkiksi mahdollisuus rajoittaa tietokannasta noudettavien dokumenttien määrää; oletuksena maksimi on 500, mutta sitä voi kiristää, mikä on etenkin multisite-haussa erittäin hyvä idea), eikä se välttämättä ole isokaan ongelma, jos hakuja ei tule paljon.

    • Heikki Hyppänen says:

      Sivusto on geneerisellä FTP-tilillä, joten jäämme odottelemaan, tuleeko administraattorilta vihaista postia. ;) Tosin kyseinen firma käyttää erillisiä, tietokantakäyttöön optimoituja MySQL-palvelimia, joten epäilisin suorituskyvyn riittävän melko pitkälle.

      Kiitos vinkistä!

  2. Taweldede says:

    Kiitos mielenkiintoista tietoa

Speak Your Mind

*