问题标签 [redisearch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - 在并发请求中使用 Redisearch
我在 M6G 8X 大型服务器中使用 Laravel 8 部署了一个 API。我的系统架构如下。
Client -> NGINX -> PHP-FPM -> Laravel API -> PGBouncer -> PostgreSQL/PostGIS
API 从 Postgres 函数将结果返回给客户端请求,该函数使用来自 120 亿条记录的表中的信息,平均耗时 300 毫秒。我使用 jmeter 对 500 个并行请求的 50K 请求进行了负载测试,而我的吞吐量仅为 390 Requests/Sec。
为了缓解这个问题,我在 Redis 内存中加载了 120 亿条记录,并使用 RediSearch FT.Aggregate 函数在 Redis 中对 postgres 函数进行了相同的操作和地理空间过滤器,我得到的结果平均为 250-300 毫秒. 我对 50K 请求和 400 个并行请求进行了相同的负载测试,其中我只有 45 个请求/秒的吞吐量,这比 Postgres 函数方法差得多。
Client -> NGINX -> PHP-FPM -> Laravel API -> Redisearch -> Redis
请让我知道如何使用 Redis 方法提高并发请求的吞吐量,因为我的假设是 Redis 中没有锁定问题或与 Postgres DB 问题的连接。谢谢。
示例查询
php - 使用库“MacFJA/php-redisearch”在聚合函数中使用“withApplies”时面临问题
聚合原始查询
FT.AGGREGATE indexName "@geofield:[-83.81373 34.3755452645611 20 mi]" LOAD 1 @geofield APPLY "@cc_sum * ( 20 - (geodistance(@geofield, -83.81373, 34.3755452645611)) / 20)" as ccSumCalcValue APPLY 1 as test GROUPBY 1 @test REDUCE SUM 1 @ccSumCalcValue as weightedSum
使用“MacFJA/php-redisearch”聚合查询
我无法使用此库从原始聚合查询中执行以下命令
APPLY 1 as test GROUPBY 1 @test REDUCE SUM 1 @ccSumCalcValue as weightedSum
有人可以帮我用这个库做这个命令吗
stackexchange.redis - NRediSearch - 获取匹配的文档总数
Aggregate
调用函数时有没有办法获得总结果数?
请注意,我不是使用Aggregate
函数来聚合结果,而是作为高级搜索查询,因为Search
函数不允许按多个字段排序。
RediSearch 返回匹配的文档总数,但我找不到使用 NRediSearch 库获取此数字的方法。
redisearch - 部分匹配的重新搜索查询
我在使用 redisearch 的 FT.SEARCH 命令时遇到了一个小问题:
对于这个值为这个的数据:ns=2;s=OIGateway:ArchestrA.ACU.AO_ACU230_AIn_CabTp.fa_A2OutOfRan
这个查询是怎么来的:
将返回结果
而这个:
(注意末尾缺少的“o”)
什么都不会回来?
谢谢您的回复。
redisearch - 为什么 RediSearch 在排序数字字段时很慢?
我在我的项目中使用 RediSearch,该项目的索引包含超过 1300 万份文档。如果用户没有提供过滤器,我需要获取最新的文档。我的索引架构有一个带有 SORTABLE 标志的 NUMERIC 字段,我尝试运行以下查询。
FT.SEARCH media * SORTBY media_id DESC LIMIT 0 10
它有一段时间没有返回响应,我通常会终止查询。
有没有办法在可接受的时间内获得最后的文件?
python - redis-py ft().search() 不返回结果
我正在使用以下测试代码来试验使用 RedisJSON 数据的 RediSearch。我希望client.ft(candles_index).search("4h")
返回candles
列表中的 JSON 数据,但没有返回任何结果。
我一直在使用redis-py中的一些单元测试作为我的一些代码的参考,并且我还包含了运行时输出,以显示我一直用来尝试的一些输出看看我可能哪里出错了。
.
我已经尝试对,和之间的架构中的根引用进行各种调整..
,看看它是否可能是根匹配问题,但似乎不是。$.
$..
回答
我想我一定是$..
在我的早期测试中错误地测试了路径模式的变化。那是让这个为我工作的秘诀。更新了代码和结果,以及我在这里找到的另一个变体
database - 如何在 RediSearch 中索引 JSON 数组?
我一起使用模块 RedisJSON 和 RediSearch 对 JSON 数据执行搜索查询。对于每个 JSON 对象,我需要索引数组字段中的所有字符串元素,以便能够通过查询数组中的一个字符串来获取该对象(即通过搜索包含在字符串中的作者之一来获取一些书籍数据JSON书中的数组)。不过,目前看来是不可能的。有什么可能的解决方法还是我被卡住了?
json - 如何在 RediSearch 中使用 @ 符号?
我一起使用模块 RedisJSON 和 RediSearch 对 JSON 数据执行搜索查询。给定一个像这样的 json 列表:
{“电子邮件”:“test1@example.com”,“is_checked”:1}
我愿意:
但我得到了Syntax error
如何选择值“test1@example.com”?
python - 是否有一些官方支持的异步 redis python 客户端?
我正在寻找一个异步的 redis python 客户端,它具有 redisearch-py 或 redis-py 等所有功能。
我已经探索了这些模块:
- redis-py(给同步客户端)
- aioredis(异步,但没有像我们在 redis-py 中那样执行查询的内置函数)
- redis-om(异步但只能找到像“find”这样的功能),我应该如何执行其他复杂的查询,比如聚合?
如果您在生产中使用过其中任何一种,请提出您的意见。