Siirry dokumentaation sisältöön

Käännä kahdeksan kyselykieltä Graph Queryksi

Muunna Diffbot-, Elastic-, KQL-, Lucene-, PPL-, SQL-, Cypher- ja legacy JSON -kyselyt lähdevarmennuksella, pysyvillä ajoilla ja näkyvillä diagnostiikoilla.

Tässä oppaassa
  1. 1Valitse lähdekieli
  2. 2Käännä strict-tilassa
  3. 3Tarkista kartoitukset ja diagnostiikat
  4. 4Validoi ja suorita tuotettu Graph Query
Tässä oppaassa
  1. 1Valitse lähdekieli
  2. 2Käännä strict-tilassa
  3. 3Tarkista kartoitukset ja diagnostiikat
  4. 4Validoi ja suorita tuotettu Graph Query

Migraation työnkulku

POST /v1/graph/query/translate vastaanottaa lähdekielen sekä teksti- tai JSON-kyselyn. Framework valitsee Query Translator Adapterin, soveltaa tuotteen kenttäkartan, validoi tuotetun gq/1.3-kyselyn ontologiaa vasten ja palauttaa kyselyn, häviöttömyyden, kartoitukset ja diagnostiikat. Käännös ei suorita kyselyä eikä kuluta varsinaisen graafikyselyn krediittejä.

Tuetut lähdekielet

KieliAliaksetTuettu häviötön osajoukko
diffbot-dqldqlEntiteettityyppi, litteät kenttäehdot, vertailut, or()/not(), has, Boolen ryhmät, tavalliset facetit, sortBy/revSortBy
elasticsearch-query-dslelasticsearch · elastic-query-dslbool, term, terms, range, exists, match_phrase, sort, _source includes, terms-aggregoinnit, size
elasticsearch-query-dslopensearch · opensearch-query-dslSama JSON-osajoukko yhteisen Elastic/OpenSearch-adapterin kautta

Diffbot DQL -migraatio

DQL ja Graph Query jakavat entiteettityypistä alkavan muodon, implisiittisen AND-operaation, kenttäpolut, vertailut, olemassaolotestit, Boolen lausekkeet ja facetit. Tuotteen kenttäkartta muuntaa tarjoajan ontologiakentät, kuten locations.country.name, nbEmployees ja industries, Graph Query -kentiksi. Aaltosulkeiden korreloidut DQL-ehdot kääntyvät häviöttömästi gq/1.3 Scoped Predicate -ehdoiksi, joten kaikki lapsiehdot osuvat samaan taulukkoalkioon.

JSON
{
  "dialect": "diffbot-dql",
  "mode": "strict",
  "query": "type:Organization locations.country.name:"FI" nbEmployees>=100 sortBy:nbEmployees facet:industries"
}

Elasticsearch- ja OpenSearch-migraatio

Anna entity_type, koska Elastic-indeksi ei määritä Graph Queryn juurityyppiä. bool must ja filter muuttuvat AND-ehdoiksi, must_not NOT-ehdoksi, pakollinen should-ryhmä OR-ehdoksi ja nested korreloiduksi Scoped Predicate -ehdoksi. term, terms, range, exists, match_phrase, järjestys, source includes, terms-aggregoinnit ja size kääntyvät suoraan. Vain pisteytykseen vaikuttavat should-ehdot ohitetaan varoituksella; analysoitu match, query_string, offsetit ja tarjoajakohtaiset search_after-arvot hylätään strict-tilassa.

JSON
{
  "dialect": "opensearch-query-dsl",
  "entity_type": "Organization",
  "mode": "strict",
  "query": {
    "query": { "bool": { "filter": [
      { "term": { "country": "FI" } },
      { "range": { "employees": { "gte": 100 } } }
    ] } },
    "sort": [{ "employees": "desc" }],
    "_source": ["businessId", "employees", "industry"],
    "aggs": { "industries": { "terms": { "field": "industry" } } },
    "size": 25
  }
}

Strict- ja best-effort-tilat

Käytä tuotantomigraatiossa strict-tilaa. Se palauttaa valid:false eikä kohdekyselyä, jos semantiikkaa ei voida säilyttää. best_effort on eksplisiittinen tarkistustyönkulku: se voi pelkistää analysoidun Elastic match -haun sisältöehdoksi, merkitsee aina lossless:false ja liittää vakaan varoituskoodin. Älä suorita best-effort-tulosta tarkistamatta diagnostiikkaa.

Varmenna lähde- ja kohdetulokset

POST /v1/graph/query/translate/verify vertaa kohdetta oikeasta lähdejärjestelmästä kaapattuun source_result-tulokseen tai Source Execution Adapterin tulokseen. Vertailu kattaa identiteetit, järjestyksen, facetit ja sivutuksen, ja vastaus nimeää todellisen baselinen. Pelkkää translated_fixture_replay-tulosta ei väitetä tarjoajavastaavuudeksi.

Tallenna ja auditoi migraatioajot

POST /v1/graph/query/migration-runs tallentaa enintään 100 kyselyn erän tilan, yritykset, tapahtumahistorian, tuloksen ja virheet. Generoidut SDK:t sisältävät luonti-, listaus-, luku-, retry-, cancel- ja export-operaatiot. Synkroninen /migrations säilyy pienille yhteensopivuustyönkuluille.

Lue käännöstulos oikein

valid tarkoittaa, että kohdekysely tuotettiin ja läpäisi Graph Query -ontologiavalidoinnin. lossless kertoo, ettei varoitusta tai approksimaatiota tarvittu. mappings listaa kaikki uudelleennimetyt kentät. diagnostics sisältää vakaat severity-, code-, path-, message- ja suggestion-kentät. validation käyttää samaa kohdekielen sopimusta kuin /graph/query/validate.

JSON
{
  "valid": true,
  "lossless": true,
  "query": "type:Organization location.country:"FI" employees>=100 sort:+employees facet:industry",
  "mappings": [
    { "source": "nbEmployees", "target": "employees", "lossless": true }
  ],
  "diagnostics": [],
  "validation": { "valid": true, "errors": [] }
}

Käytä kääntäjää SDK:sta

Kaikki generoidut SDK:t tarjoavat translateKnowledgeGraphQuery-metodin. Tallenna palautettu Graph Query sovellukseen vasta valid-, lossless- ja diagnostics-kenttien tarkistamisen jälkeen. Anna käännetty kysely explainKnowledgeGraphQuery-metodille ennen suoritusta.

TypeScript
const translated = await graphApi.translateKnowledgeGraphQuery({
  graphQueryTranslationInput: {
    dialect: 'diffbot-dql',
    mode: 'strict',
    query: 'type:Organization locations.country.name:"FI" nbEmployees>=100'
  }
});

if (!translated.valid || !translated.lossless) {
  throw new Error(JSON.stringify(translated.diagnostics));
}

await graphApi.explainKnowledgeGraphQuery({
  graphQueryInput: { query: translated.query }
});

Tuotantomigraation tarkistuslista

TarkistusVaatimus
KenttäkarttaJokainen tarjoajakenttä vastaa oikeaa tuotteen ontologiakenttää
Semantiikkastrict-käännös on häviötön tai jokainen best-effort-diagnostiikka on hyväksytty
KardinaliteettiNested- ja moniarvoehdot säilyttävät saman alkion ehdot
VastausmuotoProjektio ja facetit palauttavat kuluttajien odottamat tiedot
SivutusAloita ensimmäisestä sivusta ja siirry Graph Query -cursoreihin
VarmennusVertaa edustavia lähde- ja kohdetuloksia ennen liikenteen siirtoa
Oliko tästä sivusta apua?