Siirry dokumentaation sisältöön

Hae Knowledge Graphista Graph Query gq/1.3:lla

Hae, analysoi, rajaa ja kulje näyttöön sidottuja entiteettejä ontologian tuntevalla kyselykielellä.

Tässä oppaassa
  1. 1Koosta Boolen predikaatteja
  2. 2Hae sisäkkäisistä ja taulukkokentistä
  3. 3Fasetoi ja rajaa vastaus
  4. 4Kulje suhteita turvallisesti
Tässä oppaassa
  1. 1Koosta Boolen predikaatteja
  2. 2Hae sisäkkäisistä ja taulukkokentistä
  3. 3Fasetoi ja rajaa vastaus
  4. 4Kulje suhteita turvallisesti

Ensimmäinen graafikysely

Graph Query gq/1.3 säilyttää Diffbot DQL:stä tutun tiiviin, entiteettityypistä alkavan muodon ja lisää vakaan AST:n, ontologiavalidoinnin, parametrit, explain-suunnitelmat ja rajatun suorituksen. Jokainen kysely alkaa type:EntityType-lauseella. Vierekkäisten ehtojen välissä on implisiittinen AND.

gq/1.3
type:Organization location.country:"FI" employees>=100 sort:-employees return:entities,evidence limit:25

Syntaksiviite

LauseMerkitys
type:OrganizationPakollinen entiteettityyppi
field:"value" · field="value"Sisältää · täsmällinen yhtäsuuruus
field!=value · > · >= · < · <=Tyypitetyt vertailut
AND · OR · NOT · ( )Sisäkkäiset Boolen predikaatit; vierekkäiset ehdot ovat AND
field:any(a,b) · all(a,b) · none(a,b)Taulukko- ja moniarvohaku
text:"hakufraasi"Full-text-haku identiteetistä ja ominaisuuksista
has:field.path · missing:field.pathOlemassaolon ja puuttumisen testit
sort:-employees,+labelDeterministinen monikenttäjärjestys
select:businessId,employeesOminaisuuksien projektio; identiteettikentät säilyvät
facet:industry,location.countryArvojakauma ennen sivutusta, enintään viisi kenttää
after:gqc_25 · limit:25Cursor-sivutus; enintään 100 entiteettiä
relation:subsidiary_of · direction:both · depth<=2Rajattu suhdekulku, enintään neljä askelta
return:entities,relationships,evidencePalautettavat graafikerrokset

Boolen ehdot, taulukot, aika ja ontologia

Käytä sisäkkäisiä AND/OR/NOT-ryhmiä predikaatteihin ja any(), all() tai none() -lausekkeita moniarvoisiin kenttiin. ISO-aikaleimat toimivat järjestysvertailuissa. target.* rajaa kulun kohteita ja relationship.* suhdefaktoja. Entiteetit, kenttäkyvykkyydet ja suhteet validoidaan ontologiaa vasten; tuntematon kenttä palauttaa ehdotuksen.

gq/1.3
type:Organization (industry:"Logistics" OR employees>=500) AND NOT missing:businessId aliases:any("Northstar","Polar Freight") observedAt>="2026-08-01T00:00:00Z"

Sido epäluotetut arvot parametreina

Viittaa nimettyyn arvoon muodossa $name ja lähetä se GraphQueryInput.parameters-objektissa. Tyypitettyä arvoa ei jäsennetä uudelleen kyselysyntaksina, joten SDK-kutsujan ei tarvitse yhdistellä käyttäjän syötettä merkkijonoon. Validointi, explain ja suoritus ratkaisevat parametrit samalla tavalla.

JSON
{
  "query": "type:Organization location.country:$country employees>=$minimum",
  "parameters": { "country": "FI", "minimum": 100 }
}

Fasetoi, projektoi, järjestä ja sivuta

facet laskee enintään 100 arvokoria koko suodatetusta juurijoukosta ennen sivutusta. select rajaa ominaisuudet poistamatta vakaita id-, type-, label- tai evidence_ids-kenttiä. Monikenttäjärjestys on deterministinen, ja vastauksen page.next_cursor annetaan seuraavan API-kutsun cursor-kentässä tai kielen after:-lauseessa.

gq/1.3
type:Organization location.country:"FI" facet:industry select:businessId,employees,industry sort:-employees,+label limit:25

Kulje suhteita turvallisesti

Suhdekulku pyydetään erikseen ja se on aina rajattu. direction ja depth ovat sallittuja vain relation-lauseen kanssa. Kysely voi kulkea enintään neljä askelta, joten vahingossa syntyvä rajaamaton graafihaku estyy.

gq/1.3
type:Organization businessId="3391028-4" relation:subsidiary_of direction:out depth<=2 target.location.country:"FI" relationship.confidence>=0.9 return:entities,relationships,evidence

Selitä ennen suoritusta

POST /v1/graph/query/validate tarkistaa syntaksin ja ontologian. POST /v1/graph/query/explain palauttaa suunnitelman, indeksit, varoitukset, tulosmäärän ja krediittiarvion suorittamatta kyselyä. POST /v1/graph/query suorittaa saman lausekkeen graph:read-oikeudella.

cURL
curl -X POST https://api.enrich.nordicdevhouse.com/v1/graph/query \
  -H "Authorization: Bearer enrich_live_••••••••" \
  -H "Content-Type: application/json" \
  -d '{"query":"type:Organization location.country:\"FI\" employees>=100 return:entities,evidence"}'

Julkaise claimit muuttumattomana workspace-versiona

