问题标签 [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.

0 投票
1 回答
794 浏览

escaping - 转义字符重新搜索

下午好,

我今天下午在工作时遇到了重新搜索的问题。我想搜索其键中具有特定值的记录,但该键中有一个特殊字符。

示例:Record_1:姓名:toto 工作:产品经理城镇:lolo-baba

在 redis-cli 中,当我执行 'ft.search "lolo-baba"' 这给了我 redisearch 执行的查询。-> 它在做lolo OR -baba。

经过一些研究,我发现这是由于 redisearch 如何将单词划分为标记。它的解决方案是在“特殊字符”之前使用一个或两个“\”来转义它,但在我的情况下它不起作用。

我已经尝试过: ft.search "lolo-baba" -> "lolo OR -baba" 不是我想要的

ft.search "lolo-baba" -> 这个给了我我想要的 "lolo-baba 而不是 lolo OR -baba" 但我不知道为什么它什么也没给我。

ft.search "lolo\-baba" -> 用多次同一个词做了一些奇怪的事情,我不知道奇怪。

我想要一个将“lolo-baba”作为单个字符串而不是 2 个标记的查询。

0 投票
0 回答
95 浏览

date - Redisearch:提升最近的文档

我想知道如何在 Redisearch 中提升最近的文档。字段没有时间戳类型,但可以创建像“day_of_creation”这样的数字类型,例如自 1970 年以来的天数。

那么问题是如何在不更新索引的情况下提升这样的字段,例如修饰符函数,如score = score * 1/(1 + day_of_query - document.day_of_creation). 这意味着当天的文件保留他们的分数,而第 2 天的文件有一半的分数,第 3 天的分数只有三分之一,等等。

我可以看到它可能通过聚合器或自定义评分功能起作用,但不完全确定是否能够做到这一点。

0 投票
1 回答
298 浏览

redisearch - 如何重新搜索具有 @field 和 - 的项目?

我有一个 redisearch 索引,其中的字段包含特殊字符,如“-”。我一直在尝试搜索类别字段为“Multiroom-høttaler”的产品。

这是直接来自 redis-cli 的示例条目:

我尝试了以下方法,包括从 cli 和 rdm 对所有这些运行 ft.explain ,但没有成功。我也希望它是完全匹配的。

到目前为止,他们都返回0次点击。

我希望获得所有类别为 Multiroom-høyttaler的产品。

0 投票
0 回答
97 浏览

redisearch - “一个数字过滤器在使用另一个相同的索引时不使用一个索引。可能是什么原因?”

RediSearch 数字过滤器突然停止为生产中的一个索引工作。虽然它在同一服务器的另一个相同索引中工作。

架构如下提供,我正在尝试对字段 ExpireAt 进行过滤

索引架构

我已经尝试过以下查询。全部提供 0 个文件。

ft.search 9194_Cache "@ExpireAt:[0 inf]" 限制 0 2

ft.search 9194_Cache "@ExpireAt:[-1 inf]" 限制 0 2

ft.search 9194_Cache "@ExpireAt:[637024139268750000 637024139268750000]" 限制 0 2

------------示例数据-前 2 条记录如下-------- 前 2 名的记录

下面的查询结果。

前 2 名查询

虽然同样适用于其他索引。检查以下结果。 在此处输入图像描述

0 投票
0 回答
166 浏览

redisearch - Redisearch - 可选查询和权重属性如何工作?

在 RediSearch 中,可选查询和权重如何工作?

现在,当我尝试搜索关键字并使用带有权重的可选查询来提升结果时,它似乎没有做任何事情。

我已经尝试过 RediSearch1.4.01.4.15.

我有一个索引文档,其中包含不同大小的不同 TEXT 字段,并且在索引时我已经给了它们document_score。现在我希望我的用户能够通过查询来搜索文档,但我想将那些与查询完全匹配的结果提升到顶部。

我见过 redis 提供的评分算法,但它们似乎都没有对$weight我们提供给子查询的内容做任何事情。他们都在谈论field weightsdocument_score查询词频。他们都没有在查询中谈论$weight它将如何影响最终结果。

假设我有 4 个具有不同文本字段的文档。其中之一是title字段TEXT。每4个文档的标题字段条目如下:

当我生成以下查询以重新搜索时

我希望具有精确的文档conversation the conversation位于顶部,所有其他结果(倾斜距离> 0)在它们之后。

但是输出完全不同。IE

所以我想了解子查询权重在最终结果中的作用。

0 投票
1 回答
384 浏览

python - 从 Redisearch 索引中获取单词列表,按最常见的出现排序

我有一个简单的 redisearch 索引,我用 Python 创建:

然后我可以搜索一个特定的单词,效果很好:

有没有一种快速的方法来提取单词列表以及出现的情况?我的目标是这样的结果:

我已经看过如何使用这个例子进行字数统计nltkzincrby但想知道是否已经有一种方法可以从redisearch.

0 投票
1 回答
578 浏览

python - 使用 python redisearch 客户端按标签过滤搜索

我有一个带有 TagField 的索引,像这样创建

我会添加这样的文件。

我是这样搜索的。它有一些不需要搜索的字段,所以我限制了要搜索的字段。

我想要的是还通过一些标签过滤结果。例如,我有带有 python、C、Java 等标签的文档,我只希望返回带有标签“C”的文档。

我怎么做?

0 投票
1 回答
377 浏览

java - 如何在spring boot中使用reactiveredisoperations执行redis扩展命令?

我正在尝试将 redisearch 与 java/spring 反应式 api 一起使用。因此,对于 nodejs redis 客户端,我可以只使用 send_command 函数并将我想要的任何 redis 命令作为字符串数组传递。这非常适合向 redis 发送 redisearch 命令。

现在我正在使用 java 和 Spring Data Reactive Redis。ReactiveRedisOperations 接口有一个 exec 方法,但它似乎只执行 lua 脚本和什么-a-not。

使用 ReactiveRedisOperations 将 redisearch 命令传递给 redis 服务器的任何方式?

0 投票
1 回答
710 浏览

python - Redis Python execute_command Redisearch

我正在使用 python 3.6 在 redis 服务器上添加一些文档!所以我使用命令 :execute_command和模块 Redis。

在我的示例中,我想将元数据添加到重新搜索文档中:

a 是一个 str 数据。所以我想在文档文档中添加参数:a。其中“a”是文本。

但是当 _command 中有空格时'str a',执行 _command 认为它是下一个参数,即使我在每一边加上引号("或...')

例如:如果a = '"Test Test"',我会"\"Test"在redis服务器上找到...

我该如何处理?

谢谢你的帮助。

0 投票
1 回答
205 浏览

redis - redisearch FT.SEARCH 的搜索复杂度?

他们下面的文档说它是 O(n),但没有指定 n 是什么。如果索引中没有文档,则搜索可能会非常慢。这没有任何意义,不是吗?

https://oss.redislabs.com/redisearch/Commands.html#complexity_6