You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
Initial example
This commit is contained in:
11
examples/json_search/example.json
Normal file
11
examples/json_search/example.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"id": "json_search",
|
||||||
|
"file": "index.js",
|
||||||
|
"highlight": [
|
||||||
|
"10",
|
||||||
|
"44-56",
|
||||||
|
"63"
|
||||||
|
],
|
||||||
|
"hide": [],
|
||||||
|
"collapse": []
|
||||||
|
}
|
67
examples/json_search/index.js
Normal file
67
examples/json_search/index.js
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
import { createClient, SchemaFieldTypes} from 'redis';
|
||||||
|
|
||||||
|
const client = createClient();
|
||||||
|
|
||||||
|
await client.connect();
|
||||||
|
|
||||||
|
// Create an index.
|
||||||
|
// https://redis.io/commands/ft.create/
|
||||||
|
try {
|
||||||
|
await client.ft.create('idx:users', {
|
||||||
|
'$.name': {
|
||||||
|
type: SchemaFieldTypes.TEXT,
|
||||||
|
SORTABLE: 'UNF'
|
||||||
|
},
|
||||||
|
'$.age': {
|
||||||
|
type: SchemaFieldTypes.NUMERIC,
|
||||||
|
AS: 'age'
|
||||||
|
},
|
||||||
|
'$.coins': {
|
||||||
|
type: SchemaFieldTypes.NUMERIC,
|
||||||
|
AS: 'coins'
|
||||||
|
},
|
||||||
|
'$.email': {
|
||||||
|
type: SchemaFieldTypes.TAG,
|
||||||
|
AS: 'email'
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
ON: 'JSON',
|
||||||
|
PREFIX: 'noderedis:users'
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
if (e.message === 'Index already exists') {
|
||||||
|
console.log('Index exists already, skipped creation.');
|
||||||
|
} else {
|
||||||
|
// Something went wrong, perhaps RediSearch isn't installed...
|
||||||
|
console.error(e);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add some users.
|
||||||
|
// https://redis.io/commands/json.set/
|
||||||
|
await Promise.all([
|
||||||
|
client.json.set('noderedis:users:1', '$', {
|
||||||
|
name: 'Alice',
|
||||||
|
age: 32,
|
||||||
|
coins: 100,
|
||||||
|
email: 'alice@nonexist.com'
|
||||||
|
}),
|
||||||
|
client.json.set('noderedis:users:2', '$', {
|
||||||
|
name: 'Bob',
|
||||||
|
age: 23,
|
||||||
|
coins: 15,
|
||||||
|
email: 'bob@somewhere.gov'
|
||||||
|
})
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Search all users under 30
|
||||||
|
console.log('Users under 30 years old:');
|
||||||
|
console.log(
|
||||||
|
// https://redis.io/commands/ft.search/
|
||||||
|
JSON.stringify(
|
||||||
|
await client.ft.search('idx:users', '@age:[0 30]'),
|
||||||
|
null,
|
||||||
|
2
|
||||||
|
)
|
||||||
|
);
|
Reference in New Issue
Block a user