POST /v1/graph/publications vastaanottaa idempotentin entiteetti-, suhde- ja evidence-claimien erän graph:write-oikeudella. Koko erästä syntyy yksi sisältöosoitteinen versio, joten lukija ei koskaan näe puoliksi julkaistua graafia. Anna expected_parent_release_id, kun rinnakkainen kirjoittaja ei saa ylikirjoittaa uudempaa aktiivista versiota.

JSON
{
  "source_id": "crm-import-2026-08-17",
  "expected_parent_release_id": "wgr_previous",
  "claims": [
    { "entity_id": "organization:3391028-4", "entity_type": "organization", "label": "Northstar Oy", "attribute": "businessId", "value": "3391028-4" }
  ]
}

Tarkista, vertaa ja aktivoi versioita

Listaa tai lue versiot, vertaa mitä tahansa versiota eksplisiittiseen kantaversioon ja aktivoi aiempi versio hallittuna palautuksena. Aktivointi käyttää expected_current_release_id-arvoa optimistiseen lukitukseen ja tallentaa tekijän sekä syyn kanavahistoriaan. Kysely palauttaa aina käyttämänsä workspace_graph_release_id:n.

Erota metadata muuttumattomista artefakteista

Tuotanto tallentaa workspace-kanavat, idempotenssiavaimet, ingestion-tilan, ontologiat ja tapahtumat PostgreSQL:ään. Sisältöosoitteiset Parquet-versiot tallennetaan S3-yhteensopivaan objektivarastoon ja julkaistaan commit-merkillä. Paikallinen SQLite- ja tiedostoadapteri toteuttaa saman rajan kehityksessä.

Käsittele vain muuttuneet lähdetietueet

Luo lähde määrittämällä connector, entiteettityyppi, tunniste- ja nimikenttä sekä kenttäkartta. Vakaa source_event_id tekee ajon uudelleenyrityksestä turvallisen, ja ajo voidaan suorittaa inline-tilassa tai kestävän worker-jonon kautta. Tietuekohtainen sormenjälki ohittaa muuttumattoman datan, hylätty lease otetaan uudelleen käsittelyyn ja virheelliset rivit siirtyvät dead-letter-listaan korjattavaa uudelleenyritystä varten.

Suunnittele release-kohtaisilla indekseillä

Kyselymoottori leikkaa tyyppi-, tarkka arvo-, olemassaolo- ja full-text-indeksit ennen fallback-ehtojen arviointia. Kandidaatti- ja aikabudjetit katkaisevat liian kalliin suunnitelman, LRU-välimuisti nopeuttaa toistot ja jokainen vastaus raportoi indeksit, kandidaatit, arvioidut tietueet, cache-tilan, fallbackit ja suoritusajan.

Skaalaa luvut kustannustilastoilla, shardeilla ja query-workereilla

Jokainen graafiversio sisältää query-projection/2-artefaktin. Rajattu paikallinen LRU-välimuisti säilyttää immutable-projektioita, ja pysyvät workspace-shardit jakavat artefaktit sekä kestävät kyselytyöt. Explain käyttää kenttien kardinaliteetteja ja relaatioiden astelukuja fanoutin, relaatiohakujen, työmuistin ja suoritusluokan arviointiin. Query-workerit heartbeattaavat leaset, yrittävät virheet uudelleen backoffilla, näyttävät dead letterit ja tukevat peruutusta sekä operaattorin retrytä.

Validoi workspacen ontologia ennen aktivointia

Luo muuttumaton luonnos, validoi yhteensopivuus ja vaikutus nykyiseen dataan ja aktivoi vasta sitten. Hallittu migraatio nimeää olemassa olevat attribuutit uudelleen, ja export/import siirtää skeeman workspacejen välillä. Rikkova tai dataan vaikuttava aktivointi palauttaa 409:n ilman eksplisiittistä lupaa.

Kuluta tapahtumia ja release-deltoja

Listaa append-only-graafitapahtumat cursorilla tai kuluta sama järjestys SSE-virtana. Tapahtumatilaukset muodostavat täsmäävistä muutoksista kestävän webhook-outboxin. Eräkuluttaja voi viedä NDJSON-deltan eksplisiittisestä kantaversiosta kohdeversioon ja jatkaa ilman koko graafin uudelleenrakennusta.

Sama sopimus jokaisessa SDK:ssa

Generoidut klientit tarjoavat metodit queryKnowledgeGraph, validateKnowledgeGraphQuery ja explainKnowledgeGraphQuery. Kaikki käyttävät samaa GraphQueryInput-mallia, joten kysely ja kustannussuunnitelma toimivat samalla tavalla kaikissa kielissä.

TypeScript
const graphApi = new KnowledgeGraphApi(configuration);
const result = await graphApi.queryKnowledgeGraph({
  graphQueryInput: {
    query: 'type:Organization location.country:$country employees>=100 facet:industry return:entities,evidence',
    parameters: { country: 'FI' }
  }
});

Näyttö pysyy eksplisiittisenä

Pyydä evidence vain, kun kutsuja tarvitsee alkuperätiedot. Entiteetit ja suhteet sisältävät evidence_ids-tunnisteet, jotka vastauksen evidence-taulukko ratkaisee lähteeksi, havaintoajaksi ja URL-osoitteeksi. Luottamusarvo ei muuta tarkistamatonta suhdetta hyväksytyksi faktaksi.

Rajat ja virheet

Kyselyssä voi olla enintään 2 000 merkkiä, 25 suodatinta, 100 palautettavaa entiteettiä ja neljä suhdeaskelta. Virheellinen lauseke palauttaa vakaan virhekoodin ja merkkipaikan. Tuntematon kenttä hylätään ontologiavalidoinnissa ja lähellä oleva kenttä ehdotetaan.

Oliko tästä sivusta apua?