Relevanssi – Parempi haku

Kuvaus

Relevanssi korvaa WordPressin oletushaun paremmalla haulla, jossa on paljon enemmän ominaisuuksia ja säädettäviä asetuksia. Saat paremmat tulokset ja paremman näköiset tulokset – käyttäjäsi kiittävät.

Tämä on Relevanssin ilmaisversio. Saatavilla on myös Relevanssi Premium, jossa on lisää ominaisuuksia. Lisätietoja Premiumista löydät Relevanssin sivuilta.

Relevanssin käyttäminen voi vaatia suuria määriä (jopa satoja megatavuja) tietokantatilaa. Jonkunlaisena arviona voit kertoa wp_posts-tietokantataulun viemän tilan kolmella. Jos palveluntarjoajallasi on rajoitetusti tilaa tietokantatauluille, Relevanssin käyttäminen voi olla ongelma. Näissä tapauksessa emme suosittele Relevanssin käyttämistä.

Tärkeimmät ominaisuudet

  • Hakutulokset relevanssin mukaan, ei aikajärjestyksessä.
  • Sumea haku: löydä osumia osittaisten sanojen perusteella.
  • Löydä artikkelit, jotka vastaavat vähintään yhtä hakusanaa (TAI-haku) tai joissa on kaikki sanat (JA-haku).
  • Fraasihaku lainausmerkeillä, esimerkiksi ”musta kissa”.
  • Luo hakutuloksista otteita, joissa näkyy hakusana korostettuna.
  • Korosta hakusanat artikkeleissa, joihin käyttäjä siirtyy hakutulossivulta.
  • Hae kommentteja, avainsanoja, luokkia ja avainkenttien sisältöä.
  • Multisite-tuki.
  • bbPress-tuki.
  • Gutenberg-yhteensopiva.

Kehittyneet ominaisuudet

  • Säädä otsikoiden, avainsanojen ja kommenttien painoarvoa.
  • Pidä lokia käyttäjien hauista, näytä suosituimmat haut ja haut, jotka eivät löydä osumia.
  • Rajoita hakuja tiettyihin luokkiin tai avainsanoihin.
  • Indeksoi omat artikkelilajit ja taksonomiat.
  • Indeksoi lyhytkoodien sisältö.
  • Googlen tyyliset ”Tarkoititko”-ehdotukset, jotka perustuvat käyttäjien onnistuneisiin hakuihin.
  • Tuki WPML ja Polylang -lisäosille.
  • Tuki s2member, Members, Groups ja Simple Membership -lisäosille ja muille vastaaville jäsenyyslisäosille.
  • Kehittyneitä suotimia, joilla saat tuloksista juuri sellaiset kuin haluat.
  • Hakujen rajoitus parantaa suorituskykyä isoilla tietokannoilla.
  • Kytke artikkelien sisällön tai otsikoiden indeksointi pois päältä halutessasi.

Premium-version ominaisuudet

  • Liitteiden sisällön indeksointi (PDF, Office, Open Office).
  • Paremmat ”Tarkoititko”-ehdotukset.
  • Hae monelta alasivustolta samassa multisite-asennuksessa.
  • Indeksoi ja hae käyttäjiä.
  • Indeksoi ja hae taksonomiatermien sivuja (luokat, avainsanat, omat taksonomiat).
  • Indeksoi ja hae wp_posts-taulun sarakkeita.
  • Mahdollisuus painottaa eri artikkelilajeja ja taksonomioita.
  • Mahdollisuus painottaa uusia artikkeleita.
  • Käyttäjille mahdollisuus valita JA ja TAI -operaattorien välillä, + ja – -operaattorit (JA ja EI).
  • Asetusten tuominen ja vieminen.
  • WP CLI -komentoja.
  • Samankaltaiset artikkelit.
  • Automaattiset edelleenohjaukset hauille.

Kiitokset

  • Cristian Dammille tagien ja kommenttien indeksoinnista, rajoitustoiminnoista ja yleisestä avuliaisuudesta.
  • Marcus Dalgrenille UTF-8-fiksauksista.
  • Warren Tapelle version 2.5.5 korjauksista.
  • Mohib Ebrahimille armottomasta buginmetsästyksestä.
  • John Calahanille version 4.0 betatestauksesta.

