在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):nordsimon/elasticsearch-graphql开源软件地址(OpenSource Url):https://github.com/nordsimon/elasticsearch-graphql开源编程语言(OpenSource Language):JavaScript 100.0%开源软件介绍(OpenSource Introduction):Deprecated and no longer maintainedWhen I first started with grapql this was one of the big advantages I found, to generate a more user friendly api out of already existing schema definitions. However this particular package has been stale for a while and I don't have any time to work on it. Also elastic and graphql is moving fast forward so to keep up with the apis are very hard. Hopefully i will get back to this package in the future since I think graphql is a very neat way to expose an api. Until then, thanks for all the stars and please contact me if you have any ideas or would like to work on this tool Elastic Search GraphQLSchema and query builder for Elastic Search
For working example, checkout elasticsearch-graphql-server-example CompatibilityThis package is tested and working on
Usagevar graphql = require('graphql');
var esGraphQL = require('elasticsearch-graphql')
var hitsSchema = require('./schemas/myGraphQLSchema')
var schema = esGraphQL({
graphql: graphql,
name: 'ordersSearch',
mapping: {
"properties": {
"id": {
"type" : "string",
"index" : "not_analyzed"
},
...
}
},
elastic: {
host: 'localhost:9200',
index: 'orders',
type: 'order',
query: function(query, context) {
// Debug or modify the query anyway you want. The context is passed down from graphql
// Make sure to return the original or modified query
return query
}
},
hitsSchema: hitsSchema
})
var rootSchema = new graphql.GraphQLSchema({
query: new graphql.GraphQLObjectType({
name: 'RootQueryType',
fields: {
mySearchData: {
type: schema.type,
args: schema.args,
resolve: schema.resolve
}
}
})
}) Query BuilderIt will fetch the current mapping from elasticsearch and create a static typed schema for you. Add the schema to you graphql server and the type helper will lead you. The hits field will resolve to whatever schema you send in. So you can use elasticsearch for searching data and then easily get your real data from anywhere. See full example in in /examples Example query{
ordersSearch(query: "New Order",
filters: {
images: {
createdBy: {
values: ["Simon Nord", "James Kyburz"],
}
}
}
) {
aggregations {
status {
timestamp {
terms(limit: 5) {
value,
count
}
}
}
}
hits {
id
}
}
} TODO
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论