add_document(redis, 2, 'Sighting near the Columbia River', 'Class A'),
add_document(redis, 3, 'Chased by a tall hairy creature', 'Class A'))
results = await search(redis, 'chase|east')
pp(results)
redis.close()
await redis.wait_closed()
def add_document(redis, id, title, classification):
return redis.execute('FT.ADD', 'bigfoot:sightings:search', id, '1.0',
'FIELDS', 'title', title, 'classification', classification)
def search(redis, query):
return redis.execute('FT.SEARCH', 'bigfoot:sightings:search', query)
asyncio.run(main())
在拥有了索引之后, 顺序就可以向外面添加文档了, 这一操作发作在顺序的第 27 行和第 28 行, 经过 FT.ADD 命令来完成。 每个文档偶读需求一个独一 ID 、一个介于 0.0 和 1.0 之间的权重(rank)以及相应的字段。在第 12 和第 13 行, 顺序运用 FT.CREATE 创立了一个索引。 索引需求描画顺序将要添加的每个文档中的字段的形式。 在这个例子中, 顺序需求添加大脚兽的目击事情, 该文档包含一个标题和一个分类, 并且它们都是文本字段。
正如顺序的第 31 行所示, 在索引加载文档之后, 顺序就可以运用 FT.SEARCH 命令和详细的查询语句来执行查询操作。 第 20 行的特定查询指示 RedisSearch 在索引中查找包含这些术语之一的文档。 在这个例子中, 该查询将前往两个文档。
运用 Redis 作为主数据库
Redis 可以作为一个速度奇快的内存存储数据库来运用。 下面的代码运用了哈希来演示这种用法。 哈希是一种十分棒的数据结构, 它可以建模你想要贮存的记载类型, 并且可以将数据的主键用作键名的其中一部分。
import asyncio
import aioredis
from pprint import pp
async def main():
redis = await aioredis.create_redis('redis://:foobared@localhost:6379/0', encoding='utf-8')
await asyncio.gather(
add_sighting(redis, 1, 'Possible vocalizations east of Makanda', 'Class B'),
add_sighting(redis, 2, 'Sighting near the Columbia River', 'Class A'),
add_sighting(redis, 3, 'Chased by a tall hairy creature', 'Class A'))
sightings = await asyncio.gather(
read_sighting(redis, 1),
read_sighting(redis, 2),
read_sighting(redis, 3))
pp(sightings)
redis.close()
await redis.wait_closed()
def add_sighting(redis, id, title, classification):
return redis.hmset(f'bigfoot:sighting:{id}',
'id', id, 'title', title, 'classification', classification)
def read_sighting(redis, id):
return redis.hgetall(f'bigfoot:sighting:{id}')
asyncio.run(main())
(责任编辑:admin)