graphql 是很方便的api 查询语言,elasticsearch 可以方便的进行全文检索的应用开发
有一个方便的npm 包graphql-compose-elasticsearch 可以进行es 的查询

测试使用docker 运行,参考代码https://github.com/rongfengliang/graphql-elasticsearch-demo

环境准备

  • docker-compose 文件
version: "3"
services:
es:
image: elasticsearch:5.6.12
ports:
- 9200:9200
volumes:
- ./es-data:/usr/share/elasticsearch/data
web:
build: ./
ports:
- 9201:9201
  • nodejs 应用构建dockerfile
FROM node:10.7-alpine
WORKDIR /app
COPY . /app
RUN npm install -g yarn
RUN yarn
ENTRYPOINT [ "yarn","start" ]

使用说明

主要还是进行schema 的定义以及resolver 编写,demo 包含一个user 索引字段的映射处理,参考schema.js

const demoUserMapping = {
properties: {
name: {
type: 'text',
fields: {
keyword: {
type: 'keyword',
},
},
},

resovler

const schema = new GraphQLSchema({
query: new GraphQLObjectType({
name: 'Query',
fields: {
userSearch: UserEsTC.getResolver('search').getFieldConfig(),
userSearchConnection: UserEsTC.getResolver('searchConnection').getFieldConfig(),
elastic50: elasticApiFieldConfig({
host: 'http://es:9200',
apiVersion: '5.0',
log: 'trace',
}),
},
}),
});

demo 中包含一个数据初始化 seedData.js

测试

  • 启动
docker-compose up -d
  • 查询
query {
userSearch{
hits{
_id
_node
_source {
gender
birthday
createdAt
}
_version
}
}
}
  • 查询结果


参考资料

https://github.com/rongfengliang/graphql-elasticsearch-demo
https://www.npmjs.com/package/graphql-compose-elasticsearch
https://graphql-compose.github.io/

 
 
 
 

graphql elasticsearch 集成试用的更多相关文章

  1. linux下elasticsearch集成mongodb详细教程

    由于公司业务需要,要用elasticsearch做索引库实现搜索功能,历尽千辛万苦,最后总算把mongodb和elasticsearch集成成功 1.搭建mongodb集群 参考https://www ...

  2. 【读书笔记】Elasticsearch集成Hadoop最佳实践

    前言 本文记录[Elasticsearch集成Hadoop最佳实战]读书笔记 本书总计209页,共7章节,计划时间:20180712-20180717 (每天至少40页) 本文代码地址: https: ...

  3. springboot elasticsearch 集成注意事项

    文章来源: http://www.cnblogs.com/guozp/p/8686904.html 一 elasticsearch基础 这里假设各位已经简单了解过elasticsearch,并不对es ...

  4. hasura graphql server 集成gitlab

    默认官方是提供了gitlab 集成的demo的,但是因为gitlab 一些版本的问题, 跑起来总有问题,所以查找相关资料测试了一个可以运行的版本 项目使用docker-compose 运行 参考 ht ...

  5. grandstack graphql 工具基本试用

      grandstack 是一个方便graphql 应用开发的工具 使用docker-compose 运行 环境准备 官方的starter 比较好,已经是使用docker-compose 创建好了所有 ...

  6. gqlgen golang graphql server 基本试用

    gqlgen golang 的graphql server 具体代码参考https://github.com/rongfengliang/gqlgen-demo 特点 模型优先 类型安全 代码生成 安 ...

  7. Elasticsearch集成Hadoop最佳实践.pdf(内含目录)

    Elasticsearch服务器开发(第2版) 介绍: ElasticSearch是一个开源的分布式搜索引擎,具有高可靠性,支持非常多的企业级搜索用例.ElasticsearchHadoop作为一个完 ...

  8. Elasticsearch开启试用x-pack license

    一.Elasticsearch 6.7.2开启trial  x-pack license:x-pack的license试用期只有30天 1.ES6.7.2版本默认已经安装了x-pack插件,这里就没有 ...

  9. ElasticSearch集成SpringData史上最全查询教程

    1.简单介绍 springboot 使用springdata操作es,ElasticsearchRepository使用QueryBuilder构造查询条件 2.集成es //maven集成 < ...

随机推荐

  1. Confluence 6 使用 LDAP 授权连接一个内部目录 - 高级设置

    ted Groups 为嵌套组启用或禁用支持. 一些目录服务器能够允许你在一个组中定义另外一个组.在这种结构下的用户组称为用户组嵌套.嵌套组的配置能够让子用户组继承上级用户组的权限,是系统的权限配置变 ...

  2. Yet Another Ball Problem CodeForces - 1118E (简单构造)

    大意: 求构造n个pair, 每个pair满足 对于每k组, 让$b_i$为$[1,k]$, $g_i$循环右移就好了 int n, k, cnt; int main() { scanf(" ...

  3. antd-pro1.0使用jest对react组件进行单元测试

    前言 基于React+Ant Design(以下用Antd表示)的项目,在对于自己封装的,或者基于Antd封装的公共组件的自动化测试技术的选型和实践. 背景 随着前端项目越来越大,业务逻辑日益繁杂,协 ...

  4. python-day33--进程间通信(IPC)

    方式:队列(推荐使用) 一.基本情况 1.可以往队列里放任意类型的数据 2. 队列:先进先出 3. q=Queue(3) #可以设置队列中最多可以进入多少个值,也可以不设置 q.put('first' ...

  5. [Spring Boot] 使用多个Servlet

    当使用Spring boot的嵌入式servlet容器时,可以通过Spring bean或扫描Servlet组件的方式注册Servlet.Filter和Servlet规范的所有监听器(例如HttpSe ...

  6. HashMap知识点、问题

    转载:https://blog.csdn.net/qq_27007251/article/details/71403647 https://www.cnblogs.com/kxdblog/p/4323 ...

  7. js获取当前点击元素的索引

    以ul下的li元素为例:获取li的索引,代码如下: <ul id="list"> <li></li> <li></li> ...

  8. sql Server中临时表与数据表的区别

    sql server 中临时表与数据表的区别 1.如何判断临时表和数据表已生成 --如何判断临时表是否已创建--- if exists(select * from tempdb..sysobjects ...

  9. 使用 istreambuf_iterator 读取文件内容,赋值给 std::string

    需要一个一个字符输入时考虑使用istreambuf_iterator 假设我们要把一个文本文件拷贝到一个字符串对象中.似乎可以用一种很有道理的方法完成: ifstream inputFile(&quo ...

  10. ArrayList与List<T>笔记

    ArrayList与List<T>笔记 ArrayList是在System.Collections命名空间的一个类, 通过Add的方法添加一个项, 当进到这个类的元数据时, 可以看到这个方 ...