Spring naar inhoud

Door Elasticsearch aangedreven API’s

Deze tekst is vertaald met AI. Als je de oorspronkelijke tekst in het Engels wilt bekijken, klik hier.

We onderhouden Elasticsearch-indexen voor alle berichten op WordPress.com en alle berichten die via de Jetpack-plugin worden gesynchroniseerd.

Deze documenten beschrijven de indexstructuren en API’s die beschikbaar zijn voor query’s. Deze API’s ondersteunen functies die beschikbaar zijn op WordPress VIP en in het Jetpack Professioneel abonnement. De Jetpack Gerelateerde berichten-API accepteert ook Elasticsearch-filters.

API-beschikbaarheid

Er zijn drie beschikbaarheidsniveaus:

  • WordPress VIP: We kunnen één enkele index voor je content bouwen (setupkosten vereist). De code voor het bouwen van de index is open source. Vaak worden experimentele functies/velden of dingen die we niet naar alle sites kunnen opschalen hier als eerste geïmplementeerd.
  • Jetpack Professioneel abonnement: Alle Jetpack Pro-sites (inclusief alle VIP-sites) worden geïndexeerd in ons wereldwijde Elasticsearch-cluster en kunnen worden opgevraagd met Elasticsearch Query API-aanroepen. We ondersteunen niet de volledige ES Query DSL, maar wel het grootste deel ervan.
  • Jetpack Gratis abonnement: Alle sites worden geïndexeerd om de Gerelateerde berichten-API mogelijk te maken. De API accepteert aangepaste Elasticsearch-filters.

Elasticsearch-versies en achterwaartse compatibiliteit

Het Elasticsearch-project is gericht op het voortdurend verbeteren van zijn API’s en doorbreekt daarom regelmatig de achterwaartse compatibiliteit. Onze API’s streven ernaar achterwaartse compatibiliteit te behouden, en daarom zijn er een aantal functies die we om verschillende redenen op het gebied van beveiliging of prestaties niet ondersteunen. Alle scripting is bijvoorbeeld uitgeschakeld in onze API. We proberen ook niet de allernieuwste versie van Elasticsearch te gebruiken, omdat we ons inzetten voor achterwaartse compatibiliteit.

Onze query-API lijkt grotendeels op de Elasticsearch Search API uit versie 2.4 van Elasticsearch. We accepteren echter wel enkele verouderde functies en herschrijven sommige query’s om compatibiliteit te behouden. Een goed voorbeeld is dat toen we van ES 1.x naar 2.x overstapten, alle content moest worden gemigreerd: van opslag in het veld “content” met meerdere analyzers naar opslag in een afzonderlijk veld voor elke taalanalyzer: “content.en”, “content.fr”, “content.default”, enz. We herschrijven query’s die nog steeds het veld “content” gebruiken.

Bestaande bibliotheken

Er zullen waarschijnlijk momenten zijn waarop we achterwaartse compatibiliteit moeten verbreken (hopelijk op kleine manieren). De beste manier om ervoor te zorgen dat je applicatie niet tegen deze problemen aanloopt, is door een van de bestaande bibliotheken of filters te gebruiken in plaats van een volledig aangepaste zoekquery te schrijven:

Omdat code de beste documentatie oplevert, is hoe de mappings en documenten voor onze indexen worden opgebouwd grotendeels beschikbaar in WPES-Lib. Data.blog heeft de beste beschrijving van hoe onze realtime-indexering werkt.

Documenten

We indexeren alle WordPress-berichten, pagina’s en aangepaste berichttypen zolang de berichtstatus een van publish, trash, pending, draft, future of private is. Berichten die openbaar beschikbaar zijn, kunnen zonder authenticatie via onze API worden opgevraagd. Geauthenticeerde aanvragen retourneren alle berichten. In het geval van Jetpack zijn berichten die van synchronisatie worden geblokkeerd niet beschikbaar in onze index.

Zie het berichtdocumentschema voor details over alle velden in de index.

Zoek-API

Er gelden iets andere beperkingen voor de API’s, afhankelijk van de servicelaag die je hebt (WordPress VIP, Jetpack Pro of Jetpack Gerelateerde berichten). Afhankelijk van het serviceniveau zijn verschillende functies van de Elasticsearch Query DSL beschikbaar.

Zie de query-API voor details en beperkingen van beschikbare query’s, filters en aggregaties.

* Elasticsearch is een handelsmerk van Elasticsearch BV, geregistreerd in de VS en in andere landen.

Laatste update: juni 23, 2026