Kuvankaappaukset

  • Asetusten etusivu
  • Indeksointiasetukset
  • Hakuasetukset
  • Lokiasetukset
  • Otteet ja korostukset
  • Synonyymiasetukset
  • Hukkasana-asetukset

Asennus

  1. Asenna lisäosa WordPressin lisäosasivulta.
  2. Aktivoi lisäosa.
  3. Mene lisäosan asetussivulle ja indeksoi tietokanta ohjeiden mukaisesti.
  4. Siinä se!

Relevanssi käyttää WordPressin oletushakulomaketta, eikä yleensä edellytä muutoksia hakutulosten sivupohjaan.

Jos haku ei tuota tuloksia, teemasi hakutulossivupohjassa on luultavasti query_posts()-funktio. Se sekoittaa Relevanssin. Löydät lisätietoja Relevanssin tietämyskannasta.

Relevanssin poistaminen

Jos haluat poistaa Relevanssin, käytä WordPressin lisäosanhallintaa: poista lisäosa ensin käytöstä ja poista se sitten. Jos poistat tiedostot suoraan palvelimelta, tietokantaan jää turhaa tavaraa.

UKK

Tietämyskanta

Vastauksia ongelmiin löytyy Relevanssin tietämyskannasta.

WordPressin aputoiminto

Vastauksia moniin kysymyksiin löytyy Relevanssin sisäisestä aputoiminnosta. Kun olet Relevanssin asetussivulla WordPressin ylläpidossa, klikkaa vain ”Apua” ruudun oikeassa yläkulmassa.

Relevanssi ei toimi

Jos tulokset eivät muutu kun olet asentanut ja aktivoinut Relevanssin, hakutulossivupohjassasi on luultavasti käytetty query_posts()-funktiota. Se rikkoo Relevanssin. Poista query_posts() ja katso mitä tapahtuu.

En löydä sanoja, joissa on et-merkki tai väliviiva

Lue Words with punctuation can’t be found. Tämä on Relevanssin ominaisuus, johon voit vaikuttaa indeksointiasetuksista.

Missä on loki käyttäjien hauista?

Katso ylläpitovalikon yläosaa ja kohtaa ”Käyttäjien haut”.

Relevanssipistemäärän näyttäminen

Relevanssi varastoi relevanssipistemäärän $post-muuttujaan. Lisää vain

echo $post->relevance_score

hakutulossivupohjaasi PHP-koodiblokin sisälle.

Tarkoititko-ehdotukset

Relevanssissa on Google-tyyliset ”Tarkoititko”-ehdotukset. Lisätietoja löytyy ”Tarkoititko”-ehdotukset -artikkelista Relevanssin tietämyskannassa.

Mitä on tf * idf -painotus?

Tiedonhaun perinteinen painotuskaava. Tf tarkoittaa termifrekvenssiä ja idf käänteistä dokumenttifrekvenssiä. Termifrekvenssi on se, kuinka monta kertaa sana esiintyy dokumentissa, dokumenttifrekvenssi taas niiden dokumenttien lukumäärä, joissa sana esiintyy.

Sanan paino on suurempi, mitä useammin se dokumentissa esiintyy ja mitä harvemmassa dokumentissa se on.

Mitä ovat hukkasanat?

Jokaisessa dokumenttitietokannassa on valtavasti turhia sanoja. Kaikki ne pikkusanat, jotka esiintyvät jokseenkin jokaisessa artikkelissa ovat haun kannalta merkityksettömiä. Niiden käänteinen dokumenttifrekvenssi on niin pieni, ettei niillä ole merkitystä. Tällaisten sanojen poistaminen tekee indeksistä pienemmän ja hakemisesta nopeampaa.

Arvostelut

