dgraph的查询语言--【graphQL+-】阅读笔记

原文:https://docs.dgraph.io/query-language/

    dgraph的graphQL+-是基于facebook的graphQL语言的一门查询语言。graphQL并不是为图数据库开发的语言,而是一种比较像图的查询语法,schema和子图让它成为一门很棒的语言。我们开发者修改了这门语言(graphQL),让它可以更好地支持图的操作,我们增减了graphQL的一些功能以让它能更好地支持图数据库。所以我们把这个被简化丰富过的语言叫做graphQL+-.

graphQL+-还在开发中,我们仍然在增加一些feature,我们将来可能还会简化它。

    这个文档是dgraph的查询参考材料,它不是一个tutorial。如果你已经知道怎样用graphQL+-写查询语句但想知道一些细节,比如语法,indices或是功能等等,那么这个文档很适合你。

注:如果你是dgraph的新手,想要学习怎么用dgraph和graphQL+-,可以参考 https://tour.dgraph.io

Running examples

文档例子用的是21 million triples(不知道怎么翻译)关于电影和演员的数据。这些示例的查询语句运行后返回数据。这些查询底层其实是由https://play.dgraph.io/.的Dgraph实例执行出来的。为了能本地运行这些查询语句或为了能体验更多,建议先到Getting Started 看下,这里面展示了怎么加载数据集。

GraphQL+- 基本原理

一个graphQL+-查询语句基于查询的条件来找相应的node,匹配图中的部分并返回。

一个查询是由一些内部嵌套的块组成的。由一个左大括号开始,里面写的是一些过滤条件。

返回值

每个查询都有一个名字,写在查询的最开始,返回值也会以这个名字返回。

如果一个边是一值类型,那么这个值可以通过给出边名的形式返回。

查询示例:在这个鸽子中,边(edge)联系了电影、导演和演员,电影有一个名字、发行日期、标识符。这个bladerunner的查询语句,过滤条件是一个电影的名字

这里省略了很多。。。。之后慢慢看

语言支持

Note :@lang directive must be specified in the schema to query or mutate predicates with language tags.如(@lang是表明当前是什么语言标签)

 dgraph支持UTF-8字符串

在一个查询中,假设一个字符串edge,那么语法

edge@lang1:...:langN

表示:

-最多将返回一条结果

-偏好列表是从左至右:如果一个值在最左边的语言中没有找到,那么将去匹配下一个,以次类推。

-如果在所有的语言中都没有找到,那么没有返回值。

-最后的点“.”表示如果没有找到任何一个语言,那么会随便返回一个语言(不知道是不是这个意思),原句是A final . means that a value without a specified language is returned or if there is no value without language, a value in “some” language is returned.

 示例:

name=>寻找一个未加标签的字符串,如果没有未加标签的值那么什么也不返回

name@.=>查询一个未加标签的字符串,如果没有那么可以返回任意语言

name@en=>查询一个加了en标签的字符串,如果没有那什么也不返回

name@en:.=>查询一个加了en标签的字符串,然后查询未加标签的字符串,如果没有那么返回任意语言

name@en:pl=>查询en,然后查询pl,如果什么都没有那什么也不返回

name@en:pl:.=>查询en,然后查询pl,然后未加标签,如果没有那么返回任意语言

Note: In functions, language lists are not allowed. Single language, . notation and attribute name without language tag works as described above.

Note: In case of full text search functions (alloftextanyoftext), when no language is specified, default (English) Full Text Search tokenizer is used.

原文地址:https://www.cnblogs.com/zuxiaoyuan/p/9274912.html