7.1.2022
I fond this when looking for a PDF search solution, and tend to use it everywhere now. A great plugin, both free and pro. Mikko's support is second to none, which is a great reassurance when setting the plugin up to do something complex.
27.12.2021
I use "whole word" search option, and the results are correct. But in the result page, the excerpt generated by Relevanssi may still only contain a partial match. For example, if I search for "lx", the generated excerpt maybe like this: ... zxl ... Pls visit my site wolfccb dot com and try to search "lx". Hope it can be fixed in the future. Great plugin, thanks a lot, and happy new year!
13.12.2021
I happened to contact Mikko Saari, the creator of Relevanssi, without having even known the plugin or its creator, let alone installing it. Still, he took care to reply with his brilliance to explain why I was facing a google indexing issue for my site. That email led to a series of inquiries from others, including google community, that has now clarified the problem for me. So, I got in touch with him again, realizing that his plugin and expertise could actually help solve the problem, and I was correct in that, since he did everything feasible to make that happen, like an artist painting his plugin for my site's canvas. Mikko is a kind of friend and brother you always you wished to have with not just WordPress or search plugin expertise, but a person who cares about the use-value of what he does far before and beyond its exchange-value, and that explains his success in winning the hearts of those who approach him. How could I not opt for a lifetime package of his plugin! Mikko does his best to offer precise and always thoughtful help, and when you reread his feedbacks you even learn things you missed the first time. Relevanssi is a labor or love for him and it shows, and he does his best to help you. It is an amazing, highly nuanced and detailed plugin. Yet, he even goes beyond that to customize its helpfulness for you, and it works perfectly. You will not regret installing Relevanssi because it is a superb plugin with lots of useful features that immediately make its difference for your site, making you wonder how you could have done without it in the first place! Mikko is not only a wonderful plugin creator but just a good person, caring and helpful. In an increasingly estranged world, he makes hope and helpfulness and just being a good person helping others more relevant again. Thanks for all your help and being there, Mikko.
29.11.2021
We struggled with finding a decent site-search. The one we used, Ivory Search, was good but updates too often required repairs. We switched to Relevanssi, and noticed an improvement in the quality of the serp it produces, and it has highlighting of search terms in snippets even on the free version. When I came across a compatability bug (one particuar page wasn't showing in the serp) Mikko, the Developer, helped me hunt down the cause, (via the plugin support forum) and add a line of code to our Theme's functions.php file that fixed the glitch. Very impressed, I think you will be too. 🙂
Lue kaikki 336 arvostelua.

Avustajat & Kehittäjät

“Relevanssi – Parempi haku” perustuu avoimeen lähdekoodiin. Seuraavat henkilöt ovat osallistuneet tämän lisäosan kehittämiseen.

Avustajat

“Relevanssi – Parempi haku” has been translated into 12 locales. Kiitoksia kääntäjille heidän työstään.

Käännä “Relevanssi – Parempi haku” omalle kielellesi.

Oletko kiinnostunut kehitystyöstä?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Muutosloki

4.14.6

  • Security fix: Extra hardening for AJAX requests. Some AJAX actions in Relevanssi could leak information to site subscribers who knew what to look for.

4.14.5

  • Security fix: Any registered user could empty the Relevanssi index by triggering the index truncate AJAX action. That is no longer possible.
  • New feature: The [searchform] shortcode has a new parameter, ’checklist’, which you can use to create taxonomy checklists.
  • Changed behaviour: The relevanssi_search_again parameter array has more parameters the filter can modify.
  • Changed behaviour: The relevanssi_show_matches filter hook gets the post object as the second parameter.
  • Minor fix: The cats and tags parameters work better and support array values.

4.14.4

  • Minor fix: relevanssi_orderby did not always accept an array-format orderby parameter.
  • Minor fix: Removes a highlighting problem stemming from uppercase search terms.
  • Minor fix: Relevanssi removes highlights better from inside multiline HTML tags.
  • Minor fix: When image attachment indexing was disabled, saving image attachments would still index the images. Image attachment blocking is now a relevanssi_indexing_restriction filter function, which means it’s always active.

4.14.3

  • Security fix: User searches page had a XSS vulnerability.

4.14.2

  • Minor fix: Remove unnecessary database calls from admin pages.
  • Minor fix: Improved Oxygen compatibility.

4.14.1

  • Adds a missing file.

4.14.0

  • New feature: New filter hook relevanssi_render_blocks controls whether Relevanssi renders blocks in a post or not. If you are having problems updating long posts with lots of blocks, having this filter hook return false for the post in question will likely help, as rendering the blocks in a long post can take huge amounts of memory.
  • New feature: The user searches page has been improved a lot.
  • New feature: The [searchform] shortcode has a new parameter, ’post_type_boxes’, which creates a checkbox for each post type you list in the value. For example [searchform post_type_boxes=’*post,page’] would create a search with a checkbox for ’post’ and ’page’ post types, with ’post’ pre-checked.
  • New feature: You can now have multiple dropdowns in one [searchform] shortcode. Anything that begins with ’dropdown’ is considered a dropdown parameter, so you can do [searchform dropdown_1=’category’ dropdown_2=’post_tag’] for example.
  • New feature: New filter hook relevanssi_search_params lets you filter search parameters after they’ve been collected from the WP_Query.
  • New feature: New filter hook relevanssi_excerpt_post lets you make Relevanssi skip creating excerpts for specific posts.
  • Changed behaviour: Filter hooks relevanssi_1day, relevanssi_7days and relevanssi_30days are removed, as the user searches page is now different. The default value for relevanssi_user_searches_limit is now 100 instead of 20.
  • Minor fix: In some languages, iOS uses „“ for quotes. Relevanssi now understands those for the phrase operator.
  • Minor fix: Stops Relevanssi from blocking the admin search for WooCommerce coupons and other WooCommerce custom post types.
  • Minor fix: Fixes problems with the WP-Members compatibility.
  • Minor fix: New parameter for relevanssi_tokenize() introduces the context (indexing or search query). The relevanssi_extract_phrases() is only used on search queries.
  • Minor fix: Relevanssi won’t let you adjust synonyms and stopwords anymore if you use Polylang and are in ’Show all languages’ mode.
  • Minor fix: Highlighting is improved by a more precise HTML entity filter, thanks to Jacob Bearce.

4.13.3.1

  • Minor fix: The Bricks compatibility was broken. This version fixes it.

4.13.3

  • New feature: You can now add a post type dropdown to search forms with the [searchform] shortcode with the parameter ’dropdown’ set to ’post_type’.
  • New feature: Adds compatibility for Product GTIN (EAN, UPC, ISBN) for WooCommerce plugin.
  • New feature: New filter hook relevanssi_post_to_excerpt lets you filter the post object before an excerpt is created from it.
  • New feature: Relevanssi is now compatible with the Bricks page builder theme (requires Bricks 1.3.2).
  • Minor fix: The ″ character is now counted as a quote.
  • Minor fix: Running indexing through WP CLI doesn’t cause PHP notices anymore.
  • Minor fix: Sometimes the Did you mean would return really weird long suggestions from the search logs. That won’t happen anymore.
  • Minor fix: Improves tax_query handling in fringe cases with multiple AND clauses joined together with OR.
  • Minor fix: Oxygen compatibility has been improved. Rich text fields and updating posts when they are saved in Oxygen now work better, and revisions are no longer indexed.
  • Minor fix: Searching without a search term works much better now, you get more posts in the results (default value is up to 500).

4.13.2

  • New feature: Adds support for Avada Live Search.
  • New feature: Adds support for Fibo Search.
  • Minor fix: Elementor library searches are not broken anymore when Relevanssi is enabled in admin.
  • Minor fix: Relevanssi now understands array-style post_type[] parameters.
  • Minor fix: Relevanssi now automatically considers the Turkish ’ı’ the same as ’i’.

4.13.1

  • New feature: Adds compatibility for WP-Members plugin, preventing blocked posts from showing up in the search results.
  • New feature: New function relevanssi_get_attachment_suffix() can be used to return the attachment file suffix based on a post object or a post ID.
  • Minor fix: Improves the Oxygen compatibility. Now also the [oxygen] shortcode tags are removed.

4.13.0

  • Uusi ominaisuus: Uusi suodatin relevanssi_phrase suodattaa jokaisen fraasin ennen kuin sitä käytetään MySQL-kyselyssä.
  • Uusi ominaisuus: Relevanssi voi nyt lisätä hakutuloksiin Googlen tyyliset puuttuvien hakusanojen listat. Voit käyttää koodia %missing% osumalistauksessa, tai voit tehdä oman toteutuksesi: puuttuvat hakusanat ovat artikkeliobjektissa kohdassa $post->missing_terms. Relevanssi Premium lisää ”Pakko olla”-linkit, jos vain yksi hakusana puuttuu.
  • Uusi ominaisuus: Uusi suodatin relevanssi_missing_terms_tag säätää, mitä HTML-tagia käytetään puuttuvien hakusanojen ympärillä.
  • Uusi ominaisuus: Uusi suodatin relevanssi_missing_terms_template muokkaa puuttuvien hakusanojen muotoilua.
  • Uusi ominaisuus: Uusi funktio relevanssi_get_post_meta_for_all_posts() palauttaa tietyn avainkentän arvon isolle joukolle artikkeleja yhdellä tietokantakyselyllä.
  • Uusi ominaisuus: Uusi suodatin relevanssi_post_author suodattaa artikkelin kirjoittajan display_name-kentän ennen kuin se indeksoidaan.
  • Muuttunut toiminta: relevanssi_strip_tags lisäsi aikaisemmin välilyönnin kaikkien HTML-tagien väliin ennen niiden poistamista. Nyt tämä ei enää toimi näin, vaan välilyönnit lisätään vain tiettyjen tagien väliin (p, br, h1-h6, div, blockquote, hr, li, img), eikä muualle.
  • Muuttunut toiminta: Relevanssi indeksoi nyt Oxygen Builderin PHP- ja HTML-koodiblokkien sisällön.
  • Muuttunut toiminta: Relevanssi käsittelee nyt synonyymit fraasien sisällä eri tavalla. Jos uusi suodatin relevanssi_phrase_synonyms palauttaa true (mikä on oletusarvo), synonyymit luovat uuden fraasin (synonyymillä ’koira=hauva’, fraasista "koira ruoka" tulee "koira ruoka" "hauva ruoka"). Jos arvo on false, fraasien sisällä olevia synonyymejä ei huomioida ollenkaan.
  • Pieni korjaus: Kauttaviivan sisältävistä hakusanoista ei tule enää varoituksia otteiden luomisessa.
  • Pieni korjaus: Ninja Tables -yhteensopivuutta on parannettu lightbox-kuvien osalta.
  • Pieni korjaus: Relevanssi ei toiminut hyvin mediakirjaston ruudukkonäkymässä. Relevanssi on nyt poistettu käytöstä siinä. Jos tarvitset Relevanssi-hakuja mediakirjastosta, käytä listanäkymää.
  • Pieni korjaus: Otteiden luominen ei toiminut oikein hakusanoilla, jotka olivat pelkkiä numeroita.

4.12.5

  • Muuttunut toiminta: relevanssi_excerpt_custom_field_content saa nyt artikkelin ID:n ja listan avainkenttien nimistä parametreinä.
  • Pieni korjaus: Varmistaa, että Relevanssin asetuksia ei poisteta kun ilmaisversio poistetaan Premiumin ollessa käytössä.
  • Pieni korjaus: Lisää puuttuvan kauttaviivan blogin osoitteen perään ”Tarkoititko”-linkkeihin.

4.12.4

  • Uusi ominaisuus: Uudet koukut relevanssi_pre_the_content ja relevanssi_post_the_content tapahtuvat ennen ja jälkeen sen kun Relevanssi ajaa the_content-koukun otteita tehtäessä. Osa Relevanssin perustoiminnoista on siirretty näihin koukkuihin, jotta sitä voidaan muuttaa.
  • Muuttunut toiminta: relevanssi_do_not_index saa artikkeliobjektin kolmantena parametrinä.
  • Pieni korjaus: Poistaa virheet, jotka tulivat jos relevanssi_strip_all_tags() sai null-parametrin.

4.12.3

  • Iso korjaus: Artikkelilajien painot eivät toimineet oikein.
  • Pieni korjaus: Relevanssi toimii paremmin soft hypheneiden kanssa indeksoinnissa ja otteiden teossa.
  • Pieni korjaus: Poistaa indeksointivirheitä WPML:n kanssa.

4.12.2

  • Iso korjaus: ACF:n avainkenttien indeksoinnissa oli ongelmia.
  • Iso korjaus: Hakutulosten välimuistittamisessa oli vika, joka aiheutti ylimääräisiä tietokantakyselyjä.

4.12.1

  • Iso korjaus: Poistaa TypeError-ongelmia avainkenttien indeksoinnista.

4.12.0

  • Uusi ominaisuus: Uusi suodatin relevanssi_phrase_queries voi lisätä uutta sisältöä fraasihakuun.
  • Uusi ominaisuus: Uusi suodatin relevanssi_excerpt_gap säätää otteiden optimointia.
  • Muuttunut toiminta: relevanssi_admin_search_element suodatin saa nyt artikkeliobjektin toisena parametrinä, mikä tekee tästä suodattimesta oikeasti käyttökelpoisen.
  • Muuttunut toiminta: Relevanssi optimoi nyt otteiden luomista pitkissä artikkeleissa. relevanssi_optimize_excerpts on yhä käytettävissä, mutta sitä ei todennäköisesti tarvitse.
  • Muuttunut toiminta: relevanssi_tag_before_tokenize korjattiin toimimaan tavalla, jolla sen pitäisi toimia.
  • Pieni korjaus: Relevanssi ei aina korostanut otsikon viimeistä sanaa.
  • Pieni korjaus: Relevanssi lisää highlight-parametrin nyt vain hakutuloksiin, eikä muihin linkkeihin hakutulossivulla.
  • Pieni korjaus: Sisäkkäisten taksonomiakyselyiden erikoistapauksia on paikattu.
  • Pieni korjaus: WPML-kontekstissa taksonomiatermit menivät väärin. Artikkelin kielen sijasta käytettiin sivuston nykyistä kieltä, joten jos ylläpito oli suomeksi, englanninkielisiin artikkeleihin indeksoitiin suomenkieliset termit.
  • Pieni korjaus: Otteiden luominen on nyt nopeampaa.
  • Pieni korjaus: SEO-lisäosien noindex-asetus ei itse asiassa toiminut. Nyt toimii!

4.11.1

  • Iso korjaus: Tyyppivihjeet osoittautuivat paikka paikoin liian rajoittaviksi, mistä seurasi virheitä. Tyyppivihjeitä on loivennettu (nullable types auttaisi, mutta se on PHP 7.4 -ominaisuus, ja sitä emme nyt halua).

4.11.0

  • Uusi ominaisuus: Uusi suodatin relevanssi_rendered_block suodattaa Gutenberg-lohkot sen jälkeen kun lohko on renderöity render_block()-funktiolla.
  • Uusi ominaisuus: Uusi suodatin relevanssi_log_query suodattaa hakulausekkeen ennen kuin se kirjataan lokiin. Tällä voi lokittaa haut synonyymien kanssa (ne on saatavilla parametrinä).
  • Uusi ominaisuus: Uusi suodatin relevanssi_add_all_results voi lisätä $query->relevanssi_all_results-muuttujaan kaikkien löydettyjen tulosten ID-numeron, jos tämä suodatin palauttaa true.
  • Uusi ominaisuus: Uusi suodatin relevanssi_acceptable_hooks määrittelee, missä Relevanssin admin-skriptit voidaan ottaa käyttöön.
  • Uusi ominaisuus: Tuki All-in-One SEO:lle. ’Robots No Index’-merkittyjä artikkeleita ei indeksoida Relevanssin indeksiin.
  • Uusi ominaisuus: Kehittyneistä indeksointiasetuksista löytyy nyt asetus, jolla voi säätää, noudattaako Relevanssi SEO-lisäosien ’noindex’-asetusta vai ei.
  • Muutos toiminnassa: Relevanssin funktioihin on lisätty tyyppivihjeitä, joka voi aiheuttaa virheitä.
  • Muutos toiminnassa: relevanssi_the_title() käyttää nyt samoja parametrejä kuin the_title(), joka tekee vaihtamisesta helpompaa. Vanhaa toiminnallisuutta tuetaan myös.
  • Muutos toiminnassa: Relevanssi ei enää kirjaa kyselyitä synonyymien kanssa. Suodattimella relevanssi_log_query voi palauttaa käyttöön entisen toiminnallisuuden. Kiitos Jan Willem Oostendorp.
  • Muutos toiminnassa: Kun käytetään ACF:ää ja indeksoidaan kaikki avainkentät, Relevanssi ei enää indeksoi ACF:n metakenttiä (joiden sisältö alkaa field_).
  • Pieni korjaus: Oxygen-yhteensopivuus teki mahdottomaksi indeksoita muita avainkenttiä kuin ct_builder_shortcodes. Tämä on korjattu.
  • Pieni korjaus: Javascript-varoituksia aiheuttaneet vanhentuneet skriptit on poistettu ylläpitosivuilta.
  • Pieni korjaus: Joissain tapauksissa pienempi kuin ja suurempi kuin -merkit aiheuttivat ongelmia PDF-sisällön lukemisessa.